diff --git a/configure.php b/configure.php new file mode 100644 index 00000000..c91697ac --- /dev/null +++ b/configure.php @@ -0,0 +1,17 @@ + diff --git a/package/DEBIAN/conffiles b/package/DEBIAN/conffiles new file mode 100644 index 00000000..9f5d6cc7 --- /dev/null +++ b/package/DEBIAN/conffiles @@ -0,0 +1 @@ +/etc/hedera-web/config.php diff --git a/package/DEBIAN/control b/package/DEBIAN/control new file mode 100644 index 00000000..0c19400b --- /dev/null +++ b/package/DEBIAN/control @@ -0,0 +1,9 @@ +Package: hedera-web +Version: 1.0-19 +Architecture: all +Maintainer: Juan Ferrer Toribio +Depends: apache2, php5-mysql +Section: misc +Priority: optional +Description: Verdnatura's web page + Verdnatura's web page. diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst new file mode 100755 index 00000000..1cf85653 --- /dev/null +++ b/package/DEBIAN/postinst @@ -0,0 +1,5 @@ +#!/bin/bash + +service apache2 reload +service cron restart + diff --git a/package/DEBIAN/prerm b/package/DEBIAN/prerm new file mode 100755 index 00000000..1cf85653 --- /dev/null +++ b/package/DEBIAN/prerm @@ -0,0 +1,5 @@ +#!/bin/bash + +service apache2 reload +service cron restart + diff --git a/package/etc/apache2/conf.d/hedera-web b/package/etc/apache2/conf.d/hedera-web new file mode 100644 index 00000000..f82e08da --- /dev/null +++ b/package/etc/apache2/conf.d/hedera-web @@ -0,0 +1,17 @@ +Alias /hedera-web /usr/share/hedera-web/ + + + Options Indexes + Options +FollowSymLinks + AllowOverride None + Order Allow,Deny + Allow From All + + SetOutputFilter DEFLATE + + + + Header set Access-Control-Allow-Origin "*" + + + diff --git a/package/etc/cron.d/hedera-web b/package/etc/cron.d/hedera-web new file mode 100644 index 00000000..ef478fc9 --- /dev/null +++ b/package/etc/cron.d/hedera-web @@ -0,0 +1,2 @@ +MAILTO=webmaster +*/4 * * * * root cd /usr/share/hedera-web/tpv && php5 imap.php diff --git a/package/etc/hedera-web/config.php b/package/etc/hedera-web/config.php new file mode 100755 index 00000000..c6bb6a3c --- /dev/null +++ b/package/etc/hedera-web/config.php @@ -0,0 +1,24 @@ + [ + 'host' => 'db.verdnatura.es' + ,'schema' => 'hedera' + ,'user' => 'root' + ,'pass' => 'base64pass' +] + +/** + * The default language. + **/ +,'defaultLang' => 'es' + +]; + +?> diff --git a/package/usr/share/doc/hedera-web/HtkLib.odg b/package/usr/share/doc/hedera-web/HtkLib.odg new file mode 100755 index 00000000..52719292 Binary files /dev/null and b/package/usr/share/doc/hedera-web/HtkLib.odg differ diff --git a/package/usr/share/hedera-web/copyright.txt b/package/usr/share/hedera-web/copyright.txt new file mode 100755 index 00000000..417d8fdd --- /dev/null +++ b/package/usr/share/hedera-web/copyright.txt @@ -0,0 +1,16 @@ +Copyright (C) 2013 - Juan Ferrer Toribio + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this program; if not, write to the Free +Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. diff --git a/package/usr/share/hedera-web/global/analytics.php b/package/usr/share/hedera-web/global/analytics.php new file mode 100755 index 00000000..22fa2837 --- /dev/null +++ b/package/usr/share/hedera-web/global/analytics.php @@ -0,0 +1,9 @@ + diff --git a/package/usr/share/hedera-web/global/metatags.php b/package/usr/share/hedera-web/global/metatags.php new file mode 100755 index 00000000..2eab5d07 --- /dev/null +++ b/package/usr/share/hedera-web/global/metatags.php @@ -0,0 +1,15 @@ +query ('SELECT name, content FROM metatag')) +{ + echo ''."\n\t"; + + while ($row = $result->fetch_assoc ()) + echo ''."\n\t"; + + $result->free (); +} + +?> diff --git a/package/usr/share/hedera-web/global/opensans.ttf b/package/usr/share/hedera-web/global/opensans.ttf new file mode 100755 index 00000000..db433349 Binary files /dev/null and b/package/usr/share/hedera-web/global/opensans.ttf differ diff --git a/package/usr/share/hedera-web/global/report.css b/package/usr/share/hedera-web/global/report.css new file mode 100755 index 00000000..feb6589e --- /dev/null +++ b/package/usr/share/hedera-web/global/report.css @@ -0,0 +1,12 @@ + +/* Global */ + +@font-face { + font-family: 'Open Sans'; + src: url(opensans.ttf) format('truetype'); +} +* +{ + font-size: 13px; + font-family: 'Open Sans', 'Verdana', 'Sans'; +} diff --git a/package/usr/share/hedera-web/global/style.css b/package/usr/share/hedera-web/global/style.css new file mode 100755 index 00000000..e1f27e0b --- /dev/null +++ b/package/usr/share/hedera-web/global/style.css @@ -0,0 +1,331 @@ + +/* Global */ + +@font-face { + font-family: 'Open Sans'; + src: url(opensans.ttf) format('truetype'); +} +body +{ + margin: 0px; +} +body, +label, +button, +input, +textarea +{ + font-size: 13px; + font-family: 'Open Sans', 'Verdana', 'Sans'; +} +iframe +{ + border: 0px; +} +fieldset, +div +{ + margin: 0px; +} +form +{ + padding: 0px; + margin: 0px; +} +table +{ + width: 100%; +} +a:link, +a:visited, +a:active +{ + color: #000; + text-decoration: none; +} +a:hover +{ + text-decoration: none; +} +a img +{ + padding: 1px; + border: 1px solid #EEE; + border-color: transparent; +} +a img:hover +{ + border-color: #999; +} +h1, h2, h3, h4, h5, h6 +{ + margin: 0px; + padding: 2px; +} +h1 +{ + font-size: 22px; +} +h2 +{ + font-size: 20px; +} +p +{ + margin: 0px; + margin-top: 16px; + margin-bottom: 16px; +} +div.clear +{ + clear: both; +} + + +/* Inputs */ + +input, +textarea, +button +{ + border: 1px solid #CCD; + margin: 2px; + padding: 4px; + border-radius: 2px; +/* box-shadow: 0px 2px 2px #AAA; */ +} +textarea +{ + height: 40px; + width: 200px; +} +input[type=submit], +input[type=button], +button +{ + background-color: #EEF; + padding: 4px; +} +input[type=text]:focus, +input[type=password]:focus, +textarea:focus +{ + background-color: #EEF; + border-color: #BBC; +} +input[type=submit]:hover, +input[type=button]:hover, +button:hover +{ + cursor: pointer; + background-color: #DDE; +} + +/* Grid */ + +table.grid +{ + width: 95%; + margin: auto; + border-collapse: collapse; + text-align: center; + margin-bottom: 15px; +} +table.grid thead tr, +table.grid tfoot tr +{ +/* background-color: #C0CCB3; + background: url(image/gradient.png) repeat-x scroll 0; +*/ + background-color: #EEF; + border: 1px solid #CCD; + color: black; + font-weight: bold; + vertical-align: middle; + text-align: center; + height: 30px; +} +table.grid thead th +{ + cursor: pointer; +} +table.grid thead th:hover +{ + background-color: #DDE; +} +table.grid tr +{ + height: 35px; +} +table.grid tfoot a, +table.grid thead a +{ + color: black; +} +table.grid tr.pair-row +{ + background-color: transparent; +} +td.grid-message +{ + height: 80px; +} +td.grid-message img +{ + vertical-align: middle; + padding: 10px; +} +table.grid tbody td +{ + padding-right: 8px; + padding-left: 8px; +} +input.cell-spin +{ + width: 25px; + text-align: right; +} +button.cell-button +{ + margin: 6px; + border: none; + background-color: transparent; +} + +/* Calendar */ + +.calendar +{ + width: 220px; + background-color: white; + border: 1px solid #CCD; + border-radius: 2px; + box-shadow: 0px 2px 2px #AAA; +} +.calendar table +{ + border-collapse: collapse; +} +.calendar thead tr, +.calendar tfoot tr +{ + background-color: #EEF; + color: black; + font-weight: normal; + vertical-align: middle; + text-align: center; + height: 30px; +} +.calendar thead tr +{ + border-bottom: 1px solid #CCD; +} +.calendar tfoot tr +{ + border-top: 1px solid #CCD; +} +.calendar col +{ + width: 14.2%; +} +.calendar tr +{ + height: 22px; +} +.calendar tbody td +{ + text-align: right; + padding-right: 6px; +} +.calendar td.highlight, +.calendar td:hover, +.button:hover +{ + cursor: pointer; + background-color: #DDE; +} + +/* Date chooser */ + +.date-chooser button +{ + margin: 0px; + margin-right: 8px; +} + +/* Full image */ + +div.full-image +{ + position: fixed; + background-color: #FFF; + text-align: center; + border: 1px solid #999; + border-radius: 2px; + z-index: 2; +} +div.image-loader +{ + position: fixed; + background-color: #FFF; + border: 1px solid #999; + border-radius: 2px; + z-index: 3; +} +div.image-loader img +{ + padding: 10px; +} + +/* Image editor */ + +img.editable +{ + cursor: pointer; +} +div.image-editor +{ + background-color: white; + border: 1px solid #999; + border-radius: 2px; + padding: 12px; + width: 400px; +} +div.image-editor h3 +{ + text-align: center; + padding-bottom: 10px; +} +div.image-editor iframe +{ + display: none; +} +div.image-editor button +{ + margin-left: 5px; + margin-right: 5px; +} +div.image-editor img +{ + visibility: hidden; + vertical-align: middle; + padding-right: 10px; +} + +/* Form */ + +table.form +{ + border-collapse: separate; + border-spacing: 4px; +} +table.form td.label +{ + text-align: right; +} +table.form tr +{ + height: 35px; +} + + diff --git a/package/usr/share/hedera-web/image/access-log.png b/package/usr/share/hedera-web/image/access-log.png new file mode 100644 index 00000000..6f875e87 Binary files /dev/null and b/package/usr/share/hedera-web/image/access-log.png differ diff --git a/package/usr/share/hedera-web/image/blogger.png b/package/usr/share/hedera-web/image/blogger.png new file mode 100755 index 00000000..39d62a4b Binary files /dev/null and b/package/usr/share/hedera-web/image/blogger.png differ diff --git a/package/usr/share/hedera-web/image/calendar.png b/package/usr/share/hedera-web/image/calendar.png new file mode 100755 index 00000000..7102df44 Binary files /dev/null and b/package/usr/share/hedera-web/image/calendar.png differ diff --git a/package/usr/share/hedera-web/image/catalog.png b/package/usr/share/hedera-web/image/catalog.png new file mode 100644 index 00000000..7ff5ce26 Binary files /dev/null and b/package/usr/share/hedera-web/image/catalog.png differ diff --git a/package/usr/share/hedera-web/image/clean.png b/package/usr/share/hedera-web/image/clean.png new file mode 100644 index 00000000..2206e607 Binary files /dev/null and b/package/usr/share/hedera-web/image/clean.png differ diff --git a/package/usr/share/hedera-web/image/debian.png b/package/usr/share/hedera-web/image/debian.png new file mode 100755 index 00000000..07fb3ef6 Binary files /dev/null and b/package/usr/share/hedera-web/image/debian.png differ diff --git a/package/usr/share/hedera-web/image/delete.png b/package/usr/share/hedera-web/image/delete.png new file mode 100644 index 00000000..987259ab Binary files /dev/null and b/package/usr/share/hedera-web/image/delete.png differ diff --git a/package/usr/share/hedera-web/image/edit.png b/package/usr/share/hedera-web/image/edit.png new file mode 100644 index 00000000..ea9a6cac Binary files /dev/null and b/package/usr/share/hedera-web/image/edit.png differ diff --git a/package/usr/share/hedera-web/image/empty.png b/package/usr/share/hedera-web/image/empty.png new file mode 100644 index 00000000..9666805b Binary files /dev/null and b/package/usr/share/hedera-web/image/empty.png differ diff --git a/package/usr/share/hedera-web/image/error.png b/package/usr/share/hedera-web/image/error.png new file mode 100644 index 00000000..8394cd69 Binary files /dev/null and b/package/usr/share/hedera-web/image/error.png differ diff --git a/package/usr/share/hedera-web/image/exit.png b/package/usr/share/hedera-web/image/exit.png new file mode 100755 index 00000000..502e2062 Binary files /dev/null and b/package/usr/share/hedera-web/image/exit.png differ diff --git a/package/usr/share/hedera-web/image/facebook.png b/package/usr/share/hedera-web/image/facebook.png new file mode 100755 index 00000000..cbc6379c Binary files /dev/null and b/package/usr/share/hedera-web/image/facebook.png differ diff --git a/package/usr/share/hedera-web/image/favicon.ico b/package/usr/share/hedera-web/image/favicon.ico new file mode 100755 index 00000000..c26fb996 Binary files /dev/null and b/package/usr/share/hedera-web/image/favicon.ico differ diff --git a/package/usr/share/hedera-web/image/firefox.png b/package/usr/share/hedera-web/image/firefox.png new file mode 100755 index 00000000..a3acedcc Binary files /dev/null and b/package/usr/share/hedera-web/image/firefox.png differ diff --git a/package/usr/share/hedera-web/image/git.png b/package/usr/share/hedera-web/image/git.png new file mode 100755 index 00000000..62ad98e0 Binary files /dev/null and b/package/usr/share/hedera-web/image/git.png differ diff --git a/package/usr/share/hedera-web/image/go-previous.png b/package/usr/share/hedera-web/image/go-previous.png new file mode 100644 index 00000000..157f442d Binary files /dev/null and b/package/usr/share/hedera-web/image/go-previous.png differ diff --git a/package/usr/share/hedera-web/image/google_plus.png b/package/usr/share/hedera-web/image/google_plus.png new file mode 100755 index 00000000..3bc902c5 Binary files /dev/null and b/package/usr/share/hedera-web/image/google_plus.png differ diff --git a/package/usr/share/hedera-web/image/icon.png b/package/usr/share/hedera-web/image/icon.png new file mode 100755 index 00000000..22a86e96 Binary files /dev/null and b/package/usr/share/hedera-web/image/icon.png differ diff --git a/package/usr/share/hedera-web/image/info.png b/package/usr/share/hedera-web/image/info.png new file mode 100644 index 00000000..484afa35 Binary files /dev/null and b/package/usr/share/hedera-web/image/info.png differ diff --git a/package/usr/share/hedera-web/image/invisible.png b/package/usr/share/hedera-web/image/invisible.png new file mode 100755 index 00000000..a9c04271 Binary files /dev/null and b/package/usr/share/hedera-web/image/invisible.png differ diff --git a/package/usr/share/hedera-web/image/loader-black.gif b/package/usr/share/hedera-web/image/loader-black.gif new file mode 100644 index 00000000..dec45f56 Binary files /dev/null and b/package/usr/share/hedera-web/image/loader-black.gif differ diff --git a/package/usr/share/hedera-web/image/loader.gif b/package/usr/share/hedera-web/image/loader.gif new file mode 100644 index 00000000..77b27250 Binary files /dev/null and b/package/usr/share/hedera-web/image/loader.gif differ diff --git a/package/usr/share/hedera-web/image/logo.png b/package/usr/share/hedera-web/image/logo.png new file mode 100755 index 00000000..3ecbc33c Binary files /dev/null and b/package/usr/share/hedera-web/image/logo.png differ diff --git a/package/usr/share/hedera-web/image/logo_big.png b/package/usr/share/hedera-web/image/logo_big.png new file mode 100755 index 00000000..fe6748e5 Binary files /dev/null and b/package/usr/share/hedera-web/image/logo_big.png differ diff --git a/package/usr/share/hedera-web/image/logo_small.png b/package/usr/share/hedera-web/image/logo_small.png new file mode 100755 index 00000000..1c332293 Binary files /dev/null and b/package/usr/share/hedera-web/image/logo_small.png differ diff --git a/package/usr/share/hedera-web/image/ok.png b/package/usr/share/hedera-web/image/ok.png new file mode 100644 index 00000000..dd675ff2 Binary files /dev/null and b/package/usr/share/hedera-web/image/ok.png differ diff --git a/package/usr/share/hedera-web/image/order.png b/package/usr/share/hedera-web/image/order.png new file mode 100644 index 00000000..922c8c21 Binary files /dev/null and b/package/usr/share/hedera-web/image/order.png differ diff --git a/package/usr/share/hedera-web/image/pay.png b/package/usr/share/hedera-web/image/pay.png new file mode 100755 index 00000000..53e8e0d4 Binary files /dev/null and b/package/usr/share/hedera-web/image/pay.png differ diff --git a/package/usr/share/hedera-web/image/print.png b/package/usr/share/hedera-web/image/print.png new file mode 100644 index 00000000..d7a6f41c Binary files /dev/null and b/package/usr/share/hedera-web/image/print.png differ diff --git a/package/usr/share/hedera-web/image/refresh.png b/package/usr/share/hedera-web/image/refresh.png new file mode 100644 index 00000000..cc6e47f9 Binary files /dev/null and b/package/usr/share/hedera-web/image/refresh.png differ diff --git a/package/usr/share/hedera-web/image/remove.png b/package/usr/share/hedera-web/image/remove.png new file mode 100644 index 00000000..c06436cf Binary files /dev/null and b/package/usr/share/hedera-web/image/remove.png differ diff --git a/package/usr/share/hedera-web/image/scalable/access-log.svg b/package/usr/share/hedera-web/image/scalable/access-log.svg new file mode 100644 index 00000000..50d33e8c --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/access-log.svg @@ -0,0 +1,152 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/catalog.svg b/package/usr/share/hedera-web/image/scalable/catalog.svg new file mode 100644 index 00000000..2db03554 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/catalog.svg @@ -0,0 +1,161 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/clean.svg b/package/usr/share/hedera-web/image/scalable/clean.svg new file mode 100644 index 00000000..e4232bcc --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/clean.svg @@ -0,0 +1,143 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/delete.svg b/package/usr/share/hedera-web/image/scalable/delete.svg new file mode 100644 index 00000000..7d3472b1 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/delete.svg @@ -0,0 +1,136 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/edit.svg b/package/usr/share/hedera-web/image/scalable/edit.svg new file mode 100644 index 00000000..f6d0443e --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/edit.svg @@ -0,0 +1,146 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/error.svg b/package/usr/share/hedera-web/image/scalable/error.svg new file mode 100644 index 00000000..4ebaee99 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/error.svg @@ -0,0 +1,154 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/go-previous.svg b/package/usr/share/hedera-web/image/scalable/go-previous.svg new file mode 100644 index 00000000..75d6cb39 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/go-previous.svg @@ -0,0 +1,169 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/info.svg b/package/usr/share/hedera-web/image/scalable/info.svg new file mode 100644 index 00000000..13999a39 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/info.svg @@ -0,0 +1,122 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/ok.svg b/package/usr/share/hedera-web/image/scalable/ok.svg new file mode 100644 index 00000000..48e3b8cd --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/ok.svg @@ -0,0 +1,133 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/order.svg b/package/usr/share/hedera-web/image/scalable/order.svg new file mode 100644 index 00000000..22a78cb6 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/order.svg @@ -0,0 +1,137 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/print.svg b/package/usr/share/hedera-web/image/scalable/print.svg new file mode 100644 index 00000000..b14a8256 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/print.svg @@ -0,0 +1,136 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/refresh.svg b/package/usr/share/hedera-web/image/scalable/refresh.svg new file mode 100644 index 00000000..ac3cb4e9 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/refresh.svg @@ -0,0 +1,133 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/remove.svg b/package/usr/share/hedera-web/image/scalable/remove.svg new file mode 100644 index 00000000..0489ada5 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/remove.svg @@ -0,0 +1,93 @@ + + + + + + Gnome Symbolic Icon Theme + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/show.svg b/package/usr/share/hedera-web/image/scalable/show.svg new file mode 100644 index 00000000..339b56b9 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/show.svg @@ -0,0 +1,130 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/scalable/unavailable.svg b/package/usr/share/hedera-web/image/scalable/unavailable.svg new file mode 100644 index 00000000..f405c9a0 --- /dev/null +++ b/package/usr/share/hedera-web/image/scalable/unavailable.svg @@ -0,0 +1,153 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + diff --git a/package/usr/share/hedera-web/image/show.png b/package/usr/share/hedera-web/image/show.png new file mode 100644 index 00000000..7e322e9c Binary files /dev/null and b/package/usr/share/hedera-web/image/show.png differ diff --git a/package/usr/share/hedera-web/image/store.png b/package/usr/share/hedera-web/image/store.png new file mode 100755 index 00000000..58ee07da Binary files /dev/null and b/package/usr/share/hedera-web/image/store.png differ diff --git a/package/usr/share/hedera-web/image/supplant.png b/package/usr/share/hedera-web/image/supplant.png new file mode 100755 index 00000000..d596c2bf Binary files /dev/null and b/package/usr/share/hedera-web/image/supplant.png differ diff --git a/package/usr/share/hedera-web/image/unavailable.png b/package/usr/share/hedera-web/image/unavailable.png new file mode 100644 index 00000000..d7f73fd7 Binary files /dev/null and b/package/usr/share/hedera-web/image/unavailable.png differ diff --git a/package/usr/share/hedera-web/image/update-browser.png b/package/usr/share/hedera-web/image/update-browser.png new file mode 100755 index 00000000..eac667a4 Binary files /dev/null and b/package/usr/share/hedera-web/image/update-browser.png differ diff --git a/package/usr/share/hedera-web/image/youtube.png b/package/usr/share/hedera-web/image/youtube.png new file mode 100644 index 00000000..2255e2c0 Binary files /dev/null and b/package/usr/share/hedera-web/image/youtube.png differ diff --git a/package/usr/share/hedera-web/index.php b/package/usr/share/hedera-web/index.php new file mode 100755 index 00000000..0b59936f --- /dev/null +++ b/package/usr/share/hedera-web/index.php @@ -0,0 +1,80 @@ +isOpen ()) +{ + header ('Location: unavailable.html'); + exit (0); +} + +// Getting the page + +if (isset ($_GET['page']) && Vn\Hedera\checkToken ($_GET['page'])) + $page = $_GET['page']; +else + $page = 'login'; + +// Checking the browser version + +if (!isset ($_SESSION['skipBrowser']) && $page != 'update-browser') +{ + $updateBrowser = FALSE; + + if (!isset ($_GET['skipBrowser']) + && ($browser = get_browser ($_SERVER['HTTP_USER_AGENT']))) + { + $browserVersion = $browser->version; + set_type ($browserVersion, TYPE_DOUBLE); + + $minVersion = Web::$sysConn->getValue ( + 'SELECT version FROM browser WHERE name = #', [$browser->browser]); + + $updateBrowser = $browserVersion > 0 + && isset ($minVersion) && $browserVersion < $minVersion; + } + + if ($updateBrowser) + { + header ('Location: ?page=update-browser'); + exit (0); + } + else + $_SESSION['skipBrowser'] = TRUE; +} + +// Loading the page + +$basePath = 'pages/'. $page; + +setcookie ('hedera_version', $_SESSION['version']); +header ('Content-Type: text/html; charset=utf-8'); + +if (file_exists ($basePath)) +{ + Locale::addPath ($basePath); + + $phpFile = $basePath .'/'. $page .'.php'; + + if (file_exists ($phpFile)) + require ($phpFile); + + require ($basePath .'/html.php'); +} + +Web::deinit (); + +?> diff --git a/package/usr/share/hedera-web/js/db/calc-sum.js b/package/usr/share/hedera-web/js/db/calc-sum.js new file mode 100755 index 00000000..62707411 --- /dev/null +++ b/package/usr/share/hedera-web/js/db/calc-sum.js @@ -0,0 +1,59 @@ +/** + * Computes a sum of data in the model. + **/ +Db.CalcSum = new Class +({ + Extends: Db.Calc + ,Tag: 'db-calc-sum' + + ,getRowValue: function (row) + { + var value; + + if (this._func) + { + this.form.row = row; + value = this._func (this.form); + } + else + value = this._model.getByIndex (row, this.columnIndex); + + return value; + } + + ,before: function (row) + { + var value = this.getRowValue (row) + + if (value !== null) + { + this.sum -= value; + this.numbersCount--; + } + } + + ,after: function (row) + { + var value = this.getRowValue (row); + + if (value !== null) + { + this.sum += value; + this.numbersCount++; + } + } + + ,init: function () + { + this.sum = 0; + this.numbersCount = 0; + } + + ,done: function () + { + if (this.numbersCount > 0) + this.value = this.sum; + else + this.value = null; + } +}); diff --git a/package/usr/share/hedera-web/js/db/calc.js b/package/usr/share/hedera-web/js/db/calc.js new file mode 100755 index 00000000..99f25906 --- /dev/null +++ b/package/usr/share/hedera-web/js/db/calc.js @@ -0,0 +1,149 @@ +/** + * Interface for handle foreach operations on the model. + **/ +Db.Calc = new Class +({ + Extends: Vn.Param + ,Tag: 'db-calc' + ,Properties: + { + model: + { + type: Db.Model + ,set: function (x) + { + this.link ({_model: x}, + { + 'status-changed': this.onModelChange + ,'row-deleted-before': this.onRowDeleteBefore + ,'row-updated': this.onRowUpdate + ,'row-updated-before': this.onRowUpdateBefore + ,'row-inserted': this.onRowInsert + }); + + this.form = new Db.Form ({model: x}); + } + ,get: function () + { + return this._model; + } + }, + columnIndex: + { + type: Number + ,set: function (x) + { + this.reset (); + this._columnIndex = x; + this.onModelChange (); + } + ,get: function () + { + return this._columnIndex; + } + }, + columnName: + { + type: String + ,set: function (x) + { + this.reset (); + this._columnName = x; + this.onModelChange (); + } + ,get: function () + { + return this._columnName; + } + }, + func: + { + type: Function + ,set: function (x) + { + this.reset (); + this._func = x; + this.onModelChange (); + } + ,get: function () + { + return this._func; + } + } + } + + ,_model: null + + ,reset: function () + { + delete this._columnIndex; + delete this._columnName; + delete this._func; + } + + ,onModelChange: function () + { + this.init (); + + if (this._model) + { + if (this._model.ready && this._columnName) + this._columnIndex = this._model.getColumnIndex (this._columnName); + + var rows = this._model.numRows; + + for (var i = 0; i < rows; i++) + this.after (i); + } + + this.done (); + } + + ,onRowInsert: function (model, row) + { + this.after (row); + this.done (); + } + + ,onRowUpdateBefore: function (model, row) + { + this.before (row); + } + + ,onRowUpdate: function (model, row) + { + this.after (row); + this.done (); + } + + ,onRowDeleteBefore: function (model, row) + { + this.before (row); + this.done (); + } + + /** + * Called before each update or delete row operation. + * You don't need to define it if model isn't updatable. + * + * @param {integer} row The row number + **/ + ,before: function (row) {} + + /** + * Called after each update or insert row operation. + * + * @param {integer} row The row number + **/ + ,after: function (row) {} + + /** + * Called before each model refresh. + **/ + ,init: function () {} + + /** + * Called when an operation in the model is complete. + **/ + ,done: function () {} +}); diff --git a/package/usr/share/hedera-web/js/db/conn.js b/package/usr/share/hedera-web/js/db/conn.js new file mode 100755 index 00000000..dce79b8c --- /dev/null +++ b/package/usr/share/hedera-web/js/db/conn.js @@ -0,0 +1,241 @@ +/** + * Simulates a connection to a database by making asynchronous http requests to + * a remote PHP script that returns the results in JSON format. + * Using this class can perform any operation that can be done with a database, + * like open/close a connection or selecion/updating queries. + **/ +Db.Conn = new Class ().extend +({ + Flag: + { + NOT_NULL : 1 + ,PRI_KEY : 2 + ,AI : 512 | 2 | 1 + } + + ,Type: + { + TIMESTAMP : 7 + ,DATE : 10 + ,DATE_TIME : 12 + } +}); + +Db.Conn.implement +({ + Extends: Vn.Object + + ,connected: false + ,requestsCount: 0 + + /** + * Initilizes the connection object. + **/ + ,initialize: function () + { + this.parent (); + } + + /** + * Opens the connection to the database. + * + * @param {string} user The user name + * @param {String} password The user password + * @param {Boolean} remember Specifies if the user should be remembered + * @param {Function} openCallback The function to call when operation is done + **/ + ,open: function (user, pass, remember, openCallback) + { + this.signalEmit ('loading-changed', true); + + var request = new Db.HttpRequest (); + request.add ({'action': 'login'}); + + if (user != null) + { + request.add + ({ + 'user': user + ,'password': pass + ,'remember': remember + }); + } + + request.send ('rest.php', + this.opened.bind (this, request, openCallback)); + } + + /* + * Called when open operation is done. + */ + ,opened: function (request, openCallback, success) + { + var openSuccess = false; + + if (success) + try { + var json = request.getJson (); + openSuccess = true /* json.data */; + } + catch (e) {} + + if (openSuccess) + this.connected = true; + + this.signalEmit ('loading-changed', false); + + if (openCallback) + openCallback (this, openSuccess); + } + + /** + * Closes the connection to the database. + * + * @param {Function} closeCallback The function to call when operation is done + **/ + ,close: function (closeCallback) + { + this.signalEmit ('loading-changed', true); + + var request = new Db.HttpRequest (); + request.addValue ({'action': 'close'}); + request.send ('rest.php', + this.closed.bind (this, closeCallback)); + } + + /* + * Called when close operation is done. + */ + ,closed: function (closeCallback) + { + this.connected = false; + this.signalEmit ('closed'); + + this.signalEmit ('loading-changed', false); + + if (closeCallback) + closeCallback (this); + } + + /** + * Runs a SQL query on the database. + * + * @param {String} sql The SQL statement + * @param {Function} callback The function to call when operation is done + **/ + ,execSql: function (sql, callback) + { + this.requestsCount++; + + if (this.requestsCount == 1) + this.signalEmit ('loading-changed', true); + + var httpRequest = new Db.HttpRequest () + httpRequest.add + ({ + 'action': 'query' + ,'sql': sql + }); + httpRequest.send ('rest.php', + this.execDone.bind (this, httpRequest, callback)); + } + + /** + * Runs a stmt on the database. + * + * @param {Sql.Stmt} stmt The statement + * @param {Function} callback The function to call when operation is done + * @param {Sql.Batch} batch The batch used to set the parameters + **/ + ,execStmt: function (stmt, callback, batch) + { + this.execSql (stmt.render (batch), callback); + } + + /** + * Runs a query on the database. + * + * @param {String} query The SQL statement + * @param {Function} callback The function to call when operation is done + * @param {Sql.Batch} batch The batch used to set the parameters + **/ + ,execQuery: function (query, callback, batch) + { + this.execStmt (new Sql.String ({query: query}), callback, batch); + } + + /* + * Parses a value to date. + */ + ,valueToDate: function (value) + { + return new Date (value * 1000); + } + + /* + * Called when a query is executed. + */ + ,execDone: function (httpRequest, callback, success) + { + var error = null; + var results = null; + + this.requestsCount--; + + if (this.requestsCount == 0) + this.signalEmit ('loading-changed', false); + + if (!success) + error = new Vn.Error ('Conn', 'connError', _('ConnError')); + else + try { + var json = httpRequest.getJson (); + results = json.data; + + if (json.error !== null) + error = new Vn.Error (json.error.domain, + json.error.code, json.error.message); + + if (results instanceof Array) + for (var i = 0; i < results.length; i++) + if (results[i] !== true) + { + var data = results[i].data; + var columns = results[i].field; + + for (var j = 0; j < columns.length; j++) + { + var castFunc = null; + + switch (columns[j].type) + { + case Db.Conn.Type.DATE: + case Db.Conn.Type.DATE_TIME: + case Db.Conn.Type.TIMESTAMP: + castFunc = this.valueToDate; + break; + } + + if (castFunc !== null) + { + if (columns[j].def != null) + columns[j].def = castFunc (columns[j].def); + + for (var k = 0; k < data.length; k++) + if (data[k][j] != null) + data[k][j] = castFunc (data[k][j]); + } + } + } + } + catch (e) { + error = new Vn.Error ('Conn', 'badReply', e.message /*_('BadServerReply')*/); + } + + if (callback) + callback (new Db.ResultSet (results, error)); + if (error) + this.signalEmit ('error', error); + } +}); + diff --git a/package/usr/share/hedera-web/js/db/form.js b/package/usr/share/hedera-web/js/db/form.js new file mode 100755 index 00000000..0113499d --- /dev/null +++ b/package/usr/share/hedera-web/js/db/form.js @@ -0,0 +1,212 @@ + +Db.Form = new Class +({ + Extends: Vn.Object + ,Tag: 'db-form' + ,Child: 'model' + ,Properties: + { + /** + * The model associated to this form. + **/ + model: + { + type: Db.Model + ,set: function (x) + { + this.link ({_model: x}, + { + 'status-changed': this.onModelChange + ,'row-updated': this.onRowUpdate + }); + } + ,get: function () + { + return this._model; + } + }, + /** + * The row where the form positioned, has -1 if the row is unselected. + **/ + row: + { + type: Number + ,set: function (x) + { + if (!this._model || this._model.numRows <= x || x < -1) + x = -1; + if (x == this._row) + return; + + this._row = x; + this.iterChanged (); + } + ,get: function () + { + return this._row; + } + }, + /** + * The number of rows in the form. + **/ + numRows: + { + type: Number + ,get: function () + { + if (this._model) + return this._model.numRows; + + return 0; + } + }, + /** + * Checks if the form data is ready. + **/ + ready: + { + type: Boolean + ,get: function () + { + return this._ready; + } + } + } + + ,lastRow: 0 + ,_model: null + ,_row: -1 + ,_ready: false + + ,onModelChange: function () + { + var ready = this._model && this._model.ready; + + if (ready != this._ready) + { + if (this._row != -1) + this.lastRow = this._row; + + this._ready = ready; + this.signalEmit ('status-changed'); + + if (this._row == -1) + this.row = this.lastRow; + } + } + + ,onRowUpdate: function (model, row, column) + { + if (row == this._row) + this.iterChanged (); + } + + ,refresh: function () + { + if (this._model) + this._model.refresh (); + } + + /** + * Emits the 'iter-changed' signal on the form. + **/ + ,iterChanged: function () + { + this.signalEmit ('iter-changed'); + } + + /** + * Get the index of the column from its name. + * + * @param {String} columnName The column name + * @return {integer} The column index or -1 if column not exists + **/ + ,getColumnIndex: function (columnName) + { + if (this._model) + return this._model.getColumnIndex (columnName); + + return -1; + } + + ,insertRow: function () + { + if (this._model) + this.row = this._model.insertRow (); + } + + ,performOperations: function () + { + if (this._model) + this._model.performOperations (); + } + + /** + * Removes the current row. + **/ + ,deleteRow: function () + { + if (this._row >= 0) + this._model.deleteRow (this._row); + } + + /** + * Gets a value from the form. + * + * @param {String} columnName The column name + * @return {Object} The value + **/ + ,get: function (columnName) + { + return this._model.get (this._row, columnName); + } + + /** + * Sets a value on the form. + * + * @param {String} columnName The column name + * @param {Object} value The new value + **/ + ,set: function (columnName, value) + { + return this._model.set (this._row, columnName, value); + } + + /** + * Gets a value from the form using the column index. + * + * @param {String} columnName The column index + * @return {Object} The value + **/ + ,getByIndex: function (column) + { + return this._model.getByIndex (this._row, column); + } + + /** + * Sets a value on the form using the column index. + * + * @param {String} columnName The column index + * @param {Object} value The new value + **/ + ,setByIndex: function (column, value) + { + return this._model.setByIndex (this._row, column, value); + } + + /** + * Gets a param from the form. + * + * @param {String} columnName The column name + * @return {Db.Param} The new parameter + **/ + ,getParam: function (columnName) + { + return new Db.Param + ({ + form: this + ,column: columnName + }); + } +}); + diff --git a/package/usr/share/hedera-web/js/db/http-request.js b/package/usr/share/hedera-web/js/db/http-request.js new file mode 100755 index 00000000..85dce911 --- /dev/null +++ b/package/usr/share/hedera-web/js/db/http-request.js @@ -0,0 +1,30 @@ +Db.HttpRequest = new Class +({ + kvPairs: {} + + ,add: function (map) + { + for (var key in map) + this.kvPairs[key] = map[key]; + } + + ,send: function (file, callback) + { + this.request = new XMLHttpRequest (); + this.request.open ('post', file, true); + this.request.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded'); + this.request.onreadystatechange = this.requestStateChanged.bind (this, callback); + this.request.send (Vn.Url.makeUri (this.kvPairs)); + } + + ,requestStateChanged: function (callback) + { + if (this.request.readyState == 4) + callback (this, this.request.status == 200); + } + + ,getJson: function () + { + return eval ('('+ this.request.responseText +')'); + } +}); diff --git a/package/usr/share/hedera-web/js/db/main.js b/package/usr/share/hedera-web/js/db/main.js new file mode 100755 index 00000000..d1c3899a --- /dev/null +++ b/package/usr/share/hedera-web/js/db/main.js @@ -0,0 +1,5 @@ +/** + * The namespace. + **/ +var Db = {}; + diff --git a/package/usr/share/hedera-web/js/db/main.php b/package/usr/share/hedera-web/js/db/main.php new file mode 100755 index 00000000..3a5ce636 --- /dev/null +++ b/package/usr/share/hedera-web/js/db/main.php @@ -0,0 +1,18 @@ + diff --git a/package/usr/share/hedera-web/js/db/model.js b/package/usr/share/hedera-web/js/db/model.js new file mode 100755 index 00000000..fbed527b --- /dev/null +++ b/package/usr/share/hedera-web/js/db/model.js @@ -0,0 +1,809 @@ + +Db.Model = new Class ().extend +({ + Status: + { + CLEAN : 1 + ,LOADING : 2 + ,READY : 3 + ,ERROR : 4 + } +}); + +Db.Model.implement +({ + Extends: Vn.Object + ,Tag: 'db-model' + ,Child: 'query' + ,Properties: + { + /** + * The connection used to execute the statement. + **/ + conn: + { + type: Db.Conn + ,set: function (x) + { + this._conn = x; + this.refresh (); + } + ,get: function () + { + return this._conn; + } + }, + /** + * The result index. + **/ + resultIndex: + { + type: Number + ,set: function (x) + { + this._resultIndex = x; + } + ,get: function () + { + return this._resultIndex; + } + }, + /** + * The batch used to execute the statement. + **/ + batch: + { + type: Sql.Batch + ,set: function (x) + { + this.link ({_batch: x}, {'changed': this.refresh}); + this.refresh (); + } + ,get: function () + { + return this._batch; + } + }, + /** + * The model select statement. + **/ + stmt: + { + type: Sql.Stmt + ,set: function (x) + { + this._stmt = x; + this.refresh (); + } + ,get: function () + { + return this._stmt; + } + }, + /** + * The model query. + **/ + query: + { + type: String + ,set: function (x) + { + this._stmt = new Sql.String ({query: x}); + } + ,get: function () + { + return this._stmt.render (null); + } + }, + /** + * The main table. + **/ + mainTable: + { + type: String + ,set: function (x) + { + this._mainTable = null; + this.requestedMainTable = x; + this.refreshMainTable (); + } + ,get: function () + { + return this._mainTable; + } + }, + /** + * Determines if the model is updatable. + **/ + updatable: + { + type: Boolean + ,set: function (x) + { + this._updatable = false; + this.requestedUpdatable = x; + this.refreshUpdatable (); + } + ,get: function () + { + return this._updatable; + } + }, + /** + * The number of rows in the model. + **/ + numRows: + { + type: Number + ,get: function () + { + if (this.data) + return this.data.length; + + return 0; + } + }, + /** + * The current status of the model. + **/ + status: + { + type: Number + ,get: function () + { + return this._status; + } + }, + /** + * Checks if the model data is ready. + **/ + ready: + { + type: Boolean + ,get: function () + { + return this._status == Db.Model.Status.READY; + } + } + } + + ,_resultIndex: 0 + ,_batch: null + ,_stmt: null + ,_status: Db.Model.Status.CLEAN + ,requestedMainTable: null + ,requestedUpdatable: true + ,data: null + ,columns: null + ,columnMap: null + ,insertedRow: -1 + ,defaults: [] + ,columnDefaults: [] + ,sortColumn: -1 + + ,initialize: function (props) + { + this.parent (props); + this.cleanData (false); + } + + ,loadXml: function (builder, node) + { + this.parent (builder, node); + + var query = node.firstChild.nodeValue; + + if (query) + this.query = query; + } + + ,refresh: function () + { + if (this._stmt && this._batch) + this._stmt.findHolders (this._batch); + + if (this._conn && this._stmt + && (!this._batch || this._batch.isReady ())) + { + this.setStatus (Db.Model.Status.LOADING); + this._conn.execStmt (this._stmt, this.selectDone.bind (this), this._batch); + } + else + this.cleanData (false); + } + + ,cleanData: function (error) + { + this.data = null; + this.columns = null; + this.columnMap = null; + + if (error) + this.setStatus (Db.Model.Status.ERROR); + else + this.setStatus (Db.Model.Status.CLEAN); + } + + ,refreshUpdatable: function () + { + var oldValue = this._updatable; + this._updatable = this._mainTable != null && this.requestedUpdatable; + + if (oldValue != this._updatable) + this.signalEmit ('updatable-changed'); + } + + ,refreshMainTable: function () + { + var newMainTable = null; + var newMainSchema = null; + var x = this.columns; + + if (x) + for (var i = 0; i < x.length; i++) + if (x[i].flags & Db.Conn.Flag.PRI_KEY) + if (!this.requestedMainTable + || x[i].table === this.requestedMainTable) + { + newMainTable = x[i].table; + break; + } + + this._mainTable = newMainTable; + this.refreshUpdatable (); + } + + /** + * Sets the default value for inserted fields. + * + * @param {String} field The destination field name + * @param {String} table The destination table name + * @param {Object} value The default value + **/ + ,setDefaultFromValue: function (field, table, value) + { + this.defaults.push + ({ + field: field + ,table: table + ,value: value + }); + } + + /** + * Sets the default value for inserted fields from another column in the + * model. + * + * @param {String} field The destination field name + * @param {String} table The destination table name + * @param {String} srcColumn The source column + **/ + ,setDefaultFromColumn: function (field, table, srcColumn) + { + this.columnDefaults.push + ({ + field: field + ,table: table + ,srcColumn: srcColumn + }); + } + + /** + * Checks if the column exists. + * + * @param {integer} column The column index + * @return {Boolean} %true if column exists, %false otherwise + **/ + ,checkColExists: function (column) + { + return this.columns && column >= 0 && column < this.columns.length; + } + + /** + * Checks if the row exists. + * + * @param {integer} row The row index + * @return {Boolean} %true if row exists, %false otherwise + **/ + ,checkRowExists: function (row) + { + return this.data && row >= 0 && row < this.data.length; + } + + ,checkRowUpdatable: function (row) + { + return this.checkRowExists (row); + } + + /** + * Get the index of the column from its name. + * + * @param {string} columnName The column name + * @return {number} The column index or -1 if column not exists + **/ + ,getColumnIndex: function (columnName) + { + var index; + + if (this.columnMap + && (index = this.columnMap[columnName]) !== undefined) + return index; + + return -1; + } + + /** + * Gets a value from the model. + * + * @param {number} row The row index + * @param {string} columnName The column name + * @return {mixed} The value + **/ + ,get: function (row, columnName) + { + var index = this.getColumnIndex (columnName); + + if (index != -1) + return this.getByIndex (row, index); + + return undefined; + } + + /** + * Updates a value on the model. + * + * @param {number} row The row index + * @param {string} columnName The column name + * @param {mixed} value The new value + **/ + ,set: function (row, columnName, value) + { + var index = this.getColumnIndex (columnName); + + if (index != -1) + this.setByIndex (row, index, value); + } + + /** + * Gets a value from the model using the column index. + * + * @param {number} row The row index + * @param {number} column The column index + * @return {mixed} The value + **/ + ,getByIndex: function (row, column) + { + if (this.checkRowExists (row) && this.checkColExists (column)) + return this.data[row][column]; + + return undefined; + } + + /** + * Updates a value on the model using the column index. + * + * @param {number} row The row index + * @param {number} col The column index + * @param {mixed} value The new value + **/ + ,setByIndex: function (row, col, value) + { + if (!(this.checkRowUpdatable (row) && this.checkColExists (col))) + return; + + if (row == this.insertedRow) + { + this.performUpdate (row, [col], [value]); + return; + } + + var column = this.columns[col]; + var where = this.getWhere (column.table, row, false); + + if (where) + { + var multiStmt = new Sql.MultiStmt (); + + var table = new Sql.Table + ({ + name: column.orgtable + ,schema: column.db + }); + + var update = new Sql.Update ({where: where}); + update.addTarget (table); + update.addSet (column.orgname, value); + multiStmt.addStmt (update); + + var select = new Sql.Select ({where: where}); + select.addTarget (table); + select.addField (column.orgname); + multiStmt.addStmt (select); + + var updateData = { + row: row + ,columns: [col] + }; + + this._conn.execStmt (multiStmt, + this.updateDone.bind (this, updateData)); + } + else + this.sendInsert (column.table, row, col, value); + } + + /** + * Deletes a row from the model. + * + * @param {number} row The row index + **/ + ,deleteRow: function (row) + { + if (!this.checkRowUpdatable (row)) + return; + + if (row != this.insertedRow) + { + var where = this.getWhere (this._mainTable, row, false); + + if (where) + { + var deleteQuery = new Sql.Delete ({where: where}); + + var table = this.getTarget (this._mainTable); + deleteQuery.addTarget (table); + + this._conn.execStmt (deleteQuery, + this.deleteDone.bind (this, row)); + } + } + else + { + this.performDelete (row); + this.insertedRow = -1; + } + } + + /** + * Inserts a new row on the model. + * + * @return The index of the inserted row + **/ + ,insertRow: function () + { + if (!this._updatable || this.insertedRow != -1) + return -1; + + var x = this.columns; + var newRow = new Array (x.length); + + for (var i = 0; i < x.length; i++) + if (x[i].table === this._mainTable) + newRow[i] = x[i].def; + else + newRow[i] = null; + + this.insertedRow = this.data.push (newRow) - 1; + this.signalEmit ('row-inserted', this.insertedRow); + + return this.insertedRow; + } + + ,performOperations: function () + { + if (this.insertedRow == -1) + return; + + this.sendInsert (this._mainTable, this.insertedRow, -1, null); + } + + /* + * Function used to sort the model. + */ + ,sortFunction: function (column, a, b) + { + if (a[column] < b[column]) + return -1; + else if (a[column] > b[column]) + return 1; + + return 0; + } + + /** + * Orders the model by the specified column. + * + * @param {integer} column the column index + **/ + ,sort: function (column) + { + if (!this.checkColExists (column)) + return; + + this.setStatus (Db.Model.Status.LOADING); + + if (column != this.sortColumn) + { + this.data.sort (this.sortFunction.bind (this, column)); + this.sortColumn = column; + } + else + this.data.reverse (); + + this.setStatus (Db.Model.Status.READY); + } + + /** + * Searchs a value on the model and returns the row index of the first + * ocurrence. + * + * @param {String} column The column name + * @param {Object} value The value to search + * @return {integer} The column index + **/ + ,search: function (column, value) + { + var index = this.getColumnIndex (column); + return this.searchByIndex (index, value); + } + + /** + * Searchs a value on the model and returns the row index of the first + * ocurrence. + * + * @param {integer} col The column index + * @param {Object} value The value to search + * @return {integer} The column index + **/ + ,searchByIndex: function (col, value) + { + if (!this.checkColExists (col)) + return -1; + + var data = this.data; + + switch (this.columns[col].type) + { + case Db.Conn.Type.TIMESTAMP: + case Db.Conn.Type.DATE_TIME: + case Db.Conn.Type.DATE: + { + value = value.toString (); + + for (var i = 0; i < data.length; i++) + if (value === data[i][col].toString ()); + return i; + + break; + } + default: + for (var i = 0; i < data.length; i++) + if (value === data[i][col]) + return i; + } + + return -1; + } + +// private: + + ,setStatus: function (status) + { + this._status = status; + this.signalEmit ('status-changed', status); + } + + ,getTarget: function (table) + { + var x = this.columns; + + for (var i = 0; i < x.length; i++) + if (x[i].table == table) + return new Sql.Table + ({ + name: x[i].orgtable + ,schema: x[i].db + }); + + return null; + } + + ,getWhere: function (table, rowIndex, forInsert) + { + var keyFound = false; + var row = this.data[rowIndex]; + var andOp = new Sql.Operation ({type: Sql.Operation.Type.AND}); + + var x = this.columns; + + for (var i = 0; i < x.length; i++) + if (x[i].flags & Db.Conn.Flag.PRI_KEY + && x[i].table === table) + { + var equalOp = new Sql.Operation ({type: Sql.Operation.Type.EQUAL}); + equalOp.exprs.add (new Sql.Field ({name: x[i].orgname})); + andOp.exprs.add (equalOp); + + if (row[i]) + equalOp.exprs.add (new Sql.Value ({value: row[i]})); + else if (x[i].flags & Db.Conn.Flag.AI && forInsert) + equalOp.exprs.add (new Sql.Func ({name: 'LAST_INSERT_ID'})); + else + break; + + keyFound = true; + } + + return (keyFound) ? andOp : null; + } + + ,sendInsert: function (table, rowIndex, singleColumn, newValue) + { + var where = this.getWhere (table, rowIndex, true); + + if (!where) + return; + + var multiStmt = new Sql.MultiStmt (); + var target = this.getTarget (table); + + var insert = new Sql.Insert (); + insert.addTarget (target); + multiStmt.addStmt (insert); + + var x = this.defaults; + + for (var i = 0; i < x.length; i++) + if (x[i].table === table) + insert.addSet (x[i].field, x[i].value); + + var x = this.columnDefaults; + + for (var i = 0; i < x.length; i++) + if (x[i].table === table) + insert.addSet (x[i].field, this.get (rowIndex, x[i].srcColumn)); + + var select = new Sql.Select ({where: where}); + select.addTarget (target); + multiStmt.addStmt (select); + + var columns = []; + var row = this.data[rowIndex]; + var x = this.columns; + + for (var i = 0; i < x.length; i++) + if (x[i].table === table) + { + var setValue = singleColumn != i ? row[i] : newValue; + + if (setValue) + insert.addSet (x[i].orgname, setValue); + + select.addField (x[i].orgname); + columns.push (i); + } + + var updateData = { + row: rowIndex + ,columns: columns + }; + + this._conn.execStmt (multiStmt, + this.updateDone.bind (this, updateData)); + } + + ,selectDone: function (resultSet) + { + var result; + var dataResult; + + for (var i = 0; result = resultSet.fetchResult (); i++) + if (i == this._resultIndex) + dataResult = result; + + if (dataResult && typeof dataResult === 'object') + { + this.sortColumn = -1; + this.data = dataResult.data; + this.columns = dataResult.columns; + this.columnMap = dataResult.columnMap; + this.repairColumns (this.columns); + this.refreshMainTable (); + this.setStatus (Db.Model.Status.READY); + } + else + this.cleanData (true); + } + + ,updateDone: function (updateData, resultSet) + { + var newValues; + + if (resultSet.fetchResult () && (newValues = resultSet.fetchRow ())) + this.performUpdate (updateData.row, updateData.columns, newValues); + } + + ,performUpdate: function (rowIndex, columns, newValues) + { + this.signalEmit ('row-updated-before', rowIndex); + + var row = this.data[rowIndex]; + + for (var i = 0; i < columns.length; i++) + row[columns[i]] = newValues[i]; + + this.signalEmit ('row-updated', rowIndex, columns); + } + + ,deleteDone: function (rowIndex, resultSet) + { + if (resultSet.fetchResult()) + this.performDelete (rowIndex); + } + + ,performDelete: function (rowIndex) + { + var row = this.data[rowIndex]; + + if (!this.requestedMainTable) + { + this.signalEmit ('row-deleted-before', rowIndex); + this.data.splice (rowIndex, 1); + this.signalEmit ('row-deleted', rowIndex); + } + else + { + this.signalEmit ('row-updated-before', rowIndex); + + var columns = []; + + for (var i = 0; i < this.columns.length; i++) + if (this.columns[i].table == this._mainTable) + { + row[i] = null; + columns.push (i); + } + + this.signalEmit ('row-updated', rowIndex, columns); + } + } + +// Delete when MySQL FLAG and view orgname "bugs" are repaired: + + ,tableInfo: {} + ,fieldFlags: {} + + ,setTableInfo: function (table, orgtable, db) + { + this.tableInfo[table] = + ({ + orgtable: orgtable + ,db: db + }); + } + + ,setFieldFlags: function (field, flags) + { + this.fieldFlags[field] = flags; + } + + ,repairColumns: function (columns) + { + for (var i = 0; i < columns.length; i++) + { + var newFlags = this.fieldFlags[columns[i].name]; + + if (newFlags) + columns[i].flags |= newFlags; + + var tableInfo = this.tableInfo[columns[i].table]; + + if (tableInfo) + { + columns[i].orgtable = tableInfo.orgtable; + columns[i].db = tableInfo.db; + } + } + } +}); + diff --git a/package/usr/share/hedera-web/js/db/param.js b/package/usr/share/hedera-web/js/db/param.js new file mode 100755 index 00000000..15eb73bc --- /dev/null +++ b/package/usr/share/hedera-web/js/db/param.js @@ -0,0 +1,91 @@ +Db.Param = new Class +({ + Extends: Vn.Param + ,Tag: 'db-param' + ,Parent: 'form' + ,Properties: + { + /** + * The form field referenced by this param. + **/ + column: + { + type: String + ,set: function (x) + { + this._columnName = x; + this.refresh (); + } + ,get: function () + { + this._columnName; + } + }, + /** + * The form referenced by this param. + **/ + form: + { + type: Db.Form + ,set: function (x) + { + this.link ({_form: x}, + { + 'status-changed': this.onFormChange + ,'iter-changed': this.onIterChange + }); + + this.refresh (); + } + ,get: function () + { + return this._form; + } + } + } + + ,_columnName: null + ,_form: null + ,formLock: false + ,columnIndex: -1 + + ,initialize: function (props) + { + this.parent (props); + this.on ('changed', this.onChange, this); + } + + ,refresh: function () + { + if (this._form) + { + this.onFormChange (); + this.onIterChange (); + } + } + + ,onFormChange: function () + { + if (this._columnName != null) + this.columnIndex = this._form.getColumnIndex (this._columnName); + } + + ,onIterChange: function () + { + this.formLock = true; + + if (this.columnIndex != -1) + this.value = this._form.getByIndex (this.columnIndex); + else + this.value = undefined; + + this.formLock = false; + } + + ,onChange: function () + { + if (!this.formLock && this.columnIndex != -1) + this._form.setByIndex (this.columnIndex, this._value); + } +}); + diff --git a/package/usr/share/hedera-web/js/db/result-set.js b/package/usr/share/hedera-web/js/db/result-set.js new file mode 100755 index 00000000..cb3264b7 --- /dev/null +++ b/package/usr/share/hedera-web/js/db/result-set.js @@ -0,0 +1,89 @@ +/** + * This class stores the database results. + **/ +Db.ResultSet = new Class +({ + results: null + ,error: null + + /** + * Initilizes the resultset object. + **/ + ,initialize: function (results, error) + { + this.results = results; + this.error = error; + } + + /** + * Gets the query error. + * + * @return {Db.Err} the error or null if no errors hapened + **/ + ,getError: function () + { + return this.error; + } + + ,fetch: function () + { + if (this.results !== null + && this.results.length > 0) + return this.results.shift (); + + return null; + } + + /** + * Fetchs the next result from the resultset. + * + * @return {Db.Result} the result or %null if error or there are no more results + **/ + ,fetchResult: function () + { + var result = this.fetch (); + + if (result !== null) + { + if (result.data instanceof Array) + return new Db.Result (result.data, result.field); + else + return true; + } + + return null; + } + + /** + * Fetchs the first row from the next resultset. + * + * @return {Array} the row if success, %null otherwise + **/ + ,fetchRow: function () + { + var result = this.fetch (); + + if (result !== null + && result.data instanceof Array + && result.data.length > 0) + return result.data[0]; + + return null; + } + + /** + * Fetchs the first row and column value from the next resultset. + * + * @return {Object} the value if success, %null otherwise + **/ + ,fetchValue: function () + { + var row = this.fetchRow (); + + if (row instanceof Array && row.length > 0) + return row[0]; + + return null; + } +}); + diff --git a/package/usr/share/hedera-web/js/db/result.js b/package/usr/share/hedera-web/js/db/result.js new file mode 100755 index 00000000..17227b1e --- /dev/null +++ b/package/usr/share/hedera-web/js/db/result.js @@ -0,0 +1,58 @@ +/** + * This class stores a database result. + **/ +Db.Result = new Class +({ + /** + * Initilizes the result object. + **/ + initialize: function (data, columns) + { + this.data = data; + this.columns = columns; + this.columnMap = null; + this.row = -1; + + if (columns) + { + this.columnMap = {}; + + for (var i = 0; i < columns.length; i++) + this.columnMap[columns[i].name] = i; + } + } + + /** + * Gets a value from de result. + * + * @param {String} columnName The column name + * @return {Object} The cell value + **/ + ,get: function (columnName) + { + var columnIndex = this.columnMap[columnName]; + return this.data[this.row][columnIndex]; + } + + /** + * Resets the result iterator. + **/ + ,reset: function () + { + this.row = -1; + } + + /** + * Moves the internal iterator to the next row. + **/ + ,next: function () + { + this.row++; + + if (this.row >= this.data.length) + return false; + + return true; + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/column.js b/package/usr/share/hedera-web/js/htk/column.js new file mode 100755 index 00000000..ca5ae23c --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column.js @@ -0,0 +1,84 @@ +/** + * Represents a grid column. This is an abstract class and should not be + * instantiated directly. + **/ +Htk.Column = new Class +({ + Extends: Vn.Object + ,Tag: 'htk-column' + ,Parent: 'grid' + ,Properties: + { + value: + { + type: Object + ,value: null + }, + column: + { + type: String + ,value: null + }, + columnIndex: + { + type: Number + ,value: -1 + }, + title: + { + type: String + ,value: null + }, + editable: + { + type: Boolean + ,value: false + }, + renderer: + { + type: Function + ,value: false + }, + grid: + { + type: Htk.Grid + ,set: function (x) + { + if (x) + x.appendColumn (this); + } + } + } + + /** + * Initializes the column. + **/ + ,initialize: function (props) + { + this.parent (props); + this.td = document.createElement ('td'); + } + + /** + * Draws the cell and returns its associated td. + * + * @param {HTMLTableRow} tr the table row + * @return {HTMLTableData} the rendered cell + **/ + ,render: function (tr) + { + return this.td.cloneNode (true); + } + + ,updateColumnIndex: function (model) + { + if (this.column) + this.columnIndex = model.getColumnIndex (this.column); + } + + ,changed: function (tr, newValue) + { + this.signalEmit ('changed', tr.rowIndex - 1, newValue); + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/column/button.js b/package/usr/share/hedera-web/js/htk/column/button.js new file mode 100755 index 00000000..9cfb8085 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/button.js @@ -0,0 +1,46 @@ +Htk.ColumnButton = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-button' + ,Properties: + { + image: + { + type: String + ,value: null + }, + tip: + { + type: String + ,value: null + } + } + + ,render: function (tr) + { + var td = this.parent (tr); + + var button = document.createElement ('button'); + button.className = 'cell-button'; + button.addEventListener ('click', + this.buttonClicked.bind (this, this.value, tr)); + td.appendChild (button); + + var img = document.createElement ('img'); + img.src = this.image; + button.appendChild (img); + + if (this.tip) + { + button.title = _(this.tip); + img.title = _(this.tip); + } + + return td; + } + + ,buttonClicked: function (value, tr) + { + this.signalEmit ('clicked', value, tr.rowIndex - 1); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/check.js b/package/usr/share/hedera-web/js/htk/column/check.js new file mode 100755 index 00000000..e772dcf7 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/check.js @@ -0,0 +1,28 @@ +Htk.ColumnCheck = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-check' + + ,render: function (tr) + { + var checkButton = document.createElement ('input'); + checkButton.type = 'checkbox'; + checkButton.checked = this.value; + + if (this.editable) + checkButton.addEventListener ('changed', + this.inputChanged.bind (this, tr, node)); + else + checkButton.disabled = true; + + var td = this.parent (tr); + td.style.textAlign = 'center'; + td.appendChild (checkButton); + return td; + } + + ,inputChanged: function (tr, node) + { + this.changed (tr, node.value); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/date.js b/package/usr/share/hedera-web/js/htk/column/date.js new file mode 100755 index 00000000..9f45e121 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/date.js @@ -0,0 +1,36 @@ +Htk.ColumnDate = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-date' + ,Properties: + { + /** + * Format that applies to the value. + **/ + format: + { + type: String + ,set: function (x) + { + this._format = _(x); + } + ,get: function () + { + return this._format; + } + } + } + + ,_format: _('%a, %e %b %Y') + + ,render: function (tr) + { + var text = Vn.Date.strftime (this.value, this._format); + + var td = this.parent (tr); + td.style.textAlign = 'left'; + td.appendChild (document.createTextNode (text)); + + return td; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/image.js b/package/usr/share/hedera-web/js/htk/column/image.js new file mode 100755 index 00000000..3b2caa3a --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/image.js @@ -0,0 +1,159 @@ +Htk.ColumnImage = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-image' + ,Properties: + { + /** + * The directory where the images are allocated. + **/ + directory: + { + type: String + ,set: function (x) + { + this._directory = x; + this.basedir = Vn.Config['image_dir'] +'/'+ x; + } + ,get: function () + { + return this._directory; + } + }, + /** + * The directory where the images are allocated. + **/ + subdir: + { + type: String + ,value: null + }, + /** + * Whether to show the full image when mouse hover. + **/ + showFull: + { + type: Boolean + ,value: false + } + } + + ,_directory: null + ,basedir: null + + ,initialize: function (props) + { + this.parent (props); + this.fullImage = new Htk.FullImage (); + } + + ,render: function (tr) + { + var td = this.parent (tr); + + var img = document.createElement ('img'); + img.alt = '' + td.appendChild (img); + + var cell = + { + img: img + ,value: this.value + ,tr: tr + ,error: false + }; + + this.setSrc (cell, true); + + if (this.showFull) + { + img.addEventListener ('mouseover', this.onMouseOver.bind (this, cell)); + img.addEventListener ('mouseout', this.onMouseOut.bind (this)); + } + if (this.editable) + { + img.className = 'editable'; + img.addEventListener ('dblclick', this.onDoubleClick.bind (this, cell)); + img.addEventListener ('error', this.onImageError.bind (this, cell)); + } + + return td; + } + + ,setSrc: function (cell, useCache) + { + if (cell.value) + { + var url = this.basedir +'/'; + + if (this.subdir) + url += this.subdir +'/'; + + url += cell.value; + + if (!useCache) + query = '?'+ new Date ().getTime (); + + cell.img.src = url; + } + else + this.onImageError (cell); + } + + ,onImageError: function (cell) + { + if (!cell.error) + { + cell.error = true; + cell.img.src = 'image/empty.png'; + } + } + + ,onMouseOver: function (cell) + { + if (!cell.error) + this.fullImage.show (this.basedir, cell.value); + } + + ,onMouseOut: function () + { + this.fullImage.hide (); + } + + ,onDoubleClick: function (cell) + { + var editor = new Htk.ImageEditor (); + editor.setData (cell.value, this._directory); + + this.nameChangedHandler = this.onNameChange.bind (this, cell); + editor.on ('name-changed', this.nameChangedHandler); + + this.fileUploadedHandler = this.onFileUpload.bind (this, cell); + editor.on ('file-uploaded', this.fileUploadedHandler); + + this.editorClosedHandler = this.onEditorClose.bind (this); + editor.on ('closed', this.editorClosedHandler); + + editor.showPopup (cell.img); + } + + ,onNameChange: function (cell, editor, value) + { + cell.value = value; + this.setSrc (cell, true); + this.changed (cell.tr, value); + } + + ,onFileUpload: function (cell, editor) + { + this.setSrc (cell, false); + editor.hidePopup (); + } + + ,onEditorClose: function (editor) + { + editor.disconnect ('name-changed', this.nameChangedHandler); + editor.disconnect ('file-uploaded', this.fileUploadedHandler); + editor.disconnect ('closed', this.editorClosedHandler); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/link.js b/package/usr/share/hedera-web/js/htk/column/link.js new file mode 100755 index 00000000..827fe6e2 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/link.js @@ -0,0 +1,41 @@ + +Htk.ColumnLink = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-link' + ,Properties: + { + /** + * The link url. + **/ + href: + { + type: String + ,value: null + }, + /** + * the target where the link is opened. + **/ + target: + { + type: String + ,value: null + } + } + + ,render: function (tr) + { + var link = document.createElement ('a'); + link.href = this.href; + link.appendChild (document.createTextNode (this.value)); + + if (this.target) + link.target = this.target; + + var td = this.parent (tr); + td.style.textAlign = 'left'; + td.appendChild (link); + return td; + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/column/radio.js b/package/usr/share/hedera-web/js/htk/column/radio.js new file mode 100755 index 00000000..9f9b9306 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/radio.js @@ -0,0 +1,37 @@ +Htk.ColumnRadio = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-radio' + ,Properties: + { + param: + { + type: Vn.Param + ,set: function (x) + { + this.radioGroup.master = x; + } + } + } + + ,initialize: function (props) + { + this.parent (props); + this.radioGroup = new Htk.RadioGroup (); + } + + ,render: function (tr) + { + var td = this.parent (tr); + + var radio = this.radioGroup.createButton (this.value); + td.appendChild (radio); + + return td; + } + + ,clear: function () + { + this.radioGroup.clear (); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/spin.js b/package/usr/share/hedera-web/js/htk/column/spin.js new file mode 100755 index 00000000..300196f1 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/spin.js @@ -0,0 +1,61 @@ +Htk.ColumnSpin = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-spin' + ,Properties: + { + /** + * The text to append to the number. + **/ + unit: + { + type: String + ,value: null + }, + /** + * The number of decimal places to display. + **/ + digits: { + type: Number + ,value: 0 + } + } + + ,render: function (tr) + { + var td = this.parent (tr); + td.style.textAlign = 'right'; + + var valueString = null; + + if (this.value !== null && this.value !== undefined) + valueString = new Number (this.value).toFixed (this.digits); + + if (this.editable) + { + var entry = document.createElement ('input'); + entry.type = 'text'; + entry.className = 'cell-spin'; + entry.addEventListener ('change', this.inputChanged.bind (this, tr, entry)); + td.appendChild (entry); + + if (valueString) + entry.value = valueString; + } + else if (valueString) + { + if (this.unit) + valueString = valueString +' '+ this.unit; + + var text = document.createTextNode (valueString); + td.appendChild (text); + } + + return td; + } + + ,inputChanged: function (tr, entry) + { + this.changed (tr, parseInt (entry.value)); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/column/text.js b/package/usr/share/hedera-web/js/htk/column/text.js new file mode 100755 index 00000000..c8a8e92c --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/column/text.js @@ -0,0 +1,55 @@ +Htk.ColumnText = new Class +({ + Extends: Htk.Column + ,Tag: 'htk-column-text' + ,Properties: + { + /** + * Format that applies to the value. + **/ + format: + { + type: String + ,set: function (x) + { + this._format = _(x); + } + ,get: function () + { + return this._format; + } + } + } + + ,_format: null + + ,render: function (tr) + { + var node; + + if (this.editable) + { + var value = this.value ? this.value : ''; + + node = document.createElement ('input'); + node.type = 'text'; + node.className = 'cell-text'; + node.value = value; + node.addEventListener ('changed', + this.inputChanged.bind (this, tr, node)); + } + else + node = document.createTextNode ( + Vn.Value.format (this.value, this._format)); + + var td = this.parent (tr); + td.style.textAlign = 'left'; + td.appendChild (node); + return td; + } + + ,inputChanged: function (tr, node) + { + this.changed (tr, node.value); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field.js b/package/usr/share/hedera-web/js/htk/field.js new file mode 100755 index 00000000..46534f55 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field.js @@ -0,0 +1,139 @@ + +Htk.Field = new Class +({ + Extends: Htk.Widget + ,Tag: 'htk-field' + ,Child: 'param' + ,Properties: + { + value: + { + type: Object + ,set: function (x) + { + if (Vn.Value.compare (x, this._value)) + return; + + if (x instanceof Date) + x = x.clone (); + + this.valueChanged (x); + this.putValue (x); + } + ,get: function (x) + { + return this._value; + } + }, + param: + { + type: Vn.Param + ,set: function (x) + { + this.link ({_param: x}, {'changed': this.onParamChange}); + this.onParamChange (); + } + ,get: function () + { + return this._param; + } + }, + editable: + { + type: Boolean + ,set: function (x) + { + if (x != this._editable) + { + this._editable = x; + this.setEditable (x); + } + } + ,get: function () + { + return this._editable; + } + }, + form: + { + type: Db.Form + ,set: function (x) + { + this._form = x; + this.bindToForm (); + } + }, + column: + { + type: String + ,set: function (x) + { + this._paramName = x; + this.bindToForm (); + } + }, + conditionalFunc: + { + type: Function + ,value: null + } + } + + ,_value: undefined + ,_param: null + ,_editable: true + ,ignoreParamChange: false + + ,onParamChange: function () + { + this.ignoreParamChange = true; + this.value = this._param.value; + this.ignoreParamChange = false; + } + + ,bindToForm: function () + { + if (this._form && this._paramName) + this.param = this._form.getParam (this._paramName); + } + + /** + * Virtual method that must be implemented by class childs to set the entry + * editable. + * + * @param {Boolean} editable Whether the user is allowed to edit the entry + **/ + ,setEditable: function (editable) {} + + /** + * Virtual method that must be implemented by class childs to put the value + * on the associated entry. + * + * @param {Object} value The new value for the entry + **/ + ,putValue: function (value) {} + + /** + * Protected method that should be called from class childs when the value + * on the associated entry changes. + * + * @param {Object} value The new entry value + **/ + ,valueChanged: function (value) + { + this._value = value; + + if (this.conditionalFunc) + this.conditionalFunc (this, value); + + if (this._param && !this.ignoreParamChange) + { + this._param.blockSignal ('changed', this.onParamChange, true); + this._param.value = value; + this._param.blockSignal ('changed', this.onParamChange, false); + } + + this.signalEmit ('changed'); + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/field/calendar.js b/package/usr/share/hedera-web/js/htk/field/calendar.js new file mode 100755 index 00000000..ac252dd0 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/calendar.js @@ -0,0 +1,265 @@ +Htk.Calendar = new Class +({ + Extends: Htk.Field + ,Implements: Htk.Popup + ,Tag: 'htk-calendar' + + ,tds: [] + ,selectedTd: null + ,todayTd: null + ,year: null + ,month: null + + ,initialize: function (props) + { + this.parent (props); + var len = Vn.Date.WDays.length; + + this.createElement ('div'); + this.node.className = 'calendar'; + + var table = document.createElement ('table'); + this.node.appendChild (table); + + var colgroup = document.createElement ('colgroup'); + table.appendChild (colgroup); + + for (var i = 0; i < len; i++) + colgroup.appendChild (document.createElement ('col')); + + var thead = document.createElement ('thead'); + table.appendChild (thead); + + var tr = document.createElement ('tr'); + thead.appendChild (tr); + + var th = document.createElement ('th'); + th.appendChild (document.createTextNode ('<')); + th.className = 'button'; + th.addEventListener ('click', this.prevMonthClicked.bind (this)); + tr.appendChild (th); + + var monthNode = document.createElement ('th'); + monthNode.colSpan = 5; + tr.appendChild (monthNode); + + var th = document.createElement ('th'); + th.appendChild (document.createTextNode ('>')); + th.className = 'button'; + th.addEventListener ('click', this.nextMonthClicked.bind (this)); + tr.appendChild (th); + + var tr = document.createElement ('tr'); + thead.appendChild (tr); + + for (i = 1; i <= len; i++) + { + var th = document.createElement ('th'); + tr.appendChild (th); + + var weekday = Vn.Date.AbrWDays [i%len]; + th.appendChild (document.createTextNode (weekday)); + } + + var tfoot = document.createElement ('tfoot'); + table.appendChild (tfoot); + + var tr = document.createElement ('tr'); + tfoot.appendChild (tr); + + var th = document.createElement ('th'); + th.appendChild (document.createTextNode ('<')); + th.className = 'button'; + th.addEventListener ('click', this.prevYearClicked.bind (this)); + tr.appendChild (th); + + var yearNode = document.createElement ('th'); + yearNode.colSpan = 5; + tr.appendChild (yearNode); + + var th = document.createElement ('th'); + th.appendChild (document.createTextNode ('>')); + th.className = 'button'; + th.addEventListener ('click', this.nextYearClicked.bind (this)); + tr.appendChild (th); + + var tbody = document.createElement ('tbody'); + table.appendChild (tbody); + + for (i = 0; i < 6; i++) + { + tr = document.createElement ('tr'); + tbody.appendChild (tr); + + for (j = 0; j < len; j++) + { + td = document.createElement ('td'); + td.addEventListener ('click', this.dayClicked.bind (this, td, i*len+j)); + tr.appendChild (td); + this.tds.push (td); + } + } + + this.monthNode = monthNode; + this.yearNode = yearNode; + this.goToCurrentMonth (); + } + + ,getFirstWeekDay: function () + { + var weekDay = new Date (this.year, this.month, 1).getDay (); + return (weekDay != 0) ? weekDay - 1 : 6; + } + + ,getMonthDays: function () + { + if (this.month > 6) + return (this.month % 2 != 0) ? 31 : 30; + else if (this.month != 1) + return (this.month % 2 != 1) ? 31 : 30; + else + return (this.year % 4 != 0) ? 28 : 29; + } + + ,goToMonth: function (year, month) + { + if (year) + this.year = year; + if (month) + this.month = month; + + this.refresh (); + } + + ,goToSelectedMonth: function () + { + var date = this._value; + + if (date instanceof Date) + this.goToMonth (date.getFullYear (), date.getMonth ()); + else + this.goToCurrentMonth (); + } + + ,goToCurrentMonth: function () + { + var date = new Date (); + this.goToMonth (date.getFullYear (), date.getMonth ()); + } + + ,refresh: function () + { + Vn.Node.setText (this.yearNode, this.year); + Vn.Node.setText (this.monthNode, Vn.Date.Months[this.month]); + + var firstWeekDay = this.getFirstWeekDay (); + var monthDays = this.getMonthDays (); + + var day = 1; + + for (i = 0; i < this.tds.length; i++) + { + if (firstWeekDay <= i && day <= monthDays) + Vn.Node.setText (this.tds[i], day++); + else + Vn.Node.removeChilds (this.tds[i]); + } + + // Marks the current day + + var today = new Date (); + + if (this.year == today.getFullYear () + && this.month == today.getMonth ()) + { + var tdIndex = (firstWeekDay + today.getDate ()) - 1; + this.tds[tdIndex].style.fontWeight = 'bold'; + this.todayTd = this.tds[tdIndex]; + } + else if (this.todayTd) + { + this.todayTd.style.fontWeight = ''; + this.todayTd = null; + } + + // Marks the selected day + + var date = this._value; + + if (date instanceof Date + && this.year == date.getFullYear () + && this.month == date.getMonth ()) + { + var tdIndex = (firstWeekDay + date.getDate ()) - 1; + this.selectTd (this.tds[tdIndex]); + } + else + this.selectTd (null); + } + + ,selectTd: function (td) + { + if (this.selectedTd) + this.selectedTd.className = undefined; + if (td) + td.className = 'highlight'; + + this.selectedTd = td; + } + + ,putValue: function (value) + { + this.goToSelectedMonth (); + } + + ,dayClicked: function (td, tdIndex) + { + var monthDay = (tdIndex - this.getFirstWeekDay ()) + 1; + + if (monthDay >= 1 && monthDay <= this.getMonthDays ()) + { + this.selectTd (td); + + var newDate = new Date (this.year, this.month, monthDay); + this.valueChanged (newDate); + } + } + + ,prevMonthClicked: function () + { + if (this.month > 0) + this.month--; + else + { + this.month = 11; + this.year--; + } + + this.refresh (); + } + + ,nextMonthClicked: function () + { + if (this.month < 11) + this.month++; + else + { + this.month = 0; + this.year++; + } + + this.refresh (); + } + + ,prevYearClicked: function () + { + this.year--; + this.refresh (); + } + + ,nextYearClicked: function () + { + this.year++; + this.refresh (); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/check.js b/package/usr/share/hedera-web/js/htk/field/check.js new file mode 100755 index 00000000..b2297d9a --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/check.js @@ -0,0 +1,31 @@ +Htk.Check = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-check' + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('input'); + this.node.type = 'checkbox'; + this.node.addEventListener ('change', this.changed.bind (this)); + } + + ,changed: function () + { + this.valueChanged (this.node.checked); + } + + ,putValue: function (value) + { + if (value) + this.node.checked = true; + else + this.node.checked = false; + } + + ,setEditable: function (editable) + { + this.node.disabled = !editable; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/date-chooser.js b/package/usr/share/hedera-web/js/htk/field/date-chooser.js new file mode 100755 index 00000000..1ce4d2db --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/date-chooser.js @@ -0,0 +1,82 @@ + +Htk.DateChooser = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-date-chooser' + + ,format: _('%a, %e %b %Y') + ,calendar: null + ,ignoreCalendarChange: false + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('div'); + this.node.className = 'date-chooser'; + + this.label = document.createElement ('label'); + this.node.appendChild (this.label); + + this.setEditable (this._editable); + } + + ,putValue: function (value) + { + var dateString; + + if (value instanceof Date) + dateString = Vn.Date.strftime (value, this.format); + else + dateString = ''; + + Vn.Node.setText (this.label, dateString); + } + + ,setEditable: function (editable) + { + if (editable && !this.calendar) + { + this.button = document.createElement ('button'); + this.button.title = _('ChangeDate'); + this.button.addEventListener ('click', this.showCalendar.bind (this)); + this.node.insertBefore (this.button, this.label); + + var img = document.createElement ('img'); + img.alt = _('ChangeDate'); + img.src = 'image/calendar.png'; + this.button.appendChild (img); + + var calendar = new Htk.Calendar (); + calendar.on ('changed', this.calendarChanged.bind (this)); + this.calendar = calendar; + } + else if (!editable) + { + this.calendar = null; + this.node.removeChild (this.button); + } + } + + ,calendarChanged: function (calendar) + { + if (this.ignoreCalendarChange) + return; + + this.calendar.hidePopup (); + + var newDate = calendar.value; + this.putValue (newDate); + this.valueChanged (newDate); + } + + ,showCalendar: function (event) + { + this.ignoreCalendarChange = true; + this.calendar.value = this._value; + this.calendar.goToSelectedMonth (); + this.ignoreCalendarChange = false; + + this.calendar.showPopup (this.button); + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/field/entry.js b/package/usr/share/hedera-web/js/htk/field/entry.js new file mode 100755 index 00000000..b4d4ce0c --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/entry.js @@ -0,0 +1,38 @@ +Htk.Entry = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-entry' + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('input'); + this.node.type = 'text'; + this.node.addEventListener ('change', this.changed.bind (this)); + } + + ,changed: function (event) + { + var newValue; + + if (this.node.value == '') + newValue = null; + else + newValue = this.node.value; + + this.valueChanged (newValue); + } + + ,putValue: function (value) + { + if (!value) + this.node.value = ''; + else + this.node.value = value; + } + + ,setEditable: function (editable) + { + this.node.readOnly = !editable; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/full-image.js b/package/usr/share/hedera-web/js/htk/field/full-image.js new file mode 100755 index 00000000..91b08212 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/full-image.js @@ -0,0 +1,139 @@ + +Htk.FullImage = new Class +({ + Extends: Vn.Object + + ,img: null + ,timeout: 0 + ,loading: false + ,visible: false + ,hideCalled: false + + ,initialize: function (props) + { + this.parent (props); + + var div = document.createElement ('div'); + div.className = 'full-image'; + + var loadingBox = document.createElement ('div'); + loadingBox.className = 'image-loader'; + + var loadingImg = document.createElement ('img'); + loadingImg.src = 'image/loader-black.gif'; + loadingImg.alt = _('Loading'); + loadingBox.appendChild (loadingImg); + + this.div = div; + this.loadingBox = loadingBox; + this.loadingImg = loadingImg; + } + + ,getLeft: function (width) + { + return parseInt (getPageXOffset () + (getInnerWidth () - width) / 2) +'px'; + } + + ,getTop: function (height) + { + return parseInt (getPageYOffset () + (getInnerHeight () - height) / 2) +'px'; + } + + ,show: function (basedir, file) + { + if (this.timeout) + { + clearTimeout (this.timeout); + this.timeout = 0; + } + + this.hideCalled = false; + this.loadingBox.style.left = this.getLeft (40); + this.loadingBox.style.top = this.getTop (40); + + this.img = document.createElement ('img'); + this.img.src = basedir +'/full/'+ file; + this.img.addEventListener ('load', this.imageLoaded.bind (this, this.img)); + this.img.addEventListener ('error', this.hideLoading.bind (this)); + + if (!this.img.complete && !this.loading) + { + document.body.appendChild (this.loadingBox); + this.loading = true; + } + } + + ,imageLoaded: function (img) + { + if (img != this.img || this.hideCalled) + return; + + var scale = 1.0; + var width = img.width; + var height = img.height; + var innerWidth = getInnerWidth () - 350; + var innerHeight = getInnerHeight () - 120; + + if (width > innerWidth) + { + scale = width / innerWidth; + height = parseInt (height / scale); + width = innerWidth; + } + if (height > innerHeight) + { + scale = height / innerHeight; + width = parseInt (width / scale); + height = innerHeight; + } + + this.hideLoading (); + this.div.style.left = this.getLeft (width + 2); + this.div.style.top = this.getTop (height + 2); + this.div.style.width = width +'px'; + this.div.style.height = height +'px'; + + if (scale !== 1.0) + { + img.style.width = width +'px'; + img.style.height = height +'px'; + } + + if (this.div.firstChild != null) + this.div.replaceChild (img, this.div.firstChild); + else + this.div.appendChild (img); + + if (!this.visible) + { + document.body.appendChild (this.div); + this.visible = true; + } + } + + ,hide: function () + { + this.hideCalled = true; + this.hideLoading (); + + if (this.visible) + this.timeout = setTimeout (this.hideTimeout.bind (this), 450); + } + + ,hideTimeout: function () + { + document.body.removeChild (this.div); + this.visible = false; + this.timeout = 0; + } + + ,hideLoading: function () + { + if (this.loading) + { + document.body.removeChild (this.loadingBox); + this.loading = false; + } + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/field/image-editor.js b/package/usr/share/hedera-web/js/htk/field/image-editor.js new file mode 100755 index 00000000..6e1d6d02 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/image-editor.js @@ -0,0 +1,141 @@ +Htk.ImageEditor = new Class +({ + Extends: Htk.Widget + ,Implements: Htk.Popup + + ,maxFileSize: 10 /* MB */ * 1048576 + + ,initialize: function () + { + this.createElement ('div'); + this.node.className = 'image-editor'; + + var h3 = document.createElement ('h3'); + h3.appendChild (document.createTextNode (_('UpdateImage'))); + this.node.appendChild (h3); + + var iframe = document.createElement ('iframe'); + iframe.name = 'image-editor'; + iframe.addEventListener ('load', this.imageUploaded.bind (this, iframe)); + this.node.appendChild (iframe); + + var form = document.createElement ('form'); + form.method = 'post'; + form.action = 'ajax.php?action=image'; + form.target = 'image-editor'; + form.enctype = 'multipart/form-data'; + form.addEventListener ('submit', this.formSubmit.bind (this)); + this.node.appendChild (form); + + var schemaInput = document.createElement ('input'); + schemaInput.type = 'hidden'; + schemaInput.name = 'schema'; + form.appendChild (schemaInput); + + var input = document.createElement ('input'); + input.type = 'hidden'; + input.name = 'MAX_FILE_SIZE'; + input.value = this.maxFileSize; + form.appendChild (input); + + var table = document.createElement ('table'); + table.cellSpacing = 5; + form.appendChild (table); + + var tbody = document.createElement ('tbody'); + table.appendChild (tbody); + + var tr = document.createElement ('tr'); + tbody.appendChild (tr); + + var td = document.createElement ('td'); + td.style.textAlign = 'right'; + td.appendChild (document.createTextNode (_('FileName') + ':')); + tr.appendChild (td); + + var td = document.createElement ('td'); + tr.appendChild (td); + + var nameInput = document.createElement ('input'); + nameInput.type = 'text'; + nameInput.name = 'name'; + nameInput.addEventListener ('change', this.nameChanged.bind (this)); + td.appendChild (nameInput); + + var tr = document.createElement ('tr'); + tbody.appendChild (tr); + + var td = document.createElement ('td'); + td.style.textAlign = 'right'; + td.appendChild (document.createTextNode (_('File') + ':')); + tr.appendChild (td); + + var td = document.createElement ('td'); + tr.appendChild (td); + + var fileInput = document.createElement ('input'); + fileInput.type = 'file'; + fileInput.name = 'image'; + td.appendChild (fileInput); + + var tr = document.createElement ('tr'); + tbody.appendChild (tr); + + var td = document.createElement ('td'); + td.style.textAlign = 'center'; + td.colSpan = 2; + tr.appendChild (td); + + var loader = document.createElement ('img'); + loader.alt = _('Loading'); + loader.src = 'image/loader-black.gif'; + td.appendChild (loader); + + var submitButton = document.createElement ('input'); + submitButton.type = 'submit'; + submitButton.appendChild (document.createTextNode (_('UploadFile'))); + td.appendChild (submitButton); + + this.schemaInput = schemaInput; + this.fileInput = fileInput; + this.nameInput = nameInput; + this.submitButton = submitButton; + this.loader = loader; + } + + ,setData: function (image, directory) + { + this.nameInput.value = image; + this.schemaInput.value = directory; + } + + ,formSubmit: function () + { + this.submitButton.disabled = true; + this.loader.style.visibility = 'visible'; + } + + ,imageUploaded: function (iframe) + { + this.submitButton.disabled = false; + this.loader.style.visibility = 'hidden'; + var text = iframe.contentDocument.body.textContent; + + if (!text) + return; + + if (text != 1) + { + alert (text); + return; + } + + this.signalEmit ('file-uploaded', this.nameInput.value); + } + + ,nameChanged: function () + { + this.signalEmit ('name-changed', this.nameInput.value); + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/field/image.js b/package/usr/share/hedera-web/js/htk/field/image.js new file mode 100755 index 00000000..2697c69c --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/image.js @@ -0,0 +1,93 @@ +Htk.Image = new Class +({ + Extends: Htk.Entry + ,Tag: 'htk-image' + + ,empty: false + ,file: null + + ,initialize: function (props) + { + this.parent (props); + this.node = document.getElementById (nodeId); + this.node.addEventListener ('error', this.error.bind (this)); + } + + ,error: function () + { + if (!this.empty) + { + this.empty = true; + this.node.src = 'image/empty.png'; + } + } + + ,render: function (force) + { + if (this.realValue) + { + this.file = this.realValue + '.png'; + + if (force) + this.file += '?' + (new Date()).getTime (); + + this.empty = false; + this.node.src = this.url + '/' + this.file; + } + else + { + this.file = null; + this.error (); + } + } + + ,setRealValue: function (value) + { + this.render (false); + } + + ,setShowFull: function (show) + { + if (show) + { + var obj = this; + this.node.addEventListener ('mouseover', + function () { obj.mouseOver () }, false); + this.node.addEventListener ('mouseout', + function () { obj.mouseOut () }, false); + } + } + + ,setEditable: function (editable) + { + if (editable) + { + var obj = this; + this.style.cursor = 'pointer'; + this.node.addEventListener ('dblclick', + function (e) { obj.dblClicked (e) }, false); + } + } + + ,dblClicked: function (event) + { + var form = htkImageForm.node; + form.style.top = getPageYOffset () + (event.clientY - 80) + 'px'; + form.style.left = (event.clientX + 30) + 'px'; + document.body.appendChild (form); + htkImageForm.load (this); + } + + ,mouseOver: function () + { + if (!this.empty) + htkImageFull.show (this.url + '/../full', this.file); + } + + ,mouseOut: function () + { + if (!this.empty) + htkImageFull.hide (); + } +}); + diff --git a/package/usr/share/hedera-web/js/htk/field/label.js b/package/usr/share/hedera-web/js/htk/field/label.js new file mode 100755 index 00000000..4d890607 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/label.js @@ -0,0 +1,37 @@ +Htk.Label = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-label' + ,Properties: + { + /** + * Format that applies to the value. + **/ + format: + { + type: String + ,set: function (x) + { + this._format = _(x); + } + ,get: function () + { + return this._format; + } + } + } + + ,_format: null + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('label'); + } + + ,putValue: function (value) + { + Vn.Node.setText (this.node, + Vn.Value.format (value, this._format)); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/radio.js b/package/usr/share/hedera-web/js/htk/field/radio.js new file mode 100755 index 00000000..c1430b82 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/radio.js @@ -0,0 +1,57 @@ + +Htk.Radio = new Class +({ + Extends: Vn.Object, + Implements: Vn.Param + ,Tag: 'htk-radio' + + ,initialize: function (props) + { + this.parent (props); + this.rButton = new Array (); + this.uid = ++htkRadioUid; + } + + ,newRadio: function (value) + { + var radio; + var obj = this; + + radio = createRadio (this.uid); + radio.value = value; + radio.checked = value == this.realValue; + radio.addEventListener ('change', + function () { obj.radioChanged (this._value); }, false); + this.rButton.push (radio); + + return radio; + } + + ,radioChanged: function (value) + { + this.realValue = value; + this.signalEmit ('changed'); + } + + ,setRealValue: function (value) + { + var rButton = this.rButton; + + for (var n = 0; n < rButton.length; n++) + { + if (rButton[n].value == value) + { + rButton[n].checked = true; + break; + } + } + } + + ,setEditable: function (editable) + { + var rButton = this.rButton; + + for (var n = 0; n < rButton.length; n++) + rButton[n].disabled = !editable; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/select.js b/package/usr/share/hedera-web/js/htk/field/select.js new file mode 100755 index 00000000..78d6e530 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/select.js @@ -0,0 +1,107 @@ +Htk.Select = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-combo' + ,Properties: + { + /** + * The model associated to this form. + **/ + model: + { + type: Db.Model + ,set: function (x) + { + this.link ({_model: x}, {'status-changed': this.onModelChange}); + this.onModelChange (); + } + ,get: function () + { + return this._model; + } + } + } + + ,_model: null + ,valueColumnIndex: 0 + ,valueColumnName: null + ,showColumnIndex: 1 + ,showColumnName: null + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('select'); + this.node.addEventListener ('change', this.changed.bind (this)); + } + + ,changed: function (event) + { + var value; + var row = this.node.selectedIndex - 1; + + if (row >= 0) + value = this._model.getByIndex (row, this.valueColumnIndex); + else + value = null; + + this.valueChanged (value); + } + + ,addOption: function (value, text) + { + var option = document.createElement ('option'); + option.value = value; + option.appendChild (document.createTextNode (text)); + this.node.appendChild (option); + } + + ,onModelChange: function () + { + var model = this._model; + + if (model.status == Db.Model.Status.LOADING) + return; + + Vn.Node.removeChilds (this.node); + + switch (model.status) + { + case Db.Model.Status.READY: + { + var data = model.data; + this.addOption (null, ''); + + for (var i = 0; i < data.length; i++) + this.addOption (data[i][this.showColumnIndex], data[i][1]); + + this.selectOption (); + break; + } + case Db.Model.Status.ERROR: + this.addOption (null, _('Error')); + break; + } + } + + ,setEditable: function (editable) + { + this.node.disabled = !editable; + } + + ,selectOption: function () + { + if (!this._model || this._model.status != Db.Model.Status.READY) + return; + + var row = this._model.searchByIndex (this.valueColumnIndex, this._value); + + if (row != -1) + this.node.selectedIndex = row + 1; + } + + ,putValue: function (value) + { + this.selectOption (); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/spin.js b/package/usr/share/hedera-web/js/htk/field/spin.js new file mode 100755 index 00000000..c398fa23 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/spin.js @@ -0,0 +1,63 @@ +Htk.Spin = new Class +({ + Extends: Htk.Entry + ,Tag: 'htk-spin' + + ,initialize: function (props) + { + this.parent (props); + this.unit = null; + this.digits = 0; + } + + ,changed: function () + { + var value = (this.entry.value == '') ? null : parseFloat (this.entry.value); + this.entry.value = value; + this.realValue = value; + this.signalEmit ('changed'); + } + + ,setEditable: function (editable) + { + if (editable) + { + var input; + var obj = this; + + input = document.createElement ('input'); + input.style.textAlign = 'right'; + input.style.width = '100%'; + setInputTypeNumber (input); + input.addEventListener ('change', + function () { obj.changed (); }, false); + this.node.appendChild (input); + this.entry = input; + } + else + { + removeChilds (this.node); + this.entry = null; + } + } + + ,setRealValue: function (value) + { + var text; + + if (value != null) + { + text = (new Number (value)).toFixed (this.digits); + + if (this.unit != null) + text += ' ' + this.unit; + } + else + text = ''; + + if (!this.editable) + setText (this.node, text); + else + this.entry.value = text; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/table.js b/package/usr/share/hedera-web/js/htk/field/table.js new file mode 100755 index 00000000..4fc8338f --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/table.js @@ -0,0 +1,56 @@ +Htk.Table = new Class +({ + Extends: Htk.Entry + ,Tag: 'htk-table' + + ,initialize: function (props) + { + this.parent (props); + + var tv = new Htk.TreeView (); + this.node.appendChild (tv.getNode ()); + + var renderer = new Htk.CellRendererRadio (); + tv.appendColumn (0, renderer, ''); + + var rbGroup = renderer.rbGroup; + rbGroup.addSignal ('changed', this.changed, this); + + this.treeview = tv; + this.rbGroup = rbGroup; + } + + ,setModel: function (model) + { + this.treeview.setModel (model); + model.addSignal ('status-changed', this.modelRefresh, this); + this.selectValue (); + } + + ,changed: function (rbGroup) + { + this.realValue = this.rbGroup.getValue (); + this.signalEmit ('changed'); + } + + ,selectValue: function () + { + this.rbGroup.setValue (this.realValue); + } + + ,setRealValue: function () + { + this.selectValue (); + } + + ,modelRefresh: function (model, status) + { + if (status == DB_MODEL_STATUS_READY) + this.selectValue (); + } + + ,setEditable: function (editable) + { + this.rbGroup.setEditable (editable); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/field/text-area.js b/package/usr/share/hedera-web/js/htk/field/text-area.js new file mode 100755 index 00000000..007c0916 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/field/text-area.js @@ -0,0 +1,37 @@ +Htk.TextArea = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-textarea' + + ,initialize: function (props) + { + this.parent (props); + this.createElement ('textarea'); + this.node.addEventListener ('change', this.changed.bind (this)); + } + + ,changed: function (event) + { + var value; + + if (this.node.value == '') + value = null; + else + value = this.node.value; + + this.valueChanged (value); + } + + ,setEditable: function (editable) + { + this.node.readOnly = !editable; + } + + ,putValue: function (value) + { + if (!value) + this.node.value = ''; + else + this.node.value = value; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/grid.js b/package/usr/share/hedera-web/js/htk/grid.js new file mode 100755 index 00000000..a08a3b6a --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/grid.js @@ -0,0 +1,352 @@ +Htk.Grid = new Class +({ + Extends: Htk.Widget + ,Tag: 'htk-grid' + ,Child: 'model' + ,Properties: + { + model: + { + type: Db.Model + ,set: function (x) + { + this.link ({_model: x}, + { + 'status-changed': this.onModelChange + ,'row-deleted': this.onRowDelete + ,'row-updated': this.onRowUpdate + ,'row-inserted': this.onRowInsert + ,'updatable-changed': this.onUpdatableChange + }); + + this.form = new Db.Form ({model: x}); + this.onUpdatableChange (); + this.onModelChange (); + } + ,get: function () + { + this._model; + } + }, + emptyMessage: + { + type: String + ,value: 'NoData' + } + } + + ,_model: null + ,form: null + ,columns: new Array () + ,internalColumn: null + ,internalColumns: 0 + + ,initialize: function () + { + this.parent (); + + this.table = this.createElement ('table'); + this.table.className = 'grid'; + + var thead = document.createElement ('thead'); + this.table.appendChild (thead); + + this.thead = document.createElement ('tr') + thead.appendChild (this.thead); + + this.tbody = document.createElement ('tbody'); + this.table.appendChild (this.tbody); + } + + ,removeClicked: function (column, value, row) + { + if (confirm (_('ReallyDelete'))) + this._model.deleteRow (row); + } + + ,onRowDelete: function (model, row) + { + var tableRows = this.tbody.childNodes; + this.tbody.removeChild (tableRows[row]); + + for (var i = row; i < tableRows.length; i++) + tableRows[i].className = (i % 2) ? 'pair-row' : ''; + + this.showNoRecordsFound (); + } + + ,onRowInsert: function (model, row) + { + this.buildRow (1); + } + + ,renderCell: function (row, column, tr) + { + if (column.columnIndex != -1) + column.value = this._model.data[row][column.columnIndex]; + + if (column.renderer) + { + this.form.row = row; + column.renderer (column, this.form); + } + + return column.render (tr); + } + + ,refreshRow: function (row, columns) + { + var x = this.columns; + var tr = this.tbody.childNodes[row]; + + for (var i = 0; i < x.length; i++) + if (x[i].renderer || columns.indexOf (x[i].columnIndex) != -1) + { + var cell = this.renderCell (row, x[i], tr); + tr.replaceChild (cell, tr.childNodes[i]); + } + } + + ,onRowUpdate: function (model, row, columns) + { + this.refreshRow (row, columns); + } + + ,buildRow: function (count) + { + for (var i = 0; i < count; i++) + { + var tr = document.createElement ('tr'); + + if (i % 2) + tr.className = 'pair-row'; + + for (var j = 0; j < this.columns.length; j++) + { + var cell = this.renderCell (i, this.columns[j], tr); + tr.appendChild (cell); + } + + this.tbody.appendChild (tr); + } + } + + ,onUpdatableChange: function () + { + if (this._model.updatable) + { + if (!this.internalColumn) + { + this.internalColumn = new Htk.ColumnButton + ({ + image: 'image/remove.png' + ,tip: _('Remove') + }); + this.internalColumn.on ('clicked', this.removeClicked, this); + this.insertInternalColumn (0, this.internalColumn); + } + } + else if (this.internalColumn) + { + this.internalColumn = null; + this.removeInternalColumn (0); + } + } + + ,onModelChange: function () + { + if (!this._model) + { + this.showMessage (this.emptyMessage, 'refresh.png'); + return; + } + + this.table.removeChild (this.tbody); + this.tbody = document.createElement ('tbody'); + + switch (this._model.status) + { + case Db.Model.Status.READY: + { + for (var i = 0; i < this.columns.length; i++) + this.columns[i].updateColumnIndex (this._model); + + this.buildRow (this._model.numRows); + this.showNoRecordsFound (); + break; + } + case Db.Model.Status.LOADING: + this.showMessage (_('Loading'), 'loader-black.gif'); + break; + case Db.Model.Status.CLEAN: + this.showMessage (_(this.emptyMessage), 'refresh.png'); + break; + case Db.Model.Status.ERROR: + this.showMessage (_('ErrorLoadingData'), 'error.png'); + break; + } + + this.table.appendChild (this.tbody); + } + + ,showNoRecordsFound: function (count) + { + if (this._model.numRows == 0) + this.showMessage (_('EmptyList'), 'clean.png'); + } + + ,showMessage: function (message, src) + { + if (this.columns.length == 0) + return; + + var tr = document.createElement ('tr'); + this.tbody.appendChild (tr); + + var td = document.createElement ('td'); + td.className = 'grid-message'; + td.colSpan = this.columns.length; + tr.appendChild (td); + + var img = document.createElement ('img'); + img.alt = ''; + img.src = 'image/'+ src; + td.appendChild (img); + + var message = document.createTextNode (message); + td.appendChild (message); + } + + ,scrollToRow: function (row) + { + if (row >= 0) + { + var height = parseInt (this.tr.style.height); + this.node.scrollTop = (row - 2) * height; + + if (this.selectedRow) + this.selectedRow.style.backgroundColor = null; + + this.selectedRow = this.tbody.childNodes[row] + this.selectedRow.style.backgroundColor = '#AAD'; + } + } + + ,sortModel: function (column) + { + var columnIndex = column.columnIndex; + + if (this._model && columnIndex != -1) + this._model.sort (columnIndex); + } + + ,columnChanged: function (column, row, newValue) + { + var columnIndex = column.columnIndex; + + if (columnIndex != -1) + this._model.setByIndex (row, columnIndex, newValue); + } + + ,addColumn: function (pos, column) + { + var header = document.createElement ('th'); + + if (pos == -1 || pos >= this.columns.length) + { + pos = this.columns.push (column) - 1; + this.thead.appendChild (header); + } + else + { + this.columns.splice (pos, 0, column); + this.thead.insertBefore (header, this.thead.childNodes[pos]); + } + + header.addEventListener ('click', + this.sortModel.bind (this, column)); + header.title = _('Sort'); + + if (column.title) + { + var title = document.createTextNode (_(column.title)); + header.appendChild (title); + } + + column.on ('changed', this.columnChanged, this); + + var rows = this.tbody.childNodes; + + if (this._model && this._model.numRows > 0) + for (var i = 0; i < rows.length; i++) + { + var cell = this.renderCell (i, column, rows[i]); + rows[i].insertBefore (cell, rows[i].childNodes[pos+1]); + } + + return pos; + } + + ,insertInternalColumn: function (pos, column) + { + if (pos < 0 || pos > this.internalColumns) + pos = this.internalColumns; + + this.internalColumns++; + return this.addColumn (pos, column); + } + + ,insertColumn: function (pos, column) + { + if (pos > 0) + pos += this.internalColumns; + + return this.addColumn (pos, column) - this.internalColumns; + } + + ,appendColumn: function (column) + { + return this.insertColumn (-1, column); + } + + ,deleteColumn: function (pos) + { + if (pos < 0 || pos >= this.columns.length) + return; + + this.columns.splice (pos, 1); + this.thead.removeChild (this.thead.childNodes[pos]); + + var rows = this.tbody.childNodes; + + if (this._model && this._model.numRows > 0) + for (var i = 0; i < rows.length; i++) + rows[i].removeChild (rows[i].childNodes[pos]); + } + + ,removeInternalColumn: function (pos) + { + if (this.internalColumns == 0) + return; + + if (pos < 0 || pos > this.internalColumns) + pos = this.internalColumns; + + this.deleteColumn (pos); + this.internalColumns--; + } + + ,removeColumn: function (pos) + { + if (pos > 0) + pos += this.internalColumns; + + this.deleteColumn (pos); + } + + ,reloadModel: function () + { + if (this._model != null) + this.onModelChange (); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/main.js b/package/usr/share/hedera-web/js/htk/main.js new file mode 100755 index 00000000..63ad1fd0 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/main.js @@ -0,0 +1,4 @@ +/** + * The namespace. + **/ +var Htk = {}; diff --git a/package/usr/share/hedera-web/js/htk/main.php b/package/usr/share/hedera-web/js/htk/main.php new file mode 100755 index 00000000..e9fa4d84 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/main.php @@ -0,0 +1,36 @@ + diff --git a/package/usr/share/hedera-web/js/htk/popup.js b/package/usr/share/hedera-web/js/htk/popup.js new file mode 100755 index 00000000..d0c18039 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/popup.js @@ -0,0 +1,46 @@ +/** + * Interface for use a widget as a popup. + **/ +Htk.Popup = new Class +({ + showPopup: function (parent) + { + document.body.appendChild (this.node); + + this.node.addEventListener ('mousedown', this.stopEvent); + + this.hidePopupHandler = this.hidePopup.bind (this); + document.addEventListener ('mousedown', this.hidePopupHandler); + + var spacing = 5; + var rect = parent.getBoundingClientRect (); + var left = rect.left; + var top = rect.top + spacing + parent.offsetHeight; + + var width = this.node.offsetWidth; + var height = this.node.offsetHeight; + + if (left + width > getInnerWidth ()) + left -= width - parent.offsetWidth; + if (top + height > getInnerHeight ()) + top -= height + parent.offsetHeight + spacing * 2; + + this.node.style.top = (top) + 'px'; + this.node.style.left = (left) + 'px'; + this.node.style.position = 'fixed'; + this.node.style.zIndex = 4; + } + + ,hidePopup: function () + { + this.node.removeEventListener ('mousedown', this.stopEvent) + document.removeEventListener ('mousedown', this.hidePopupHandler); + document.body.removeChild (this.node); + this.signalEmit ('closed'); + } + + ,stopEvent: function (event) + { + event.stopPropagation (); + } +}); diff --git a/package/usr/share/hedera-web/js/htk/radio-group.js b/package/usr/share/hedera-web/js/htk/radio-group.js new file mode 100755 index 00000000..fb91b127 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/radio-group.js @@ -0,0 +1,48 @@ + +Htk.RadioGroup = new Class +({ + Extends: Vn.Param + + ,radioLock: false + + ,initialize: function (props) + { + this.parent (props); + this.clear (); + this.on ('changed', this.onRadioGroupChange, this); + } + + ,clear: function () + { + this.name = Math.random ().toString (); + this.buttons = []; + } + + ,onRadioGroupChange: function () + { + for (var i = 0; i < this.buttons.length; i++) + if (this.buttons[i].value == this._value) + this.buttons[i].checked = true; + } + + ,onRadioChange: function (value) + { + if (this.radioLock) + return; + + this.radioLock = true; + this.value = value; + this.radioLock = false; + } + + ,createButton: function (value) + { + var radio = createRadio (this.name); + radio.value = value; + radio.checked = value == this.value; + radio.addEventListener ('change', this.onRadioChange.bind (this, value)); + this.buttons.push (radio); + + return radio; + } +}); diff --git a/package/usr/share/hedera-web/js/htk/widget.js b/package/usr/share/hedera-web/js/htk/widget.js new file mode 100755 index 00000000..d2dec615 --- /dev/null +++ b/package/usr/share/hedera-web/js/htk/widget.js @@ -0,0 +1,18 @@ +Htk.Widget = new Class +({ + Extends: Vn.Object + + /** Main HTML node that represents the widget **/ + ,node: null + + ,createElement: function (tagName) + { + this.node = document.createElement (tagName); + return this.node; + } + + ,getNode: function () + { + return this.node; + } +}); diff --git a/package/usr/share/hedera-web/js/misc/browser.js b/package/usr/share/hedera-web/js/misc/browser.js new file mode 100755 index 00000000..b1f62b3a --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/browser.js @@ -0,0 +1,34 @@ + +function getPageYOffset () +{ + return window.pageYOffset; +} + +function getPageXOffset () +{ + return window.pageXOffset; +} + +function getInnerHeight () +{ + return window.innerHeight; +} + +function getInnerWidth () +{ + return window.innerWidth; +} + +function createRadio (uid) +{ + var radio = document.createElement ('input'); + radio.type = 'radio'; + radio.name = uid; + return radio; +} + +function setInputTypeNumber (input) +{ + input.type = 'number'; +} + diff --git a/package/usr/share/hedera-web/js/misc/ie.js b/package/usr/share/hedera-web/js/misc/ie.js new file mode 100755 index 00000000..56ce82df --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/ie.js @@ -0,0 +1,136 @@ + +function getPageYOffset () +{ + if (document.documentElement.scrollTop) + return document.documentElement.scrollTop; + else + return document.body.scrollTop; +} + +function getPageXOffset () +{ + if (document.documentElement.scrollLeft) + return document.documentElement.scrollLeft; + else + return document.body.scrollLeft; +} + +function getInnerHeight () +{ + if (document.documentElement.clientHeight) + return document.documentElement.clientHeight; + else + return document.body.clientHeight; +} + +function getInnerWidth () +{ + if (document.documentElement.clientWidth) + return document.documentElement.clientWidth; + else + return document.body.clientWidth; +} + +function createRadio (radioName) +{ + var radio; + + try { + radio = document.createElement (''); + } + catch (e) + { + radio = document.createElement ('input'); + radio.type = 'radio'; + radio.name = radioName; + } + + return radio; +} + +function setInputTypeNumber (input) +{ + input.type = 'text'; +} + +if (!Function.bind) +{ + Function.prototype.bind = function () + { + var bindFunc = this; + var bindThis = arguments[0]; + var bindArgs = arguments; + + var IE_bind = function () + { + var args = new Array (); + + for (var i = 1; i < bindArgs.length; i++) + args.push (bindArgs[i]); + for (var i = 0; i < arguments.length; i++) + args.push (arguments[i]); + + bindFunc.apply (bindThis, args); + } + + return IE_bind; + } +} + +// attachEvent -> addEventListener + +if (window.attachEvent && !window.addEventListener) +{ + function IE_addEventListener (signal, func, capture) + { + var obj = this; + + func.IE_eventHandler = function (event) + { + event.target = event.srcElement; + event.layerY = event.clientY; + event.layerX = event.clientX; + event.pageX = event.offsetX; + event.pageY = event.offsetY; + event.stopPropagation = function () + { + this.cancelBubble = true; + } + + func.call (obj, event); + } + + this.attachEvent ('on' + signal, func.IE_eventHandler); + } + + function IE_removeEventListener (signal, func, capture) + { + this.detachEvent ('on' + signal, func.IE_eventHandler); + } + + window.addEventListener = IE_addEventListener; + window.removeEventListener = IE_removeEventListener; + document.addEventListener = IE_addEventListener; + document.removeEventListener = IE_removeEventListener; + + var IE_createElement = document.createElement; + + document.createElement = function (tagName) + { + var node = IE_createElement (tagName); + node.addEventListener = IE_addEventListener; + node.removeEventListener = IE_removeEventListener; + return node; + } +} + +// ActiveXObject ('Microsoft.XMLHTTP') -> XMLHttpRequest + +if (!window.XMLHttpRequest && window.ActiveXObject) +{ + function XMLHttpRequest () + { + return new ActiveXObject ('Microsoft.XMLHTTP'); + } +} + diff --git a/package/usr/share/hedera-web/js/misc/main.php b/package/usr/share/hedera-web/js/misc/main.php new file mode 100755 index 00000000..a7a0902b --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/main.php @@ -0,0 +1,13 @@ + diff --git a/package/usr/share/hedera-web/js/misc/mootools.js b/package/usr/share/hedera-web/js/misc/mootools.js new file mode 100755 index 00000000..4b3d85d1 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/mootools.js @@ -0,0 +1,78 @@ +//MooTools, , My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2009 Valerio Proietti, , MIT Style License. + +var MooTools={version:"1.2.4",build:"0d9113241a90b9cd5643b926795852a2026710d4"};var Native=function(k){k=k||{};var a=k.name;var i=k.legacy;var b=k.protect; +var c=k.implement;var h=k.generics;var f=k.initialize;var g=k.afterImplement||function(){};var d=f||i;h=h!==false;d.constructor=Native;d.$family={name:"native"}; +if(i&&f){d.prototype=i.prototype;}d.prototype.constructor=d;if(a){var e=a.toLowerCase();d.prototype.$family={name:e};Native.typize(d,e);}var j=function(n,l,o,m){if(!b||m||!n.prototype[l]){n.prototype[l]=o; +}if(h){Native.genericize(n,l,b);}g.call(n,l,o);return n;};d.alias=function(n,l,p){if(typeof n=="string"){var o=this.prototype[n];if((n=o)){return j(this,l,n,p); +}}for(var m in n){this.alias(m,n[m],l);}return this;};d.implement=function(m,l,o){if(typeof m=="string"){return j(this,m,l,o);}for(var n in m){j(this,n,m[n],l); +}return this;};if(c){d.implement(c);}return d;};Native.genericize=function(b,c,a){if((!a||!b[c])&&typeof b.prototype[c]=="function"){b[c]=function(){var d=Array.prototype.slice.call(arguments); +return b.prototype[c].apply(d.shift(),d);};}};Native.implement=function(d,c){for(var b=0,a=d.length;b-1:this.indexOf(a)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim(); +},camelCase:function(){return this.replace(/-\D/g,function(a){return a.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase()); +});},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1"); +},toInt:function(a){return parseInt(this,a||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(b){var a=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); +return(a)?a.slice(1).hexToRgb(b):null;},rgbToHex:function(b){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null;},stripScripts:function(b){var a=""; +var c=this.replace(/]*>([\s\S]*?)<\/script>/gi,function(){a+=arguments[1]+"\n";return"";});if(b===true){$exec(a);}else{if($type(b)=="function"){b(a,c); +}}return c;},substitute:function(a,b){return this.replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1);}return(a[c]!=undefined)?a[c]:""; +});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(b){for(var a in this){if(this.hasOwnProperty(a)&&this[a]===b){return a;}}return null; +},hasValue:function(a){return(Hash.keyOf(this,a)!==null);},extend:function(a){Hash.each(a||{},function(c,b){Hash.set(this,b,c);},this);return this;},combine:function(a){Hash.each(a||{},function(c,b){Hash.include(this,b,c); +},this);return this;},erase:function(a){if(this.hasOwnProperty(a)){delete this[a];}return this;},get:function(a){return(this.hasOwnProperty(a))?this[a]:null; +},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b;}return this;},empty:function(){Hash.each(this,function(b,a){delete this[a];},this); +return this;},include:function(a,b){if(this[a]==undefined){this[a]=b;}return this;},map:function(b,c){var a=new Hash;Hash.each(this,function(e,d){a.set(d,b.call(c,e,d,this)); +},this);return a;},filter:function(b,c){var a=new Hash;Hash.each(this,function(e,d){if(b.call(c,e,d,this)){a.set(d,e);}},this);return a;},every:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&!b.call(c,this[a],a)){return false; +}}return true;},some:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&b.call(c,this[a],a)){return true;}}return false;},getKeys:function(){var a=[]; +Hash.each(this,function(c,b){a.push(b);});return a;},getValues:function(){var a=[];Hash.each(this,function(b){a.push(b);});return a;},toQueryString:function(a){var b=[]; +Hash.each(this,function(f,e){if(a){e=a+"["+e+"]";}var d;switch($type(f)){case"object":d=Hash.toQueryString(f,e);break;case"array":var c={};f.each(function(h,g){c[g]=h; +});d=Hash.toQueryString(c,e);break;default:d=e+"="+encodeURIComponent(f);}if(f!=undefined){b.push(d);}});return b.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"}); +function Class(b){if(b instanceof Function){b={initialize:b};}var a=function(){Object.reset(this);if(a._prototyping){return this;}this._current=$empty; +var c=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return c;}.extend(this);a.implement(b);a.constructor=Class; +a.prototype.constructor=a;return a;}Function.prototype.protect=function(){this._protected=true;return this;};Object.reset=function(a,c){if(c==null){for(var e in a){Object.reset(a,e); +}return a;}delete a[c];switch($type(a[c])){case"object":var d=function(){};d.prototype=a[c];var b=new d;a[c]=Object.reset(b);break;case"array":a[c]=$unlink(a[c]); +break;}return a;};new Native({name:"Class",initialize:Class}).extend({instantiate:function(b){b._prototyping=true;var a=new b;delete b._prototyping;return a; +},wrap:function(a,b,c){if(c._origin){c=c._origin;}return function(){if(c._protected&&this._current==null){throw new Error('The method "'+b+'" cannot be called.'); +}var e=this.caller,f=this._current;this.caller=f;this._current=arguments.callee;var d=c.apply(this,arguments);this._current=f;this.caller=e;return d;}.extend({_owner:a,_origin:c,_name:b}); +}});Class.implement({implement:function(a,d){if($type(a)=="object"){for(var e in a){this.implement(e,a[e]);}return this;}var f=Class.Mutators[a];if(f){d=f.call(this,d); +if(d==null){return this;}}var c=this.prototype;switch($type(d)){case"function":if(d._hidden){return this;}c[a]=Class.wrap(this,a,d);break;case"object":var b=c[a]; +if($type(b)=="object"){$mixin(b,d);}else{c[a]=$unlink(d);}break;case"array":c[a]=$unlink(d);break;default:c[a]=d;}return this;}});Class.Mutators={Extends:function(a){this.parent=a; +this.prototype=Class.instantiate(a);this.implement("parent",function(){var b=this.caller._name,c=this.caller._owner.parent.prototype[b];if(!c){throw new Error('The method "'+b+'" has no parent.'); +}return c.apply(this,arguments);}.protect());},Implements:function(a){$splat(a).each(function(b){if(b instanceof Function){b=Class.instantiate(b);}this.implement(b); +},this);}}; \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/license.txt b/package/usr/share/hedera-web/js/misc/tinymce/license.txt new file mode 100755 index 00000000..1837b0ac --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cool.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cool.gif new file mode 100755 index 00000000..ba90cc36 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cool.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cry.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cry.gif new file mode 100755 index 00000000..74d897a4 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-cry.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-embarassed.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-embarassed.gif new file mode 100755 index 00000000..963a96b8 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-embarassed.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif new file mode 100755 index 00000000..c7cf1011 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-frown.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-frown.gif new file mode 100755 index 00000000..716f55e1 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-frown.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-innocent.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-innocent.gif new file mode 100755 index 00000000..334d49e0 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-innocent.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-kiss.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-kiss.gif new file mode 100755 index 00000000..4efd549e Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-kiss.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-laughing.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-laughing.gif new file mode 100755 index 00000000..82c5b182 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-laughing.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-money-mouth.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-money-mouth.gif new file mode 100755 index 00000000..ca2451e1 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-money-mouth.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-sealed.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-sealed.gif new file mode 100755 index 00000000..fe66220c Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-sealed.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-smile.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-smile.gif new file mode 100755 index 00000000..fd27edfa Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-smile.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-surprised.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-surprised.gif new file mode 100755 index 00000000..0cc9bb71 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-surprised.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-tongue-out.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-tongue-out.gif new file mode 100755 index 00000000..2075dc16 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-tongue-out.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-undecided.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-undecided.gif new file mode 100755 index 00000000..bef7e257 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-undecided.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-wink.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-wink.gif new file mode 100755 index 00000000..0631c761 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-wink.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-yell.gif b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-yell.gif new file mode 100755 index 00000000..648e6e87 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/plugins/emoticons/img/smiley-yell.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/plugins/visualblocks/css/visualblocks.css b/package/usr/share/hedera-web/js/misc/tinymce/plugins/visualblocks/css/visualblocks.css new file mode 100755 index 00000000..fe6fa930 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/plugins/visualblocks/css/visualblocks.css @@ -0,0 +1,128 @@ +.mce-visualblocks p { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} + +.mce-visualblocks h1 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} + +.mce-visualblocks h2 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} + +.mce-visualblocks h3 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} + +.mce-visualblocks h4 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} + +.mce-visualblocks h5 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} + +.mce-visualblocks h6 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} + +.mce-visualblocks div { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} + +.mce-visualblocks section { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} + +.mce-visualblocks article { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} + +.mce-visualblocks blockquote { + padding-top: 10px; + border: 1px dashed #BBB; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} + +.mce-visualblocks address { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} + +.mce-visualblocks pre { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} + +.mce-visualblocks figure { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} + +.mce-visualblocks hgroup { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} + +.mce-visualblocks aside { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} + +.mce-visualblocks figcaption { + border: 1px dashed #BBB; +} + +.mce-visualblocks ul { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==) +} + +.mce-visualblocks ol { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.inline.min.css b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.inline.min.css new file mode 100755 index 00000000..9f194f6a --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.inline.min.css @@ -0,0 +1 @@ +.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0px}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.min.css b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.min.css new file mode 100755 index 00000000..ea08c689 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/content.min.css @@ -0,0 +1 @@ +body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0px}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.eot b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.eot new file mode 100755 index 00000000..60e2d2e5 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.eot differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.json b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.json new file mode 100755 index 00000000..32ca265b --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.json @@ -0,0 +1,1043 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M704 832v-37.004c151.348-61.628 256-193.82 256-346.996 0-212.078-200.576-384-448-384s-448 171.922-448 384c0 153.176 104.654 285.368 256 346.996v37.004h-192l-64-96v224h320v-222.812c-100.9-51.362-170.666-161.54-170.666-289.188 0-176.732 133.718-320 298.666-320 164.948 0 298.666 143.268 298.666 320 0 127.648-69.766 237.826-170.666 289.188v222.812h320v-224l-64 96h-192z" + ], + "defaultCode": 57376, + "grid": 0 + }, + "properties": { + "id": 0, + "order": 1, + "prevSize": 32, + "code": 57376, + "name": "charmap", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M256 64v896l256-256 256 256v-896h-512zM704 789.49l-192-192-192 192v-661.49h384v661.49z" + ], + "defaultCode": 57363, + "grid": 0 + }, + "properties": { + "id": 1, + "order": 2, + "prevSize": 32, + "code": 57363, + "name": "bookmark", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM800 838c-9.724 0-19.45-3.708-26.87-11.13l-128-127.998c-14.844-14.84-14.844-38.898 0-53.738 14.84-14.844 38.896-14.844 53.736 0l128 128c14.844 14.84 14.844 38.896 0 53.736-7.416 7.422-17.142 11.13-26.866 11.13zM608 960c-17.674 0-32-14.326-32-32v-128c0-17.674 14.326-32 32-32s32 14.326 32 32v128c0 17.674-14.326 32-32 32zM928 640h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32h128c17.674 0 32 14.326 32 32s-14.326 32-32 32zM224 186c9.724 0 19.45 3.708 26.87 11.13l128 128c14.842 14.84 14.842 38.898 0 53.738-14.84 14.844-38.898 14.844-53.738 0l-128-128c-14.842-14.84-14.842-38.898 0-53.738 7.418-7.422 17.144-11.13 26.868-11.13zM416 64c17.674 0 32 14.326 32 32v128c0 17.674-14.326 32-32 32s-32-14.326-32-32v-128c0-17.674 14.326-32 32-32zM96 384h128c17.674 0 32 14.326 32 32s-14.326 32-32 32h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32z" + ], + "defaultCode": 57362, + "grid": 0 + }, + "properties": { + "id": 2, + "order": 3, + "prevSize": 32, + "code": 57362, + "name": "link", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM352 710c-9.724 0-19.45-3.71-26.87-11.128-14.84-14.84-14.84-38.898 0-53.738l320-320c14.84-14.84 38.896-14.84 53.736 0 14.844 14.84 14.844 38.9 0 53.74l-320 320c-7.416 7.416-17.142 11.126-26.866 11.126z" + ], + "defaultCode": 57361, + "grid": 0 + }, + "properties": { + "id": 3, + "order": 4, + "prevSize": 32, + "code": 57361, + "name": "unlink", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M576 281.326v-217.326l336.002 336-336.002 336v-222.096c-390.906-9.17-315 247.096-256 446.096-288-320-212.092-690.874 256-678.674z" + ], + "defaultCode": 57360, + "grid": 0 + }, + "properties": { + "id": 4, + "order": 5, + "prevSize": 32, + "code": 57360, + "name": "redo", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M704 960c59-199 134.906-455.266-256-446.096v222.096l-336.002-336 336.002-336v217.326c468.092-12.2 544 358.674 256 678.674z" + ], + "defaultCode": 57359, + "grid": 0 + }, + "properties": { + "id": 5, + "order": 6, + "prevSize": 32, + "code": 57359, + "name": "undo", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M256.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.954 10.578-19.034 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498zM768.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.956 10.578-19.036 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498z" + ], + "defaultCode": 57358, + "grid": 0 + }, + "properties": { + "id": 6, + "order": 7, + "prevSize": 32, + "code": 57358, + "name": "blockquote", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM384 576h576v128h-576zM384 384h576v128h-576zM64 768h896v128h-896zM64 384l224 160-224 160z" + ], + "defaultCode": 57356, + "grid": 0 + }, + "properties": { + "id": 7, + "order": 8, + "prevSize": 32, + "code": 57356, + "name": "indent", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h576v128h-576zM64 384h576v128h-576zM64 768h896v128h-896zM960 384l-224 160 224 160z" + ], + "defaultCode": 57357, + "grid": 0 + }, + "properties": { + "id": 8, + "order": 9, + "prevSize": 32, + "code": 57357, + "name": "outdent", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM320 530v-146h-64v-320h-128v64h64v256h-64v64h128v50l-128 60v146h128v64h-128v64h128v64h-128v64h192v-320h-128v-50z" + ], + "defaultCode": 57355, + "grid": 0 + }, + "properties": { + "id": 9, + "order": 10, + "prevSize": 32, + "code": 57355, + "name": "numlist", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM128 192c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 512c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 832c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z" + ], + "defaultCode": 57354, + "grid": 0 + }, + "properties": { + "id": 10, + "order": 11, + "prevSize": 32, + "code": 57354, + "name": "bullist", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M888 384h-56v-256h64v-64h-320v64h64v256h-256v-256h64v-64h-320v64h64v256h-56c-39.6 0-72 32.4-72 72v432c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-312h128v312c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-432c0-39.6-32.4-72-72-72zM348 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM860 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32z" + ], + "defaultCode": 57353, + "grid": 0 + }, + "properties": { + "id": 11, + "order": 12, + "prevSize": 32, + "code": 57353, + "name": "searchreplace", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h384l192-192v-384h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM704 869.49v-101.49h101.49l-101.49 101.49zM832 704h-192v192h-256v-448h448v256z" + ], + "defaultCode": 57352, + "grid": 0 + }, + "properties": { + "id": 12, + "order": 13, + "prevSize": 32, + "code": 57352, + "name": "paste", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M832 320h-192v-64l-192-192h-384v704h384v192h576v-448l-192-192zM832 410.51l101.49 101.49h-101.49v-101.49zM448 154.51l101.49 101.49h-101.49v-101.49zM128 128h256v192h192v384h-448v-576zM960 896h-448v-128h128v-384h128v192h192v320z" + ], + "defaultCode": 57393, + "grid": 0 + }, + "properties": { + "id": 13, + "order": 14, + "prevSize": 32, + "code": 57393, + "name": "copy", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M960 512h-265.876c-50.078-35.42-114.43-54.86-182.124-54.86-89.206 0-164.572-50.242-164.572-109.712 0-59.47 75.366-109.714 164.572-109.714 75.058 0 140.308 35.576 159.12 82.286h113.016c-7.93-50.644-37.58-97.968-84.058-132.826-50.88-38.16-117.676-59.174-188.078-59.174-70.404 0-137.196 21.014-188.074 59.174-54.788 41.090-86.212 99.502-86.212 160.254s31.424 119.164 86.212 160.254c1.956 1.466 3.942 2.898 5.946 4.316h-265.872v64h512.532c58.208 17.106 100.042 56.27 100.042 100.572 0 59.468-75.368 109.71-164.572 109.71-75.060 0-140.308-35.574-159.118-82.286h-113.016c7.93 50.64 37.582 97.968 84.060 132.826 50.876 38.164 117.668 59.18 188.072 59.18 70.402 0 137.198-21.016 188.074-59.174 54.79-41.090 86.208-99.502 86.208-160.254 0-35.298-10.654-69.792-30.294-100.572h204.012v-64z" + ], + "defaultCode": 57389, + "grid": 0 + }, + "properties": { + "id": 19, + "order": 15, + "prevSize": 32, + "code": 57389, + "name": "strikethrough", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M192 832h576v64h-576v-64zM640 128v384c0 31.312-14.7 61.624-41.39 85.352-30.942 27.502-73.068 42.648-118.61 42.648-45.544 0-87.668-15.146-118.608-42.648-26.692-23.728-41.392-54.040-41.392-85.352v-384h-128v384c0 141.382 128.942 256 288 256s288-114.618 288-256v-384h-128z" + ], + "defaultCode": 57388, + "grid": 0 + }, + "properties": { + "id": 20, + "order": 16, + "prevSize": 32, + "code": 57388, + "name": "underline", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M832 128v64h-144l-256 640h144v64h-448v-64h144l256-640h-144v-64h448z" + ], + "defaultCode": 57387, + "grid": 0 + }, + "properties": { + "id": 21, + "order": 17, + "prevSize": 32, + "code": 57387, + "name": "italic", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M625.442 494.182c48.074-38.15 78.558-94.856 78.558-158.182 0-114.876-100.29-208-224-208h-224v768h288c123.712 0 224-93.124 224-208 0-88.196-59.118-163.562-142.558-193.818zM384 304c0-26.51 21.49-48 48-48h67.204c42.414 0 76.796 42.98 76.796 96s-34.382 96-76.796 96h-115.204v-144zM547.2 768h-115.2c-26.51 0-48-21.49-48-48v-144h163.2c42.418 0 76.8 42.98 76.8 96s-34.382 96-76.8 96z" + ], + "defaultCode": 57386, + "grid": 0 + }, + "properties": { + "id": 22, + "order": 18, + "prevSize": 32, + "code": 57386, + "name": "bold", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M850.746 242.746l-133.492-133.49c-24.888-24.892-74.054-45.256-109.254-45.256h-416c-35.2 0-64 28.8-64 64v768c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-544c0-35.2-20.366-84.364-45.254-109.254zM805.49 287.998c6.792 6.796 13.792 19.162 18.894 32.002h-184.384v-184.386c12.84 5.1 25.204 12.1 32 18.896l133.49 133.488zM831.884 896h-639.77c-0.040-0.034-0.082-0.076-0.114-0.116v-767.77c0.034-0.040 0.076-0.082 0.114-0.114h383.886v256h256v511.884c-0.034 0.040-0.076 0.082-0.116 0.116z" + ], + "defaultCode": 57345, + "grid": 0 + }, + "properties": { + "id": 23, + "order": 19, + "prevSize": 32, + "code": 57345, + "name": "newdocument", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M960 880v-591.938l-223.938-224.062h-592.062c-44.182 0-80 35.816-80 80v736c0 44.184 35.818 80 80 80h736c44.184 0 80-35.816 80-80zM576 192h64v192h-64v-192zM704 832h-384v-255.882c0.034-0.042 0.076-0.082 0.116-0.118h383.77c0.040 0.036 0.082 0.076 0.116 0.118l-0.002 255.882zM832 832h-64v-256c0-35.2-28.8-64-64-64h-384c-35.2 0-64 28.8-64 64v256h-64v-640h64v192c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-171.010l128 128.072v490.938z" + ], + "defaultCode": 57344, + "grid": 0 + }, + "properties": { + "id": 24, + "order": 20, + "prevSize": 32, + "code": 57344, + "name": "save", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M64 192v704h896v-704h-896zM384 640v-128h256v128h-256zM640 704v128h-256v-128h256zM640 320v128h-256v-128h256zM320 320v128h-192v-128h192zM128 512h192v128h-192v-128zM704 512h192v128h-192v-128zM704 448v-128h192v128h-192zM128 704h192v128h-192v-128zM704 832v-128h192v128h-192z" + ], + "defaultCode": 57371, + "grid": 0 + }, + "properties": { + "id": 25, + "order": 21, + "prevSize": 32, + "code": 57371, + "name": "table", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M512 140c99.366 0 192.782 38.694 263.042 108.956s108.958 163.678 108.958 263.044-38.696 192.782-108.958 263.042-163.676 108.958-263.042 108.958-192.782-38.696-263.044-108.958-108.956-163.676-108.956-263.042 38.694-192.782 108.956-263.044 163.678-108.956 263.044-108.956zM512 64c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448v0zM320 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM576 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 656c-101.84 0-192.56-36.874-251.166-94.328 23.126 117.608 126.778 206.328 251.166 206.328 124.388 0 228.040-88.72 251.168-206.328-58.608 57.454-149.328 94.328-251.168 94.328z" + ], + "defaultCode": 57377, + "grid": 0 + }, + "properties": { + "id": 26, + "order": 22, + "prevSize": 32, + "code": 57377, + "name": "emoticons", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M480 384l-192-192 128-128h-352v352l128-128 192 192zM640 480l192-192 128 128v-352h-352l128 128-192 192zM544 640l192 192-128 128h352v-352l-128 128-192-192zM384 544l-192 192-128-128v352h352l-128-128 192-192z" + ], + "defaultCode": 57379, + "grid": 0 + }, + "properties": { + "id": 27, + "order": 23, + "prevSize": 32, + "code": 57379, + "name": "fullscreen", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M64 448h896v128h-896z" + ], + "defaultCode": 57372, + "grid": 0 + }, + "properties": { + "id": 28, + "order": 24, + "prevSize": 32, + "code": 57372, + "name": "hr", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M64 768h512v128h-512v-128zM768 192h-220.558l-183.766 512h-132.288l183.762-512h-223.15v-128h576v128zM929.774 896l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774-62.226 62.226z" + ], + "defaultCode": 57373, + "grid": 0 + }, + "properties": { + "id": 29, + "order": 25, + "prevSize": 32, + "code": 57373, + "name": "removefromat", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M256 128h512v128h-512v-128zM896 320h-768c-35.2 0-64 28.8-64 64v256c0 35.2 28.796 64 64 64h128v192h512v-192h128c35.2 0 64-28.8 64-64v-256c0-35.2-28.8-64-64-64zM704 832h-384v-256h384v256zM910.4 416c0 25.626-20.774 46.4-46.398 46.4s-46.402-20.774-46.402-46.4 20.778-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" + ], + "defaultCode": 57378, + "grid": 0 + }, + "properties": { + "id": 30, + "order": 26, + "prevSize": 32, + "code": 57378, + "name": "print", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M384 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448z" + ], + "defaultCode": 57390, + "grid": 0 + }, + "properties": { + "id": 31, + "order": 27, + "prevSize": 32, + "code": 57390, + "name": "visualchars", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M448 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM64 896l224-192-224-192z" + ], + "defaultCode": 57391, + "grid": 0 + }, + "properties": { + "id": 32, + "order": 28, + "prevSize": 32, + "code": 57391, + "name": "ltr", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M416 704l-192-192 192-192-64-64-256 256 256 256zM672 256l-64 64 192 192-192 192 64 64 256-256z" + ], + "defaultCode": 57367, + "grid": 0 + }, + "properties": { + "id": 38, + "order": 29, + "prevSize": 32, + "code": 57367, + "name": "code", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M448 704h128v128h-128v-128zM704 256c35.346 0 64 28.654 64 64v166l-228 154h-92v-64l192-128v-64h-320v-128h384zM512 64c-119.666 0-232.166 46.6-316.784 131.216-84.614 84.618-131.216 197.118-131.216 316.784 0 119.664 46.602 232.168 131.216 316.784 84.618 84.616 197.118 131.216 316.784 131.216 119.664 0 232.168-46.6 316.784-131.216 84.616-84.616 131.216-197.12 131.216-316.784 0-119.666-46.6-232.166-131.216-316.784-84.616-84.616-197.12-131.216-316.784-131.216z" + ], + "defaultCode": 57366, + "grid": 0 + }, + "properties": { + "id": 39, + "order": 30, + "prevSize": 32, + "code": 57366, + "name": "help", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM896 831.884c-0.012 0.014-0.030 0.028-0.042 0.042l-191.958-319.926-160 128-224-288-191.968 479.916c-0.010-0.010-0.022-0.022-0.032-0.032v-639.77c0.034-0.040 0.076-0.082 0.114-0.114h767.77c0.040 0.034 0.082 0.076 0.116 0.116v639.768zM640 352c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96z" + ], + "defaultCode": 57364, + "grid": 0 + }, + "properties": { + "id": 40, + "order": 31, + "prevSize": 32, + "code": 57364, + "name": "image", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM256 832h-128v-128h128v128zM256 576h-128v-128h128v128zM256 320h-128v-128h128v128zM704 832h-384v-640h384v640zM896 832h-128v-128h128v128zM896 576h-128v-128h128v128zM896 320h-128v-128h128v128zM384 320v384l288-192z" + ], + "defaultCode": 57365, + "grid": 0 + }, + "properties": { + "id": 41, + "order": 32, + "prevSize": 32, + "code": 57365, + "name": "media", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M77.798 304.624l81.414 50.882c50.802-81.114 128.788-143.454 221.208-174.246l-30.366-91.094c-113.748 37.898-209.728 114.626-272.256 214.458zM673.946 90.166l-30.366 91.094c92.422 30.792 170.404 93.132 221.208 174.248l81.412-50.882c-62.526-99.834-158.506-176.562-272.254-214.46zM607.974 704.008c-4.808 0-9.692-1.090-14.286-3.386l-145.688-72.844v-211.778c0-17.672 14.328-32 32-32s32 14.328 32 32v172.222l110.31 55.156c15.806 7.902 22.214 27.124 14.31 42.932-5.604 11.214-16.908 17.696-28.646 17.698zM512 192c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384 0-212.078-171.922-384-384-384zM512 864c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 159.058-128.942 288-288 288z" + ], + "defaultCode": 57368, + "grid": 0 + }, + "properties": { + "id": 42, + "order": 33, + "prevSize": 32, + "code": 57368, + "name": "insertdatetime", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M64 455.746c45.318-49.92 97.162-92.36 153.272-125.124 90.332-52.744 192.246-80.622 294.728-80.622 102.48 0 204.396 27.878 294.726 80.624 56.112 32.764 107.956 75.204 153.274 125.124v-117.432c-33.010-28.118-68.124-53.14-104.868-74.594-105.006-61.314-223.658-93.722-343.132-93.722s-238.128 32.408-343.134 93.72c-36.742 21.454-71.856 46.478-104.866 74.596v117.43zM512 320c-183.196 0-345.838 100.556-448 256 102.162 155.448 264.804 256 448 256 183.196 0 345.838-100.552 448-256-102.162-155.444-264.804-256-448-256zM512 512c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.348 28.654-64 64-64s64 28.652 64 64zM728.066 696.662c-67.434 39.374-140.128 59.338-216.066 59.338s-148.632-19.964-216.066-59.338c-51.554-30.104-98.616-71.31-138.114-120.662 39.498-49.35 86.56-90.558 138.116-120.66 13.276-7.752 26.758-14.74 40.426-20.982-10.512 23.742-16.362 50.008-16.362 77.642 0 106.040 85.962 192 192 192 106.040 0 192-85.96 192-192 0-27.634-5.85-53.9-16.36-77.642 13.668 6.244 27.15 13.23 40.426 20.982 51.554 30.102 98.616 71.31 138.116 120.66-39.498 49.352-86.56 90.558-138.116 120.662z" + ], + "defaultCode": 57369, + "grid": 0 + }, + "properties": { + "id": 43, + "order": 34, + "prevSize": 32, + "code": 57369, + "name": "preview", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M651.168 283.834c-24.612-81.962-28.876-91.834-107.168-91.834h-64c-79.618 0-82.664 10.152-108.418 96 0 0.002 0 0.002-0.002 0.004l-143.998 479.996h113.636l57.6-192h226.366l57.6 192h113.63l-145.246-484.166zM437.218 448l38.4-136c10.086-33.618 36.38-30 36.38-30s26.294-3.618 36.38 30h0.004l38.4 136h-149.564z" + ], + "defaultCode": 57370, + "grid": 0 + }, + "properties": { + "id": 44, + "order": 35, + "prevSize": 32, + "code": 57370, + "name": "forecolor", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" + ], + "defaultCode": 57384, + "grid": 0 + }, + "properties": { + "id": 45, + "order": 36, + "prevSize": 32, + "code": 57384, + "name": "restoredraft", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" + ], + "defaultCode": 57346, + "grid": 0 + }, + "properties": { + "id": 46, + "order": 37, + "prevSize": 32, + "code": 57346, + "name": "fullpage", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "defaultCode": 57375, + "grid": 0 + }, + "properties": { + "id": 47, + "order": 38, + "prevSize": 32, + "code": 57375, + "name": "superscript", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "defaultCode": 57374, + "grid": 0 + }, + "properties": { + "id": 48, + "order": 39, + "prevSize": 32, + "code": 57374, + "name": "subscript", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h576v-576h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM832 896h-448v-448h448v448zM448 512v128h32l32-64h64v192h-48v64h160v-64h-48v-192h64l32 64h32v-128z" + ], + "tags": [ + "pastetext" + ], + "defaultCode": 57397, + "grid": 0 + }, + "properties": { + "id": 49, + "order": 40, + "prevSize": 32, + "code": 57397, + "name": "pastetext", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" + ], + "tags": [ + "resize", + "dots" + ], + "defaultCode": 57394, + "grid": 0 + }, + "properties": { + "id": 50, + "order": 41, + "prevSize": 32, + "code": 57394, + "name": "resize", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M928 128h-416l-32-64h-352l-64 128h896zM840.34 704h87.66l32-448h-896l64 640h356.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM874.996 849.75l-134.496-110.692c17.454-28.922 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l110.692 134.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM576 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" + ], + "tags": [ + "browse" + ], + "defaultCode": 57396, + "grid": 0 + }, + "properties": { + "id": 51, + "order": 42, + "prevSize": 32, + "code": 57396, + "name": "browse", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M864.408 670.132c-46.47-46.47-106.938-68.004-161.082-62.806l-63.326-63.326 192-192c0 0 128-128 0-256l-320 320-320-320c-128 128 0 256 0 256l192 192-63.326 63.326c-54.144-5.198-114.61 16.338-161.080 62.806-74.98 74.98-85.112 186.418-22.626 248.9 62.482 62.482 173.92 52.354 248.9-22.626 46.47-46.468 68.002-106.938 62.806-161.080l63.326-63.326 63.328 63.328c-5.196 54.144 16.336 114.61 62.806 161.078 74.978 74.98 186.418 85.112 248.898 22.626 62.488-62.482 52.356-173.918-22.624-248.9zM353.124 758.578c-2.212 24.332-15.020 49.826-35.14 69.946-22.212 22.214-51.080 35.476-77.218 35.476-10.524 0-25.298-2.228-35.916-12.848-21.406-21.404-17.376-73.132 22.626-113.136 22.212-22.214 51.080-35.476 77.218-35.476 10.524 0 25.298 2.228 35.916 12.848 13.112 13.11 13.47 32.688 12.514 43.19zM512 608c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64zM819.152 851.152c-10.62 10.62-25.392 12.848-35.916 12.848-26.138 0-55.006-13.262-77.218-35.476-20.122-20.12-32.928-45.614-35.138-69.946-0.958-10.502-0.6-30.080 12.514-43.192 10.618-10.622 25.39-12.848 35.916-12.848 26.136 0 55.006 13.262 77.216 35.474 40.004 40.008 44.032 91.736 22.626 113.14z" + ], + "defaultCode": 57351, + "grid": 0 + }, + "properties": { + "id": 14, + "order": 43, + "prevSize": 32, + "code": 57351, + "name": "cut", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h896v128h-896zM64 768h896v128h-896z" + ], + "defaultCode": 57350, + "grid": 0 + }, + "properties": { + "id": 15, + "order": 44, + "prevSize": 32, + "code": 57350, + "name": "alignjustify", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM256 384h512v128h-512zM256 768h512v128h-512z" + ], + "defaultCode": 57348, + "grid": 0 + }, + "properties": { + "id": 16, + "order": 45, + "prevSize": 32, + "code": 57348, + "name": "aligncenter", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM384 384h576v128h-576zM384 768h576v128h-576z" + ], + "defaultCode": 57349, + "grid": 0 + }, + "properties": { + "id": 17, + "order": 46, + "prevSize": 32, + "code": 57349, + "name": "alignright", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h576v128h-576zM64 768h576v128h-576z" + ], + "defaultCode": 57347, + "grid": 0 + }, + "properties": { + "id": 18, + "order": 47, + "prevSize": 32, + "code": 57347, + "name": "alignleft", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M320 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM960 512l-224 192 224 192z" + ], + "defaultCode": 57392, + "grid": 0 + }, + "properties": { + "id": 33, + "order": 48, + "prevSize": 32, + "code": 57392, + "name": "rtl", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M512 384h128v64h-128zM512 768h128v64h-128zM576 576h128v64h-128zM768 576v192h-64v64h128v-256zM384 576h128v64h-128zM320 768h128v64h-128zM320 384h128v64h-128zM192 192v256h64v-192h64v-64zM704 448h128v-256h-64v192h-64zM64 64v896h896v-896h-896zM896 896h-768v-768h768v768zM192 576v256h64v-192h64v-64zM576 192h128v64h-128zM384 192h128v64h-128z" + ], + "defaultCode": 57382, + "grid": 0 + }, + "properties": { + "id": 34, + "order": 49, + "prevSize": 32, + "code": 57382, + "name": "template", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M816 64l16 384h-640l16-384h32l16 320h512l16-320h32zM208 960l-16-320h640l-16 320h-32l-16-256h-512l-16 256h-32zM64 512h128v64h-128zM256 512h128v64h-128zM448 512h128v64h-128zM640 512h128v64h-128zM832 512h128v64h-128z" + ], + "defaultCode": 57383, + "grid": 0 + }, + "properties": { + "id": 35, + "order": 50, + "prevSize": 32, + "code": 57383, + "name": "pagebreak", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M960 128v-64h-192c-35.202 0-64 28.8-64 64v320c0 15.856 5.858 30.402 15.496 41.614l-303.496 260.386-142-148-82 70 224 288 416-448h128v-64h-192v-320h192zM256 512h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192h128v192zM128 256v-128h128v128h-128zM640 448v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64zM448 128h128v128h-128v-128zM448 320h128v128h-128v-128z" + ], + "defaultCode": 57380, + "grid": 0 + }, + "properties": { + "id": 36, + "order": 51, + "prevSize": 32, + "code": 57380, + "name": "spellcheck", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M448 512h-128v-128h128v-128h128v128h128v128h-128v128h-128v-128zM960 576v320h-896v-320h128v192h640v-192h128z" + ], + "defaultCode": 57381, + "grid": 0 + }, + "properties": { + "id": 37, + "order": 52, + "prevSize": 32, + "code": 57381, + "name": "nonbreaking", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 37 + } + ], + "height": 1024, + "metadata": { + "name": "tinymce-small" + }, + "preferences": { + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "tinymce-small", + "majorVersion": 1, + "minorVersion": 0 + }, + "showGlyphs": true, + "metrics": { + "emSize": 512, + "baseline": 6.25, + "whitespace": 50 + }, + "resetPoint": 58880, + "showQuickUse": true, + "quickUsageToken": false, + "showMetrics": true, + "showMetadata": false + }, + "imagePref": { + "color": 0, + "height": 32, + "columns": 16, + "margin": 16, + "png": false, + "sprites": true + }, + "historySize": 100, + "showCodes": true, + "gridSize": 16, + "showLiga": false, + "showGrid": true, + "showGlyphs": true, + "showQuickUse": true + } +} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.svg b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.svg new file mode 100755 index 00000000..930c48dc --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.svg @@ -0,0 +1,62 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.ttf new file mode 100755 index 00000000..afc6ec45 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.ttf differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.woff b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.woff new file mode 100755 index 00000000..fa72c74b Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce-small.woff differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.eot b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.eot new file mode 100755 index 00000000..c1085bfd Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.eot differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.json b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.json new file mode 100755 index 00000000..c0b99161 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.json @@ -0,0 +1,1191 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" + ], + "defaultCode": 57396, + "grid": 0 + }, + "properties": { + "id": 0, + "order": 1, + "prevSize": 32, + "code": 57396, + "name": "browse", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" + ], + "tags": [ + "resize", + "dots" + ], + "defaultCode": 57394, + "grid": 0 + }, + "properties": { + "id": 1, + "order": 2, + "prevSize": 32, + "code": 57394, + "name": "resize", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z" + ], + "tags": [ + "copy" + ], + "defaultCode": 57393, + "grid": 0 + }, + "properties": { + "id": 2, + "order": 3, + "prevSize": 32, + "code": 57393, + "name": "copy", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z" + ], + "tags": [ + "rtl" + ], + "defaultCode": 57392, + "grid": 0 + }, + "properties": { + "id": 3, + "order": 4, + "prevSize": 32, + "code": 57392, + "name": "rtl", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z" + ], + "tags": [ + "ltr" + ], + "defaultCode": 57391, + "grid": 0 + }, + "properties": { + "id": 4, + "order": 5, + "prevSize": 32, + "code": 57391, + "name": "ltr", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z" + ], + "tags": [ + "visualchars" + ], + "defaultCode": 57390, + "grid": 0 + }, + "properties": { + "id": 5, + "order": 6, + "prevSize": 32, + "code": 57390, + "name": "visualchars", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z" + ], + "tags": [ + "strikethrough" + ], + "defaultCode": 57389, + "grid": 0 + }, + "properties": { + "id": 6, + "order": 7, + "prevSize": 32, + "code": 57389, + "name": "strikethrough", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z" + ], + "tags": [ + "underline" + ], + "defaultCode": 57388, + "grid": 0 + }, + "properties": { + "id": 7, + "order": 8, + "prevSize": 32, + "code": 57388, + "name": "underline", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z" + ], + "tags": [ + "italic" + ], + "defaultCode": 57387, + "grid": 0 + }, + "properties": { + "id": 8, + "order": 9, + "prevSize": 32, + "code": 57387, + "name": "italic", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z" + ], + "tags": [ + "bold0" + ], + "defaultCode": 57386, + "grid": 0 + }, + "properties": { + "id": 9, + "order": 10, + "prevSize": 32, + "code": 57386, + "name": "bold", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" + ], + "tags": [ + "restoredraft" + ], + "defaultCode": 57384, + "grid": 0 + }, + "properties": { + "id": 11, + "order": 11, + "prevSize": 32, + "code": 57384, + "name": "restoredraft", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z" + ], + "tags": [ + "pagebreak" + ], + "defaultCode": 57383, + "grid": 0 + }, + "properties": { + "id": 12, + "order": 12, + "prevSize": 32, + "code": 57383, + "name": "pagebreak", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z" + ], + "tags": [ + "template" + ], + "defaultCode": 57382, + "grid": 0 + }, + "properties": { + "id": 13, + "order": 13, + "prevSize": 32, + "code": 57382, + "name": "template", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z" + ], + "tags": [ + "nonbreaking" + ], + "defaultCode": 57381, + "grid": 0 + }, + "properties": { + "id": 14, + "order": 14, + "prevSize": 32, + "code": 57381, + "name": "nonbreaking", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z" + ], + "tags": [ + "spellchecker" + ], + "defaultCode": 57380, + "grid": 0 + }, + "properties": { + "id": 15, + "order": 15, + "prevSize": 32, + "code": 57380, + "name": "spellchecker", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z" + ], + "tags": [ + "charmap" + ], + "defaultCode": 57376, + "grid": 0 + }, + "properties": { + "id": 19, + "order": 16, + "prevSize": 32, + "code": 57376, + "name": "charmap", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "tags": [ + "sup" + ], + "defaultCode": 57375, + "grid": 0 + }, + "properties": { + "id": 20, + "order": 17, + "prevSize": 32, + "code": 57375, + "name": "sup", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "tags": [ + "sub" + ], + "defaultCode": 57374, + "grid": 0 + }, + "properties": { + "id": 21, + "order": 18, + "prevSize": 32, + "code": 57374, + "name": "sub", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z" + ], + "tags": [ + "removeformat" + ], + "defaultCode": 57373, + "grid": 0 + }, + "properties": { + "id": 22, + "order": 19, + "prevSize": 32, + "code": 57373, + "name": "removeformat", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M0 448h1024v128h-1024z" + ], + "tags": [ + "hr" + ], + "defaultCode": 57372, + "grid": 0 + }, + "properties": { + "id": 23, + "order": 20, + "prevSize": 32, + "code": 57372, + "name": "hr", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "tags": [ + "table" + ], + "defaultCode": 57371, + "grid": 0 + }, + "properties": { + "id": 24, + "order": 21, + "prevSize": 32, + "code": 57371, + "name": "table", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z" + ], + "tags": [ + "forecolor" + ], + "defaultCode": 57370, + "grid": 0 + }, + "properties": { + "id": 25, + "order": 22, + "prevSize": 32, + "code": 57370, + "name": "forecolor", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z" + ], + "tags": [ + "preview" + ], + "defaultCode": 57369, + "grid": 0 + }, + "properties": { + "id": 26, + "order": 23, + "prevSize": 32, + "code": 57369, + "name": "preview", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z" + ], + "tags": [ + "inserttime" + ], + "defaultCode": 57368, + "grid": 0 + }, + "properties": { + "id": 27, + "order": 24, + "prevSize": 32, + "code": 57368, + "name": "inserttime", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z" + ], + "tags": [ + "code" + ], + "defaultCode": 57367, + "grid": 0 + }, + "properties": { + "id": 28, + "order": 25, + "prevSize": 32, + "code": 57367, + "name": "code", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z" + ], + "tags": [ + "help" + ], + "defaultCode": 57366, + "grid": 0 + }, + "properties": { + "id": 29, + "order": 26, + "prevSize": 32, + "code": 57366, + "name": "help", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z" + ], + "tags": [ + "media" + ], + "defaultCode": 57365, + "grid": 0 + }, + "properties": { + "id": 30, + "order": 27, + "prevSize": 32, + "code": 57365, + "name": "media", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z" + ], + "tags": [ + "image" + ], + "defaultCode": 57364, + "grid": 0 + }, + "properties": { + "id": 31, + "order": 28, + "prevSize": 32, + "code": 57364, + "name": "image", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z" + ], + "tags": [ + "anchor" + ], + "defaultCode": 57363, + "grid": 0 + }, + "properties": { + "id": 32, + "order": 29, + "prevSize": 32, + "code": 57363, + "name": "anchor", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z" + ], + "tags": [ + "unlink" + ], + "defaultCode": 57362, + "grid": 0 + }, + "properties": { + "id": 33, + "order": 30, + "prevSize": 32, + "code": 57362, + "name": "unlink", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z" + ], + "tags": [ + "link" + ], + "defaultCode": 57361, + "grid": 0 + }, + "properties": { + "id": 34, + "order": 31, + "prevSize": 32, + "code": 57361, + "name": "link", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z" + ], + "tags": [ + "outdent" + ], + "defaultCode": 57357, + "grid": 0 + }, + "properties": { + "id": 38, + "order": 32, + "prevSize": 32, + "code": 57357, + "name": "outdent", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z" + ], + "tags": [ + "indent" + ], + "defaultCode": 57356, + "grid": 0 + }, + "properties": { + "id": 39, + "order": 33, + "prevSize": 32, + "code": 57356, + "name": "indent", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z" + ], + "tags": [ + "numlist" + ], + "defaultCode": 57355, + "grid": 0 + }, + "properties": { + "id": 40, + "order": 34, + "prevSize": 32, + "code": 57355, + "name": "numlist", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z" + ], + "tags": [ + "bullist" + ], + "defaultCode": 57354, + "grid": 0 + }, + "properties": { + "id": 41, + "order": 35, + "prevSize": 32, + "code": 57354, + "name": "bullist", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z" + ], + "tags": [ + "searchreplace" + ], + "defaultCode": 57353, + "grid": 0 + }, + "properties": { + "id": 42, + "order": 36, + "prevSize": 32, + "code": 57353, + "name": "searchreplace", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z" + ], + "tags": [ + "paste" + ], + "defaultCode": 57352, + "grid": 0 + }, + "properties": { + "id": 43, + "order": 37, + "prevSize": 32, + "code": 57352, + "name": "paste", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z" + ], + "tags": [ + "cut" + ], + "defaultCode": 57351, + "grid": 0 + }, + "properties": { + "id": 44, + "order": 38, + "prevSize": 32, + "code": 57351, + "name": "cut", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "tags": [ + "alignjustify" + ], + "defaultCode": 57350, + "grid": 0 + }, + "properties": { + "id": 45, + "order": 39, + "prevSize": 32, + "code": 57350, + "name": "alignjustify", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "tags": [ + "alignright" + ], + "defaultCode": 57349, + "grid": 0 + }, + "properties": { + "id": 46, + "order": 40, + "prevSize": 32, + "code": 57349, + "name": "alignright", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "tags": [ + "aligncenter" + ], + "defaultCode": 57348, + "grid": 0 + }, + "properties": { + "id": 47, + "order": 41, + "prevSize": 32, + "code": 57348, + "name": "aligncenter", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "tags": [ + "alignleft" + ], + "defaultCode": 57347, + "grid": 0 + }, + "properties": { + "id": 48, + "order": 42, + "prevSize": 32, + "code": 57347, + "name": "alignleft", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" + ], + "tags": [ + "fullpage" + ], + "defaultCode": 57346, + "grid": 0 + }, + "properties": { + "id": 49, + "order": 43, + "prevSize": 32, + "code": 57346, + "name": "fullpage", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z" + ], + "tags": [ + "newdocument" + ], + "defaultCode": 57345, + "grid": 0 + }, + "properties": { + "id": 50, + "order": 44, + "prevSize": 32, + "code": 57345, + "name": "newdocument", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z" + ], + "tags": [ + "save" + ], + "defaultCode": 57344, + "grid": 0 + }, + "properties": { + "id": 51, + "order": 45, + "prevSize": 32, + "code": 57344, + "name": "save", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M128 544l288 288 480-480-128-128-352 352-160-160z" + ], + "defaultCode": 57395, + "grid": 0 + }, + "properties": { + "id": 52, + "order": 46, + "prevSize": 32, + "code": 57395, + "name": "checkbox", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 52 + }, + { + "icon": { + "paths": [ + "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z" + ], + "tags": [ + "pastetext" + ], + "defaultCode": 57397, + "grid": 0 + }, + "properties": { + "id": 53, + "order": 47, + "prevSize": 32, + "code": 57397, + "name": "pastetext", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 53 + }, + { + "icon": { + "paths": [ + "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z" + ], + "tags": [ + "fullscreen" + ], + "defaultCode": 57379, + "grid": 0 + }, + "properties": { + "id": 16, + "order": 48, + "prevSize": 32, + "code": 57379, + "name": "fullscreen", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" + ], + "tags": [ + "print" + ], + "defaultCode": 57378, + "grid": 0 + }, + "properties": { + "id": 17, + "order": 49, + "prevSize": 32, + "code": 57378, + "name": "print", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z" + ], + "tags": [ + "emoticons" + ], + "defaultCode": 57377, + "grid": 0 + }, + "properties": { + "id": 18, + "order": 50, + "prevSize": 32, + "code": 57377, + "name": "emoticons", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z" + ], + "tags": [ + "blockquote" + ], + "defaultCode": 57358, + "grid": 0 + }, + "properties": { + "id": 37, + "order": 51, + "prevSize": 32, + "code": 57358, + "name": "blockquote", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z" + ], + "tags": [ + "undo" + ], + "defaultCode": 57359, + "grid": 0 + }, + "properties": { + "id": 36, + "order": 52, + "prevSize": 32, + "code": 57359, + "name": "undo", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z" + ], + "tags": [ + "redo" + ], + "defaultCode": 57360, + "grid": 0 + }, + "properties": { + "id": 35, + "order": 53, + "prevSize": 32, + "code": 57360, + "name": "redo", + "ligatures": "" + }, + "setIdx": 0, + "iconIdx": 35 + } + ], + "height": 1024, + "metadata": { + "name": "tinymce" + }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "tinymce", + "majorVersion": 1, + "minorVersion": 0 + }, + "metrics": { + "emSize": 512, + "baseline": 6.25, + "whitespace": 50 + } + }, + "imagePref": {}, + "historySize": 100, + "showCodes": true, + "showLiga": false + } +} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.svg b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.svg new file mode 100755 index 00000000..feb9ba38 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.svg @@ -0,0 +1,63 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.ttf b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.ttf new file mode 100755 index 00000000..58103c2b Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.ttf differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.woff b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.woff new file mode 100755 index 00000000..ad1ae396 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/fonts/tinymce.woff differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/anchor.gif b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/anchor.gif new file mode 100755 index 00000000..606348c7 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/anchor.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/loader.gif b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/loader.gif new file mode 100755 index 00000000..c69e9372 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/loader.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/object.gif b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/object.gif new file mode 100755 index 00000000..cccd7f02 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/object.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/trans.gif b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/trans.gif new file mode 100755 index 00000000..38848651 Binary files /dev/null and b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/img/trans.gif differ diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.ie7.min.css b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.ie7.min.css new file mode 100755 index 00000000..cd2bbdf3 --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.ie7.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.min.css b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.min.css new file mode 100755 index 00000000..284ac1de --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/skins/lightgray/skin.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb} \ No newline at end of file diff --git a/package/usr/share/hedera-web/js/misc/tinymce/tinymce.min.js b/package/usr/share/hedera-web/js/misc/tinymce/tinymce.min.js new file mode 100755 index 00000000..e40f093e --- /dev/null +++ b/package/usr/share/hedera-web/js/misc/tinymce/tinymce.min.js @@ -0,0 +1,10 @@ +// 4.0.21 (2014-04-01) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;ir;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,m){function h(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),m=m||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=h,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(m,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:m}):(s[g][b]=v=[{func:p,scope:m}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,m=o.fakeName,h=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=m,o.capture=h,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return ht.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>_.cacheLength&&delete e[t.shift()],e[n]=r,r}}function r(e){return e[I]=!0,e}function i(e){var t=B.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function o(e,t,n,r){var i,o,a,s,l,c,f,p,m,h;if((t?t.ownerDocument||t:F)!==B&&A(t),t=t||B,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(D&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!M.test(e)){if(f=!0,p=I,m=t,h=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=u(e),(f=t.getAttribute("id"))?p=f.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+d(c[l]);m=mt.test(e)&&t.parentNode||t,h=c.join(",")}if(h)try{return Z.apply(n,m.querySelectorAll(h)),n}catch(g){}finally{f||t.removeAttribute("id")}}}return b(e.replace(lt,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||G)-(~e.sourceIndex||G);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e,t){var n,r,i,a,s,l,c,u=q[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){(!n||(r=ct.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=ut.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(lt," ")}),s=s.slice(n.length));for(a in _.filter)!(r=pt[a].exec(s))||c[a]&&!(r=c[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?o.error(e):q(e,l).slice(0)}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function f(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=W+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[I]||(t[I]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===w)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||w,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function h(e,t,n,i,o,a){return i&&!i[I]&&(i=h(i)),o&&!o[I]&&(o=h(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=r||y(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:m(g,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,b,s,l),i)for(c=m(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(v[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=m(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function g(e){for(var t,n,r,i=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=f(function(e){return e===t},a,!0),c=f(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==k)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=_.relative[e[s].type])u=[f(p(u),n)];else{if(n=_.filter[e[s].type].apply(null,e[s].matches),n[I]){for(r=++s;i>r&&!_.relative[e[r].type];r++);return h(s>1&&p(u),s>1&&d(e.slice(0,s-1)).replace(lt,"$1"),n,r>s&&g(e.slice(s,r)),i>r&&g(e=e.slice(r)),i>r&&d(e))}u.push(n)}return p(u)}function v(e,t){var n=0,i=t.length>0,a=e.length>0,s=function(r,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=r&&[],b=null!=u,C=k,x=r||a&&_.find.TAG("*",u&&s.parentNode||s),N=W+=null==C?1:Math.random()||.1;for(b&&(k=s!==B&&s,w=n);null!=(d=x[v]);v++){if(a&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(W=N,w=++n)}i&&((d=!p&&d)&&g--,r&&y.push(d))}if(g+=v,i&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(r){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=J.call(c));h=m(h)}Z.apply(c,h),b&&!r&&h.length>0&&g+t.length>1&&o.uniqueSort(c)}return b&&(W=N,k=C),y};return i?r(s):s}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)o(e,t[r],n);return n}function b(e,t,n,r){var i,o,a,s,l,c=u(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&D&&_.relative[o[1].type]){if(t=(_.find.ID(a.matches[0].replace(xt,wt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((l=_.find[s])&&(r=l(a.matches[0].replace(xt,wt),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Z.apply(n,r),n;break}}return S(e,c)(r,t,!D,n,mt.test(e)),n}function C(){}var x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I="sizzle"+-new Date,F=window.document,z={},W=0,V=0,U=n(),q=n(),$=n(),j=!1,K=function(){return 0},Y=typeof t,G=1<<31,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it=rt.replace("w","w#"),ot="([*^$|!~]?=)",at="\\["+nt+"*("+rt+")"+nt+"*(?:"+ot+nt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+it+")|)|)"+nt+"*\\]",st=":("+rt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ct=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([\\x20\\t\\r\\n\\f>+~])"+nt+"*"),dt=new RegExp(st),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),NAME:new RegExp("^\\[name=['\"]?("+rt+")['\"]?\\]"),TAG:new RegExp("^("+rt.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,ht=/^[^{]+\{\s*\[native code/,gt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/'|\\/g,Ct=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,wt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)};try{Z.apply(X=et.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_t){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}E=o.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},A=o.setDocument=function(n){var r=n?n.ownerDocument||n:F;return r!==B&&9===r.nodeType&&r.documentElement?(B=r,L=r.documentElement,D=!E(r),z.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=i(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=i(function(e){return e.innerHTML="",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=i(function(e){e.id=I+0,e.appendChild(B.createElement("a")).setAttribute("name",I),e.appendChild(B.createElement("i")).setAttribute("name",I),L.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(I).length===2+r.getElementsByName(I+0).length;return L.removeChild(e),t}),z.sortDetached=i(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(B.createElement("div"))}),_.attrHandle=i(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(_.find.ID=function(e,t){if(typeof t.getElementById!==Y&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){return e.getAttribute("id")===t}}):(_.find.ID=function(e,n){if(typeof n.getElementById!==Y&&D){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==Y?t.getElementsByName(name):void 0},_.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&D?t.getElementsByClassName(e):void 0},H=[],M=[":focus"],(z.qsa=e(r.querySelectorAll))&&(i(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||M.push("\\["+nt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){e.innerHTML="",e.querySelectorAll("[i^='']").length&&M.push("[*^$]="+nt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(z.matchesSelector=e(P=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){z.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),H.push("!=",st)}),M=new RegExp(M.join("|")),H=H.length&&new RegExp(H.join("|")),O=e(L.contains)||L.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},K=L.compareDocumentPosition?function(e,t){if(e===t)return j=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||T&&t.compareDocumentPosition(e)===n?e===r||O(F,e)?-1:t===r||O(F,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return j=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},B):B},o.matches=function(e,t){return o(e,null,null,t)},o.matchesSelector=function(e,t){if((e.ownerDocument||e)!==B&&A(e),t=t.replace(Ct,"='$1']"),z.matchesSelector&&D&&(!H||!H.test(t))&&!M.test(t))try{var n=P.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return o(t,B,null,[e]).length>0},o.contains=function(e,t){return(e.ownerDocument||e)!==B&&A(e),O(e,t)},o.attr=function(e,t){var n;return(e.ownerDocument||e)!==B&&A(e),D&&(t=t.toLowerCase()),(n=_.attrHandle[t])?n(e):!D||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},o.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},o.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!z.detectDuplicates,T=!z.sortDetached,R=!z.sortStable&&e.slice(0),e.sort(K),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},N=o.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=N(t);return n},_=o.selectors={cacheLength:50,createPseudo:r,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,wt),e[3]=(e[4]||e[5]||"").replace(xt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||o.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&o.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,wt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&U(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=o.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,m,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;h;){for(d=t;d=d[h];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[a?g.firstChild:g.lastChild],a&&y){for(u=g[I]||(g[I]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[h]||(f=p=0)||m.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[I]||(t[I]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[h]||(f=p=0)||m.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[I]||(d[I]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=_.pseudos[e]||_.setFilters[e.toLowerCase()]||o.error("unsupported pseudo: "+e);return i[I]?i(t):i.length>1?(n=[e,e,"",t],_.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=tt.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(lt,"$1"));return i[I]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(t){return o(e,t).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||o.error("unsupported lang: "+e),e=e.replace(xt,wt).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===B.activeElement&&(!B.hasFocus||B.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return vt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++rn;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===t?"":(""+e).replace(N,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function g(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var v=document,y=Array.prototype.push,b=Array.prototype.slice,C=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,x=e.Event,w=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},N=/^\s*|\s*$/g;return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:C.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=v.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return _(e)?y.apply(t,e):e instanceof c?t.add(e.toArray()):y.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||w[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],x.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n){var r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=p((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){x.bind(this,e,t)})},off:function(e,t){return this.each(function(){x.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(b.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:y,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:_,each:m,trim:p,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),t=1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return g(e,"nextSibling",1)},prev:function(e){return g(e,"previousSibling",1)},nextNodes:function(e){return g(e,"nextSibling")},prevNodes:function(e){return g(e,"previousSibling")},children:function(e){return g(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff"; +for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l-1&&n||(h[e+t]=-1==l?s[0]:s.join(" "),delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])}}function u(e){var t=h[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(t,n,r,i,o,a){return(o=o||a)?(o=p(o),"'"+o.replace(/\'/g,"\\'")+"'"):(n=p(n||r||i),!e.allow_script_urls&&/(java|vb)script:/i.test(n.replace(/[\s\r\n]+/,""))?"":(C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"))}var h={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(/.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,m),h[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border,"none"===h["border-image"]&&delete h["border-image"]}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(h,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;nn&&(t=t[e[n]],t);n++);return t}function m(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var h=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:m}}),r(m,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function m(){N(I)}function h(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return $(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return S(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return k(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],u=M[q]-M[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=L(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=L(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=L(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=L(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return L(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function L(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function D(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",$=e.extend,j=n.nodeIndex;return $(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:m,extractContents:h,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:D}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(h,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g0)return h=e.createElement("style"),h.textContent='@import "'+t+'"',p(),void n(h);f()}n(m),m.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,d,l,f,m,h,g,p,v],function(e,n,r,i,o,a,s,l,c){function u(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var d=l.each,f=l.is,p=l.grep,m=l.trim,h=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return u.prototype={root:null,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"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void d(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){d(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==u.DOM&&n===document){var o=u.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,u.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==u.DOM&&n===document?void u.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void d(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=m(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="
"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="
"+t,d(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&d(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],d(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=o.length;r--;)if(l=o[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=m(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},u.DOM=new u(document),u}),r(b,[y,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t() +}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var m;u.push({func:r,scope:l||this}),(m=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),m()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){if(r.language&&r.languageLoad!==!1){if(n&&new RegExp("([, ]|\\b)"+r.language+"([, ]|\\b)").test(n)===!1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+r.language+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(w,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;lo;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),d=t("center dir isindex noframes"),l.push.apply(l,d),u=[].concat(l,c),o(d,function(e){n(e,"",u)})),u=u||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),n("address dt dd div caption","",u),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",u),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",u),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",u),n("img","src alt usemap ismap width height"),n("iframe","src name width height",u),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",u,"param"),n("param","name value"),n("map","name",u,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",u),n("th","colspan rowspan headers scope abbr",u),n("form","accept-charset action autocomplete enctype method name novalidate target",u),n("fieldset","disabled form name",u,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?u:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",u,"li"),n("noscript","",u),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",u),n("mark rt rp summary bdi","",c),n("canvas","width height",u),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",u,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",u,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",u),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",u,"figcaption"),n("time","datetime",c),n("dialog","open",u),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",u,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,m,h,g,y,C,x,w,_,N,E,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=k.exec(f[o])){if(d={},h=s[1],m=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===h&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(m),d.required=!0),"-"===h){delete g[m],y.splice(l(y,m),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:m,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:m,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(m)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(m),c.attributePatterns.push(d)):(g[m]||y.push(m),g[m]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(S[s.toUpperCase()]={},S[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function h(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,S,k,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),k=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),S=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),d(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),h("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return S},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return k},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=h(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=h,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=m,g.elements=v}}),r(_,[w,h,p],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=k[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{if(c=decodeURIComponent(c),V.test(c))return}catch(u){if(c=unescape(c),V.test(c))return}}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,u,d,f=[],p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href"),V=/(java|vb)script:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),D=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c0&&f[f.length-1].name===u&&r(u),!w||(_=o.getElementRule(u))){if(N=!0,w&&(k=_.attributes,T=_.attributePatterns),(S=l[8])?(v=-1!==S.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},S.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,L=_.removeEmptyAttrs,L&&!p.length&&(N=!1),B)for(m=B.length;m--;)E=B[m],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(m=A.length;m--;)E=A[m],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(m=R.length;m--&&!(R[m]in p.map););-1===m&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(u,p,x)}else N=!1;if(d=P[u]){d.lastIndex=c=l.index+l[0].length,(l=d.exec(e))?(N&&(h=e.substr(c,l.index-c)),c=l.index+l[0].length):(h=e.substr(c),c=e.length),N&&(h.length>0&&s.text(h,!0),s.end(u)),M.lastIndex=c;continue}x||(S&&S.indexOf("/")==S.length-1?N&&s.end(u):f.push({name:u,valid:N}))}else(u=l[1])?(">"===u.charAt(0)&&(u=" "+u),i.allow_conditional_comments||"[if"!==u.substr(0,3)||(u=" "+u),s.comment(u)):(u=l[2])?s.cdata(u):(u=l[3])?s.doctype(u):(u=l[4])&&s.pi(u,l[5]);c=l.index+l[0].length}for(c=0;m--)u=f[m],u.valid&&s.end(u.name)}}}),r(N,[x,w,_,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,m,h,g,v,y;for(h=i("tr,td,th,tbody,thead,tfoot,table"),m=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,S,k,T,R,A=[],B,L,D,M,H,P,O,I;if(o=o||{},p={},m={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,D=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(D," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,h(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,h(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=m[a],E?E.push(r):m[a]=[r]);T[e]&&h(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(L,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in p){for(E=d[S],C=p[S],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in m){for(C=m[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,m;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(m=new e("#text",3),m.value="\xa0",i.replace(m))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(E,[h,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push(""),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("")},comment:function(e){r.push("")},pi:function(e,t){t?r.push(""):r.push(""),i&&r.push("\n")},doctype:function(e){r.push("",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(S,[E,w],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,m,h;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},h=r.getElementRule(e.name),p=0,m=h.attributesOrder.length;m>p;p++)u=h.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,m=c.length;m>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[y,N,h,S,x,w,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/()/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(()?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// ")}else o.length>0&&(i.firstChild.value="")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,m,h;return a.ie&&s.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,h)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),m=new r(e,d),n.content=m.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(T,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r); +if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,m;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(m=t.childNodes,m.length?(n>=m.length?i.insertAfter(a,m[m.length-1]):t.insertBefore(a,m[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,m,h;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="":d=null,s.innerHTML="",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(h=s.childNodes[l],a=p.createControlRange(),a.addElement(h),a.select(),m=e.getRng(),m.item&&h===m.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(R,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(A,[R,p,g],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-k,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+L,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/D),P=Math.round(H*D)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(L-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p,m=i.getBody();g(),l=C.getPos(e,m),R=l.x,A=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(h(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){k=t.screenX,T=t.screenY,B=w.clientWidth,L=w.clientHeight,D=L/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:u*e[0]+R-c.offsetWidth/2,top:d*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,S)}function m(e){var t=e.srcElement;if(t!=w){if(h(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function h(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(h(),f(i.getBody(),"controlselect",m))}var C=i.dom,x=t.each,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(i.getBody(),"controlselect",m),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)})}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(B,[p,f],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(h=e,g=h.parentNode;h&&h!=t;h=g)g=h.parentNode,v=o(h==e?h:h[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,m,h,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return n(i([l]));for(f=e.findCommonAncestor(l,u),h=l;h;h=h.parentNode){if(h===u)return s(l,f,!0);if(h===f)break}for(h=u;h;h=h.parentNode){if(h===l)return s(u,f);if(h===f)break}p=a(l,f)||l,m=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",m==u?m.nextSibling:m),v.length&&n(i(v)),s(u,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&rr?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r0&&o0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||m[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,m,h,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,m=e.schema.getNonEmptyElements(),h=r,1==c.nodeType&&u>c.childNodes.length-1&&(h=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(h&&(p=c.childNodes[u>0?u-1:0],p&&(m[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!h&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=h?0:p.nodeValue.length,c=p,i=!0;break}if(m[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||h||u++,i=!0;break}}while(p=h?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),h&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(L,[f,T,A,B,g,p],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,u=a.trim,d=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="
"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='_',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('_'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,u,d,f,p,m="",h;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),h="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML(''+m+""),d||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML(''+m+""))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:h},m))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:h},m))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,d=e.keep;if(n&&(r=n.parentNode,"start"==t?(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),u=p=r,m=h=i):(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,h=i),!d)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(u=p=s,m=h=i):(p=s,h=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||d||(e.innerHTML='
'),e}var i=this,o=i.dom,a,s,u,p,m,h;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),u&&(a=o.createRng(),a.setStart(r(u),m),a.setEnd(r(p),h),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(ns+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(D,[p],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(M,[f,B,p,D],function(e,t,n,r){return function(i){function o(e){return e.nodeType&&(e=e.nodeName),!!i.schema.getTextBlockElements()[e.toLowerCase()]}function a(e,t){return z.getParents(e,t,z.getRoot())}function s(e){return 1===e.nodeType&&"_mce_caret"===e.id}function l(){d({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},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"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){nt(n,function(t,n){z.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),nt("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){d(e,{block:e,remove:"all"})}),d(i.settings.formats)}function c(){i.addShortcut("ctrl+b","bold_desc","Bold"),i.addShortcut("ctrl+i","italic_desc","Italic"),i.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)i.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);i.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),i.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),i.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function u(e){return e?F[e]:F}function d(e,t){e&&("string"!=typeof e?nt(e,function(e,t){d(t,e)}):(t=t.length?t:[t],nt(t,function(e){e.deep===Q&&(e.deep=!e.selector),e.split===Q&&(e.split=!e.selector||e.inline),e.remove===Q&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),F[e]=t))}function f(e){var t;return i.dom.getParent(e,function(e){return t=i.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function p(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=f(e.parentNode),i.dom.getStyle(e,"color")&&t?i.dom.setStyle(e,"text-decoration",t):i.dom.getStyle(e,"textdecoration")===t&&i.dom.setStyle(e,"text-decoration",null))}function m(t,n,r){function a(e,t){t=t||h,e&&(t.onformat&&t.onformat(e,t,n,r),nt(t.styles,function(t,r){z.setStyle(e,r,k(t,n))}),nt(t.attributes,function(t,r){z.setAttrib(e,r,k(t,n))}),nt(t.classes,function(t){t=k(t,n),z.hasClass(e,t)||z.addClass(e,t)}))}function l(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=i.selection.getRng(),o=n.startContainer,a=n.endContainer;if(o!=a&&0===n.endOffset){var s=t(o,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function c(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return nt(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),nt(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==z.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(nt(rt(e.childNodes),i),0):(u=z.clone(n,G),nt(rt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),nt(o,function(e){u.appendChild(e)}),u)}function d(e,r,i){var l=[],u,d,p=!0;u=h.inline||h.block,d=z.create(u),a(d),V.walk(e,function(e){function m(e){var y,C,x,w,_;return _=p,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&Z(e)&&(_=p,p="true"===Z(e),w=!0),N(y,"br")?(g=0,void(h.block&&z.remove(e))):h.wrapper&&v(e,t,n)?void(g=0):p&&!w&&h.block&&!h.wrapper&&o(y)&&U(C,u)?(e=z.rename(e,u),a(e),l.push(e),void(g=0)):h.selector&&(nt(f,function(t){"collapsed"in t&&t.collapsed!==b||z.is(e,t.selector)&&!s(e)&&(a(e,t),x=!0)}),!h.inline||x)?void(g=0):void(!p||w||!U(u,y)||!U(C,u)||!i&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||s(e)||h.inline&&q(e)?"li"==y&&r?g=c(e,r,d,l,m):(g=0,nt(rt(e.childNodes),m),w&&(p=_),g=0):(g||(g=z.clone(d,G),e.parentNode.insertBefore(g,e),l.push(g)),g.appendChild(e)))}var g;nt(e,m)}),h.wrap_links===!1&&nt(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=z.clone(d,G),l.push(r),i=rt(e.childNodes),n=0;n1||!q(e))&&0===o)return void z.remove(e,1);if(h.inline||h.wrapper){if(h.exact||1!==o||(e=i(e)),nt(f,function(t){nt(z.select(t.inline,e),function(e){var r;if(!M(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}B(t,n,e,t.exact?e:null)}})}),v(e.parentNode,t,n))return z.remove(e,1),e=0,X;h.merge_with_parents&&z.getParent(e.parentNode,function(r){return v(r,t,n)?(z.remove(e,1),e=0,X):void 0}),e&&h.merge_siblings!==!1&&(e=H(D(e),e),e=H(e,D(e,X)))}})}var f=u(t),h=f[0],g,y,b=!r&&W.isCollapsed();if(h)if(r)r.nodeType?(y=z.createRng(),y.setStartBefore(r),y.setEndAfter(r),d(A(y,f),null,!0)):d(r,null,!0);else if(b&&h.inline&&!z.select("td.mce-item-selected,th.mce-item-selected").length)O("apply",t,n);else{var C=i.selection.getNode();$||!f[0].defaultBlock||z.getParent(C,z.isBlock)||m(f[0].defaultBlock),i.selection.setRng(l()),g=W.getBookmark(),d(A(W.getRng(X),f),g),h.styles&&(h.styles.color||h.styles.textDecoration)&&(it(C,p,"childNodes"),p(C)),W.moveToBookmark(g),I(W.getRng(X)),i.nodeChanged()}}function h(e,t,n){function r(e){var n,i,o,a,s;if(1===e.nodeType&&Z(e)&&(a=b,b="true"===Z(e),s=!0),n=rt(e.childNodes),b&&!s)for(i=0,o=p.length;o>i&&!B(p[i],t,e,e);i++);if(m.deep&&n.length){for(i=0,o=n.length;o>i;i++)r(n[i]); +s&&(b=a)}}function o(n){var r;return nt(a(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=v(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=z.clone(o,G),c=0;c=0;o--){if(s=t[o].selector,!s||t[o].defaultBlock)return X;for(i=r.length-1;i>=0;i--)if(z.is(r[i],s))return X}return G}function x(e,t,n){var r;return J||(J={},r={},i.on("NodeChange",function(e){var t=a(e.element),n={};nt(J,function(e,i){nt(t,function(o){return v(o,i,{},e.similar)?(r[i]||(nt(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),nt(r,function(i,o){n[o]||(delete r[o],nt(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),nt(e.split(","),function(e){J[e]||(J[e]=[],J[e].similar=n),J[e].push(t)}),this}function w(e){return r.getCssText(i,e)}function _(e,t){return N(e,t.inline)?X:N(e,t.block)?X:t.selector?1==e.nodeType&&z.is(e,t.selector):void 0}function N(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function E(e,t){return S(z.getStyle(e,t),t)}function S(e,t){return("color"==t||"backgroundColor"==t)&&(e=z.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function k(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function T(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function R(e,t,n){var r=z.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function A(t,n,r){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=z.getRoot(),3==r.nodeType&&!T(r)&&(e?v>0:bi?n:i,-1===n||r||n++):(n=a.indexOf(" ",t),i=a.indexOf("\xa0",t),n=-1!==n&&(-1===i||i>n)?n:i),n}var s,l,c,u;if(3===t.nodeType){if(c=a(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,z.getParent(t,q)||i.getBody());l=s[o?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=a(l),-1!==c)return{container:l,offset:c}}else if(q(l))break;return u?(n=o?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=a(e),o=0;op?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(M(g.parentNode)||M(g))&&(g=M(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(M(y.parentNode)||M(y))&&(y=M(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(h=u(g,v,!0),h&&(g=h.container,v=h.offset),h=u(y,b),h&&(y=h.container,b=h.offset)),m=l(y,b),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=l(m.node.previousSibling);m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(y=m.node,y.splitText(m.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==G&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(q(g)||(g=s(!0)),q(y)||(y=s()))),1==g.nodeType&&(v=j(g),g=g.parentNode),1==y.nodeType&&(b=j(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function B(e,t,n,r){var i,o,a;if(!_(n,e))return G;if("all"!=e.remove)for(nt(e.styles,function(e,i){e=S(k(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||N(E(r,i),e))&&z.setStyle(n,i,""),a=1}),a&&""===z.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),nt(e.attributes,function(e,i){var o;if(e=k(e,t),"number"==typeof i&&(i=e,r=0),!r||N(z.getAttrib(r,i),e)){if("class"==i&&(e=z.getAttrib(n,i),e&&(o="",nt(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void z.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),Y.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),nt(e.classes,function(e){e=k(e,t),(!r||z.hasClass(r,e))&&z.removeClass(n,e)}),o=z.getAttribs(n),i=0;ia?a:o]),3===r.nodeType&&n&&o>=r.nodeValue.length&&(r=new e(r,i.getBody()).next()||r),3!==r.nodeType||n||0!==o||(r=new e(r,i.getBody()).prev()||r),r}function O(t,n,r){function a(e){var t=z.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(i.getDoc().createTextNode(K)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==K||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function c(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=W.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),z.remove(e)):(n=c(e),n.nodeValue.charAt(0)===K&&(n=n.deleteData(0,1)),z.remove(e,1)),W.setRng(r);else if(e=l(W.getStart()),!e)for(;e=z.get(y);)d(e,!1)}function f(){var e,t,i,o,s,d,f;e=W.getRng(!0),o=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(W.getStart()),t&&(i=c(t)),f&&o>0&&o=0;p--)c.appendChild(z.clone(f[p],!1)),c=c.firstChild;c.appendChild(z.doc.createTextNode(K)),c=c.firstChild;var g=z.getParent(d,o);g&&z.isEmpty(g)?d.parentNode.replaceChild(m,d):z.insertAfter(m,d),W.setCursorLocation(c,1),z.isEmpty(d)&&z.remove(d)}}function g(){var e;e=l(W.getStart()),e&&!z.isEmpty(e)&&it(e,function(e){1!=e.nodeType||e.id===y||z.isEmpty(e)||z.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=i.settings.caret_debug;i._hasCaretEvents||(tt=function(){var e=[],t;if(s(l(W.getStart()),e))for(t=e.length;t--;)z.setAttrib(e[t],"data-mce-bogus","1")},et=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(W.getStart())),g()},i.on("SetContent",function(e){e.selection&&g()}),i._hasCaretEvents=!0),"apply"==t?f():p()}function I(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=j(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,z.getParent(n,z.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!T(a))return l=z.create("a",null,K),a.parentNode.insertBefore(l,a),t.setStart(a,0),W.setRng(t),void z.remove(l)}var F={},z=i.dom,W=i.selection,V=new t(z),U=i.schema.isValidChild,q=z.isBlock,$=i.settings.forced_root_block,j=z.nodeIndex,K="\ufeff",Y=/^(src|href|style)$/,G=!1,X=!0,J,Q,Z=z.getContentEditable,et,tt,nt=n.each,rt=n.grep,it=n.walk,ot=n.extend;ot(this,{get:u,register:d,apply:m,remove:h,toggle:g,match:y,matchAll:b,matchNode:v,canApply:C,formatChanged:x,getCssText:w}),l(),c(),i.on("BeforeGetContent",function(){tt&&tt()}),i.on("mouseup keydown",function(e){et&&et(e)})}}),r(H,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,u,d=0;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),u=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),d||t.removed)return null;if(t.fire("BeforeAddUndo",{level:e,originalEvent:n}).isDefaultPrevented())return null;if(a=l[s],a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r0&&(t.isNotDirty=!1,t.fire("change",u)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return sL)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='
'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),S.insertNode(e),S.setStartAfter(e),S.setEndAfter(e),t=!0)),e=a.create("br"),S.insertNode(e),r&&"PRE"==O&&(!L||8>L)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{}," "),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(S.setStartBefore(e),S.setEndBefore(e)):(S.setStartAfter(e),S.setEndAfter(e)),s.setRng(S),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var S,k,T,R,A,B,L,D,M,H,P,O,I,F,z;if(S=s.getRng(!0),!o.isDefaultPrevented()){if(!S.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(S),R=S.startContainer,A=S.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",L=a.doc.documentMode,D=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||D)&&w());if((F&&!D||!F&&D)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&D)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!D)return void w()}else if(!F&&!D&&"LI"!=O||F&&D)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),h(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),h(B)):(k=S.cloneRange(),k.setEndAfter(B),H=k.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),m(M),E(B),h(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(O,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,m,h=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",h),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",h)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){m=t,t=t.nextSibling,r.remove(m);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),m=t,t=t.nextSibling,p.appendChild(m)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(I,[S,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),d):f}function m(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return S.match(e)}function b(e,n){S.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){k=_.getBookmark(e)}function x(){_.moveToBookmark(k)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,S=r.formatter,k;o(this,{execCommand:p,queryCommandState:m,queryCommandValue:h,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=d}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}S.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&S.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){S.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:d}),{cleanup:d}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,d),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i|)$/," "):t("nextSibling")||(e=e.replace(/( | )(
|)$/," "))),e}var a,s,l,c,d,f,p,m,h,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='ÈB;',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),m=_.getRng();var y=m.startContainer||(m.parentElement?m.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(m=w.createRng(),m.setStart(b.firstChild,0),m.setEnd(b.firstChild,0),_.setRng(m)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(d=a.parse(i,C),h=d.lastChild,"mce_marker"==h.attr("id"))for(p=h,h=h.prev;h;h=h.walk(!0))if(3==h.type||!w.isBlock(h.name)){h.parent.insert(p,h,"br"===h.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=h=c:h=l;h!==c;)l=h,h=h.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(//i,function(){return s.serialize(d)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(d),h=l.firstChild,g=l.lastChild,!h||h===g&&"BR"===h.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),m=w.createRng(),h=p.previousSibling,h&&3==h.nodeType?(m.setStart(h,h.nodeValue.length),u||(g=p.nextSibling,g&&3==g.nodeType&&(h.appendData(g.data),g.parentNode.removeChild(g)))):(m.setStartBefore(p),m.setEndBefore(p)),w.remove(p),_.setRng(m),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||S.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(d),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(d),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"
")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||S.remove("link"),n.href&&S.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!S.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return m("InsertUnorderedList")||m("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(F,[p],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n]; +r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.lengtho;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(z,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(W,[z],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,m;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,m=e,p=0,i=o-1;i>=0;i--)for(c=a[i];m;){if(c.psuedo)for(f=m.parent().items(),u=d=f.length;u--&&f[u]!==m;);for(s=0,l=c.length;l>s;s++)if(!c[s](m,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;m=m.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(V,[p,W,z],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(U,[p,y],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(q,[z,p,V,U],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l="mce-",c=e.extend({Statics:{elementIdCache:o,classPrefix:l},isRtl:function(){return c.rtl},classPrefix:l,init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,i,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=r.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var m=n.left+n.right,h=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=i={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:m,deltaH:h,contentW:a-m,contentH:s-h,innerW:a-m,innerH:s-h,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=in.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=in.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=in.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=in.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents||(r._nativeEvents={}),r._nativeEvents[e]=!0,r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},hasEventListeners:function(e){return e in this._bindings},parents:function(e){var t=this,r,i=new n;for(r=t.parent();r;r=r.parent())i.add(r);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new n(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return c.translate?c.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i,a;if(e.items){var s=e.items().toArray();for(a=s.length;a--;)s[a].remove()}n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete o[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(a=c.length;a--;)delete o[c[a].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;il;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;var m=d._delegates;m||(m=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(r.on(d.getEl(),"mouseleave",t),r.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):m[p]||(r.on(d.getEl(),p,e),m[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return c}),r($,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(j,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;re?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t=0&&t
'+(e.settings.html||"")+t.renderHtml(e)+"
"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Y,[U],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,m;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:m}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(G,[U,Y],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,m,h,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),m=d["client"+s]-2*o,m-=n&&r?f["client"+u]:0,h=d["scroll"+s],g=m/h,v={},v[y]=d["offset"+a]+o,v[b]=m,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=m*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('
')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(X,[K,G],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='
'+t.renderHtml(e)+"
":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'
'+(e._preBodyHtml||"")+n+"
"}})}),r(J,[U],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o0&&a.x+a.w0&&a.y+a.hi.x&&a.x+a.wi.y&&a.y+a.he?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Q,[U],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Z,[X,J,Q,U],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;en&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in") +},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='
',d.addClass("popover").addClass("bottom").addClass(d.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},u}),r(et,[Z,X,U,Y],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='
'+e.encode(i.title)+'
'),i.url&&(s=''),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'
'+o+'
'+s+"
"+a+"
"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(tt,[et],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(nt,[et,tt],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(rt,[R,B,x,h,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),U.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMNodeInserted",e),r.removeEventListener("DOMAttrModified",t),r.removeEventListener("DOMSubtreeModified",e,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==V,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==W)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||q.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(a.selection.getContent()))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),t(),a.selection.setRng(n.caretRangeFromPoint(e.x,e.y)),a.insertContent(i))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=U.create("body"),n=e.cloneContents();return t.appendChild(n),q.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=U.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==V||t==W)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!U.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&U.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(U.bind(a.getDoc(),"focusin",function(){q.setRng(q.getRng())}),U.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),q.setRng(q.getRng()))}))}function m(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return U.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(U.remove(n),e.preventDefault())}})}function h(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&q.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&U.hasClass(e,"mce-item-anchor")&&q.select(e),a.nodeChanged()})}function v(){function e(){var e=U.getAttribs(q.getStart().cloneNode(!1));return function(){var t=q.getStart();t!==a.getBody()&&(U.setAttrib(t,"style",null),z(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!q.isCollapsed()&&U.getParent(q.getStart(),U.isBlock)!=U.getParent(q.getEnd(),U.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),U.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=q.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),U.addClass(a.getBody(),"mceHideBrInPre"),j.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),K.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){U.bind(a.getBody(),"mouseup",function(){var e,t=q.getNode();"IMG"==t.nodeName&&((e=U.getStyle(t,"width"))&&(U.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"width","")),(e=U.getStyle(t,"height"))&&(U.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=q.getRng(),r=n.startContainer,i=n.startOffset,o=U.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=U.createRng(),n.setStart(r,0),n.setEnd(r,0),q.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),$.object_resizing||s("enableObjectResizing",!1)}$.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){z(U.select("a"),function(e){var t=e.parentNode,n=U.getRoot();if(t.lastChild===e){for(;t&&!U.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}U.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){$.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",$.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=W||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),U.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",z("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&(j.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),K.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),U.unbind(r,"mouseup",n),U.unbind(r,"mousemove",t),a=o=0}var r=U.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,U.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(U.bind(r,"mouseup",n),U.bind(r,"mousemove",t),U.getRoot().focus(),a.select())}})}function L(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||q.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}var z=o.each,W=e.BACKSPACE,V=e.DELETE,U=a.dom,q=a.selection,$=a.settings,j=a.parser,K=a.serializer,Y=i.gecko,G=i.ie,X=i.webkit;C(),_(),d(),L(),X&&(u(),p(),g(),S(),i.iOS?(y(),M(),H(),F()):f()),G&&i.ie<11&&(m(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(m(),h(),v(),N(),E(),k(),D(),P())}}),r(it,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(e=e.toLowerCase(),i=i||{},i.type=e,!a.removed||"remove"===e){if(i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i}},on:function(e,t,n){var o=this,a,s,l,c;if(t===!1&&(t=function(){return!1}),t)for(l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=o[r],a||(a=o[r]={}),s=a[e],s||(s=a[e]=[],o.bindNative&&i[e]&&o.bindNative(e)),n?s.unshift(t):s.push(t);return o},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n},hasEventListeners:function(e){var t=this[r];return e=e.toLowerCase(),!(!t||!t[e]||0===t[e].length)}}}),r(ot,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(at,[y,C,x,k,S,L,M,H,P,O,I,F,b,l,nt,w,N,rt,g,p,it,ot],function(e,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var E=e.DOM,S=n.ThemeManager,k=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,D=C.resolve,M=m.Event,H=b.gecko,P=b.ie;return N.prototype={render:function(){function e(){E.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.external_plugins,function(e,t){k.load(t,e),r.plugins+=" "+t}),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!k.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=k.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=k.createUrl(t,e),k.load(e.resource,e)})}else k.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void E.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new h(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=k.get(n),i,o;i=k.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(k.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,m,h=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+=''),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+=''),t.iframeHTML+='',m=0;m',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='
";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(u=v),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),P)try{t.getDoc()}catch(y){s.src=u=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=E.get(n.id),p=n.getDoc(),m,h;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"contentEditable",null)}),E.addClass(f,"mce-content-body"),n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,o.readonly||(n.inline&&"static"==E.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new u(n),n.enterKey=new c(n),n.editorCommands=new d(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,E.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(m.dir=o.directionality),o.nowrap&&(m.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){R(o.protect,function(t){e.content=e.content.replace(t,function(e){return""})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,R(n._pendingNativeEvents,function(e){n.dom.bind(_(n,e),e,function(e){n.fire(e.type,e)})}),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(h="",R(n.contentStyles,function(e){h+=e+"\r\n" +}),n.dom.addStyle(h)),R(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=m=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),H||i){if(l=n.getBody(),l.setActive)try{l.setActive()}catch(c){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e)}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=P&&11>P?"":'
',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):P||(e='
'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.removed=1,e.save(),e.hasHiddenInput&&E.remove(e.getElement().nextSibling),e.inline||(P&&10>P&&e.getDoc().execCommand("SelectAll",!1,null),E.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null,M.unbind(e.getWin()),M.unbind(e.getDoc()));var t=e.getContainer();M.unbind(e.getBody()),M.unbind(t),e.fire("remove"),e.editorManager.remove(e),E.remove(t),e.destroy()}},bindNative:function(e){var t=this;t.settings.readonly||(t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e])},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(st,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(lt,[y,g],function(e,t){function n(e){function a(){try{return document.activeElement}catch(e){return document.body}}function s(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function l(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function c(e){return!!o.getParent(e,n.isEditorUIElement)}function u(e,t){for(var n=t.getBody();e;){if(e==n)return!0;e=e.parentNode}}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&(d.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==d.id+"_ifr"&&(e=d.getBody()),u(e,d)&&(d.lastRng=d.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},o.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(l(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.activeEditor=d,e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;c(a())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=s(n.lastRng)),c(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},o.bind(document,"focusin",i))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(o.unbind(document,"selectionchange",r),o.unbind(document,"focusin",i),r=i=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(ct,[at,y,F,g,p,it,st,lt],function(e,t,n,r,i,o,a,s){var l=t.DOM,c=i.explode,u=i.each,d=i.extend,f=0,p,m={majorVersion:"4",minorVersion:"0.21",releaseDate:"2014-04-01",editors:[],i18n:a,activeEditor:null,setup:function(){var e=this,t,r,i="",o;if(r=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(r)||(r+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),l=0;l0&&u(c(h),function(n){l.get(n)?(m=new e(n,t,s),p.push(m),m.render()):u(document.forms,function(e){u(e.elements,function(e){e.name===n&&(n="mce_editor_"+f++,l.setAttrib(e,"id",n),r(n,t))})})});break;case"textareas":case"specific_textareas":u(l.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t)})}t.oninit&&(h=g=0,u(p,function(e){g++,e.initialized?h++:e.on("init",function(){h++,h==g&&i(t,"oninit")}),h==g&&i(t,"oninit")}))}var s=this,p=[],m;s.settings=t,l.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),p||(p=function(){t.fire("BeforeUnload")},l.bind(window,"beforeunload",p)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i,o;{if(e){if("string"==typeof e)return e=e.selector||e,void u(l.select(e),function(e){t.remove(r[e.id])});if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){u(this.editors,function(e){e.save()})},addI18n:function(e,t){a.add(e,t)},translate:function(e){return a.translate(e)}};return d(m,o),m.setup(),window.tinymce=window.tinyMCE=m,m}),r(ut,[ct,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(dt,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(ft,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(pt,[ft,dt,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(mt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(ht,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(gt,[y,l,b,C,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(vt,[z,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(yt,[vt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'
'+this._super(e)}})}),r(bt,[q,J],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Ct,[q,bt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(xt,[Ct],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'
"}})}),r(wt,[K],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'
'+(e.settings.html||"")+t.renderHtml(e)+"
"}})}),r(_t,[Ct],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'
'+e.encode(e._text)+"
"}})}),r(Nt,[xt,Z],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(Et,[Nt,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'
'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(St,[Ct,$,U],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='
",e.addClass("has-open")),'
"+s+"
"}})}),r(kt,[Ct],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'
'+e._getPathHtml()+"
"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'":"")+'
'+t[n].name+"
";return i||(i='
\xa0
'),i}})}),r(Tt,[kt,ct],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Rt,[K],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'
'+(e.settings.title?'
'+e.settings.title+"
":"")+'
'+(e.settings.html||"")+t.renderHtml(e)+"
" +}})}),r(At,[K,Rt],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Bt,[At],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'
'+(e.settings.title?''+e.settings.title+"":"")+'
'+(e.settings.html||"")+t.renderHtml(e)+"
"}})}),r(Lt,[St],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Dt,[yt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Mt,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v=[],y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",E="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",L="x",D="innerW",H="minW",O="right",I="deltaW",F="contentW"):(S="x",N="w",E="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",L="y",D="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),h=p.settings,g=h.flex,d-=n-1>t?c:0,g>0&&(u+=g,m[k]&&v.push(p),m.flex=g),d-=m[E],y=o[P]+m[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[A]:i[R]-d+i[A],x[H]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],m=p.layoutRect(),b=m[k],y=m[E]+m.flex*C,y>b?(d-=m[k]-m[E],u-=m.flex,m.flex=0,m.maxFlexSize=b):m.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[L]=o[P],t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),y=m.maxFlexSize||m[E],"center"===s?x[L]=Math.round(i[D]/2-m[M]/2):"stretch"===s?(x[M]=z(m[H]||0,i[D]-o[P]-o[O]),x[L]=o[P]):"end"===s&&(x[L]=i[D]-m[M]-o.top),m.flex>0&&(y+=m.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ht,[vt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Pt,[q,Ct,Z,p,ct,g],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&d(this.settings.format)}}}}function o(){return e.undoManager?e.undoManager.hasUndo():!1}function a(){return e.undoManager?e.undoManager.hasRedo():!1}function l(){var t=this;t.disabled(!o()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!o())})}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function d(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var f;f=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){d(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:l,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:c,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:l,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:c,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:u,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:f}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:d,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){n.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:f})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Ot,[yt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N=[],E=[],S,k,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,N[d]=S>N[d]?S:N[d],E[f]=k>E[f]?k:E[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,L=t.flexWidths;if(L)for(d=0;dd;d++)N[d]+=L?L[d]*D:D;for(m=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,d=0;r>d&&(u=i[f*r+d],u);d++)h=u.settings,c=u.layoutRect(),a=Math.max(N[d],c.startMinWidth),c.x=p,c.y=m,v=h.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=h.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=m+s/2-c.h/2:"bottom"==v?c.y=m+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();m+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(It,[Ct],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,''},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Ft,[Ct,U],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'"}})}),r(zt,[K],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Wt,[zt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Vt,[xt,$,Wt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'
'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a'+("-"!==o?'\xa0":"")+("-"!==o?''+o+"":"")+(l?'
'+l+"
":"")+(r.menu?'
':"")+""},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r($t,[Z,qt,p],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(jt,[_t],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(Kt,[Ct,Y],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'
'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Yt,[Ct],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'
'}})}),r(Gt,[Vt,U],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'
'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Xt,[Ht],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Jt,[X,U],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='"}),'
'+n+'
'+t.renderHtml(e)+"
"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(Qt,[Ct,U],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'":'"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(Zt,[U,q],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('
'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z,W,V,U,q,$,j,K,Y,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,mt,ht,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,St,kt,Tt,Rt,At,Bt,Lt,Dt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,$t,jt,Kt,Yt,Gt,Xt,Jt,Qt,Zt])}(this);tinymce.PluginManager.add("advlist",function(t){function e(t,e){var n=[];return tinymce.each(e.split(/[ ,]/),function(t){n.push({text:t.replace(/\-/g," ").replace(/\b\w/g,function(t){return t.toUpperCase()}),data:"default"==t?"":t})}),n}function n(e,n){var o,l=t.dom,a=t.selection;o=l.getParent(a.getNode(),"ol,ul"),o&&o.nodeName==e&&n!==!1||t.execCommand("UL"==e?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?i[e]:n,i[e]=n,o=l.getParent(a.getNode(),"ol,ul"),o&&(l.setStyle(o,"listStyleType",n),o.removeAttribute("data-mce-style")),t.focus()}function o(e){var n=t.dom.getStyle(t.dom.getParent(t.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(t){t.active(t.settings.data===n)})}var l,a,i={};l=e("OL",t.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),a=e("UL",t.getParam("advlist_bullet_styles","default,circle,disc,square")),t.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:l,onshow:o,onselect:function(t){n("OL",t.control.settings.data)},onclick:function(){n("OL",!1)}}),t.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:a,onshow:o,onselect:function(t){n("UL",t.control.settings.data)},onclick:function(){n("UL",!1)}})});tinymce.PluginManager.add("anchor",function(n){function e(){var e=n.selection.getNode();n.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:e.name||e.id},onsubmit:function(e){n.execCommand("mceInsertContent",!1,n.dom.createHTML("a",{id:e.data.name}))}})}n.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:e,stateSelector:"a:not([href])"}),n.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:e})});tinymce.PluginManager.add("autolink",function(t){function e(t){o(t,-1,"(",!0)}function n(t){o(t,0,"",!0)}function i(t){o(t,-1,"",!1)}function o(t,e,n){var i,o,r,s,d,a,f,l,c;if(i=t.selection.getRng(!0).cloneRange(),i.startOffset<5){if(l=i.endContainer.previousSibling,!l){if(!i.endContainer.firstChild||!i.endContainer.firstChild.nextSibling)return;l=i.endContainer.firstChild.nextSibling}if(c=l.length,i.setStart(l,c),i.setEnd(l,c),i.endOffset<5)return;o=i.endOffset,s=l}else{if(s=i.endContainer,3!=s.nodeType&&s.firstChild){for(;3!=s.nodeType&&s.firstChild;)s=s.firstChild;3==s.nodeType&&(i.setStart(s,0),i.setEnd(s,s.nodeValue.length))}o=1==i.endOffset?2:i.endOffset-1-e}r=o;do i.setStart(s,o>=2?o-2:0),i.setEnd(s,o>=1?o-1:0),o-=1;while(" "!=i.toString()&&""!==i.toString()&&160!=i.toString().charCodeAt(0)&&o-2>=0&&i.toString()!=n);if(i.toString()==n||160==i.toString().charCodeAt(0)?(i.setStart(s,o),i.setEnd(s,r),o+=1):0===i.startOffset?(i.setStart(s,0),i.setEnd(s,r)):(i.setStart(s,o),i.setEnd(s,r)),a=i.toString(),"."==a.charAt(a.length-1)&&i.setEnd(s,r-1),a=i.toString(),f=a.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),f&&("www."==f[1]?f[1]="http://www.":/@$/.test(f[1])&&!/^mailto:/.test(f[1])&&(f[1]="mailto:"+f[1]),d=t.selection.getBookmark(),t.selection.setRng(i),t.execCommand("createlink",!1,f[1]+f[2]),t.selection.moveToBookmark(d),t.nodeChanged(),tinymce.Env.webkit)){t.selection.collapse(!1);var g=Math.min(s.length,r+1);i.setStart(s,g),i.setEnd(s,g),t.selection.setRng(i)}}var r;return t.on("keydown",function(e){return 13==e.keyCode?i(t):void 0}),tinymce.Env.ie?void t.on("focus",function(){if(!r){r=!0;try{t.execCommand("AutoUrlDetect",!1,!0)}catch(e){}}}):(t.on("keypress",function(n){return 41==n.which?e(t):void 0}),void t.on("keyup",function(e){return 32==e.keyCode?n(t):void 0}))});tinymce.PluginManager.add("autoresize",function(e){function t(){return e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()}function i(n){var s,r,g,u,l,m,h,d,f=tinymce.DOM;if(r=e.getDoc()){if(g=r.body,u=r.documentElement,l=o.autoresize_min_height,!g||n&&"setcontent"===n.type&&n.initial||t())return void(g&&u&&(g.style.overflowY="auto",u.style.overflowY="auto"));h=e.dom.getStyle(g,"margin-top",!0),d=e.dom.getStyle(g,"margin-bottom",!0),m=g.offsetHeight+parseInt(h,10)+parseInt(d,10),(isNaN(m)||0>=m)&&(m=tinymce.Env.ie?g.scrollHeight:tinymce.Env.webkit&&0===g.clientHeight?0:g.offsetHeight),m>o.autoresize_min_height&&(l=m),o.autoresize_max_height&&m>o.autoresize_max_height?(l=o.autoresize_max_height,g.style.overflowY="auto",u.style.overflowY="auto"):(g.style.overflowY="hidden",u.style.overflowY="hidden",g.scrollTop=0),l!==a&&(s=l-a,f.setStyle(f.get(e.id+"_ifr"),"height",l+"px"),a=l,tinymce.isWebKit&&0>s&&i(n))}}function n(e,t,o){setTimeout(function(){i({}),e--?n(e,t,o):o&&o()},t)}var o=e.settings,a=0;e.settings.inline||(o.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),o.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){var t=e.getParam("autoresize_overflow_padding",1);e.dom.setStyles(e.getBody(),{paddingBottom:e.getParam("autoresize_bottom_margin",50),paddingLeft:t,paddingRight:t})}),e.on("nodechange setcontent keyup FullscreenStateChanged",i),e.getParam("autoresize_on_init",!0)&&e.on("init",function(){n(20,100,function(){n(5,1e3)})}),e.addCommand("mceAutoResize",i))});tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(l.getItem(d+"time"),10)||0;return(new Date).getTime()-e>v.autosave_retention?(a(!1),!1):!0}function a(t){l.removeItem(d+"draft"),l.removeItem(d+"time"),t!==!1&&e.fire("RemoveDraft")}function r(){!c()&&e.isDirty()&&(l.setItem(d+"draft",e.getContent({format:"raw",no_events:!0})),l.setItem(d+"time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(l.getItem(d+"draft"),{format:"raw"}),e.fire("RestoreDraft"))}function i(){m||(setInterval(function(){e.removed||r()},v.autosave_interval),m=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft RemoveDraft",function(){t.disabled(!n())}),i()}function u(){e.undoManager.beforeChange(),o(),a(),e.undoManager.add()}function f(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}function c(t){var n=e.settings.forced_root_block;return t=tinymce.trim("undefined"==typeof t?e.getBody().innerHTML:t),""===t||new RegExp("^<"+n+"[^>]*>(( | |[ ]|]*>)+?|)|
$","i").test(t)}var d,m,v=e.settings,l=tinymce.util.LocalStorage;d=v.autosave_prefix||"tinymce-autosave-{path}{query}-{id}-",d=d.replace(/\{path\}/g,document.location.pathname),d=d.replace(/\{query\}/g,document.location.search),d=d.replace(/\{id\}/g,e.id),v.autosave_interval=t(v.autosave_interval,"30s"),v.autosave_retention=t(v.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:u,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:u,onPostRender:s,context:"file"}),e.settings.autosave_restore_when_empty!==!1&&(e.on("init",function(){n()&&c()&&o()}),e.on("saveContent",function(){a()})),window.onbeforeunload=f,this.hasDraft=n,this.storeDraft=r,this.restoreDraft=o,this.removeDraft=a,this.isEmpty=c});!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(o){var e=this,t=o.getParam("bbcode_dialect","punbb").toLowerCase();o.on("beforeSetContent",function(o){o.content=e["_"+t+"_bbcode2html"](o.content)}),o.on("postProcess",function(o){o.set&&(o.content=e["_"+t+"_bbcode2html"](o.content)),o.get&&(o.content=e["_"+t+"_html2bbcode"](o.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(o){function e(e,t){o=o.replace(e,t)}return o=tinymce.trim(o),e(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"),e(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),e(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),e(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),e(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),e(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),e(/(.*?)<\/font>/gi,"$1"),e(//gi,"[img]$1[/img]"),e(/(.*?)<\/span>/gi,"[code]$1[/code]"),e(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),e(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),e(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),e(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),e(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),e(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),e(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),e(/<\/(strong|b)>/gi,"[/b]"),e(/<(strong|b)>/gi,"[b]"),e(/<\/(em|i)>/gi,"[/i]"),e(/<(em|i)>/gi,"[i]"),e(/<\/u>/gi,"[/u]"),e(/(.*?)<\/span>/gi,"[u]$1[/u]"),e(//gi,"[u]"),e(/]*>/gi,"[quote]"),e(/<\/blockquote>/gi,"[/quote]"),e(/
/gi,"\n"),e(//gi,"\n"),e(/
/gi,"\n"),e(/

/gi,""),e(/<\/p>/gi,"\n"),e(/ |\u00a0/gi," "),e(/"/gi,'"'),e(/</gi,"<"),e(/>/gi,">"),e(/&/gi,"&"),o},_punbb_bbcode2html:function(o){function e(e,t){o=o.replace(e,t)}return o=tinymce.trim(o),e(/\n/gi,"
"),e(/\[b\]/gi,""),e(/\[\/b\]/gi,""),e(/\[i\]/gi,""),e(/\[\/i\]/gi,""),e(/\[u\]/gi,""),e(/\[\/u\]/gi,""),e(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2'),e(/\[url\](.*?)\[\/url\]/gi,'$1'),e(/\[img\](.*?)\[\/img\]/gi,''),e(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),e(/\[code\](.*?)\[\/code\]/gi,'$1 '),e(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),o}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}();tinymce.PluginManager.add("charmap",function(e){function a(){function a(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var i,r,o,n;i='';var l=25;for(o=0;10>o;o++){for(i+="",r=0;l>r;r++){var s=t[o*l+r];i+='"}i+=""}i+="";var c={type:"container",html:i,onclick:function(a){var t=a.target;/^(TD|DIV)$/.test(t.nodeName)&&(e.execCommand("mceInsertContent",!1,tinymce.trim(t.innerText||t.textContent)),a.ctrlKey||n.close())},onmouseover:function(e){var t=a(e.target);t&&n.find("#preview").text(t.firstChild.firstChild.data)}};n=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[c,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){n.close()}}]})}var t=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["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","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:a}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:a,context:"insert"})});tinymce.PluginManager.add("code",function(e){function o(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),value:e.getContent({source_view:!0}),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(o){e.focus(),e.undoManager.transact(function(){e.setContent(o.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}})}e.addCommand("mceCodeEditor",o),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:o}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:o})});tinymce.PluginManager.add("contextmenu",function(e){var n,t=e.settings.contextmenu_never_use_native;e.on("contextmenu",function(i){var o;if(!i.ctrlKey||t){if(i.preventDefault(),o=e.settings.contextmenu||"link image inserttable | cell row column deletetable",n)n.show();else{var c=[];tinymce.each(o.split(/[ ,]/),function(n){var t=e.menuItems[n];"|"==n&&(t={text:n}),t&&(t.shortcut="",c.push(t))});for(var a=0;a'}),t+=""}),t+=""}var i=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];t.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:a,onclick:function(e){var a=t.dom.getParent(e.target,"a");a&&(t.insertContent(''+a.getAttribute('),this.hide())}},tooltip:"Emoticons"})});tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){l(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,l,a=i(),r={};return r.fontface=e.getParam("fullpage_default_fontface",""),r.fontsize=e.getParam("fullpage_default_fontsize",""),n=a.firstChild,7==n.type&&(r.xml_pi=!0,l=/encoding="([^"]+)"/.exec(n.value),l&&(r.docencoding=l[1])),n=a.getAll("#doctype")[0],n&&(r.doctype=""),n=a.getAll("title")[0],n&&n.firstChild&&(r.title=n.firstChild.value),s(a.getAll("meta"),function(e){var t,n=e.attr("name"),l=e.attr("http-equiv");n?r[n.toLowerCase()]=e.attr("content"):"Content-Type"==l&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(r.docencoding=t[1]))}),n=a.getAll("html")[0],n&&(r.langcode=t(n,"lang")||t(n,"xml:lang")),r.stylesheets=[],tinymce.each(a.getAll("link"),function(e){"stylesheet"==e.attr("rel")&&r.stylesheets.push(e.attr("href"))}),n=a.getAll("body")[0],n&&(r.langdir=t(n,"dir"),r.style=t(n,"style"),r.visited_color=t(n,"vlink"),r.link_color=t(n,"link"),r.active_color=t(n,"alink")),r}function l(t){function n(e,t,n){e.attr(t,n?n:void 0)}function l(e){r.firstChild?r.insert(e,r.firstChild):r.append(e)}var a,r,o,c,u,f=e.dom;a=i(),r=a.getAll("head")[0],r||(c=a.getAll("html")[0],r=new m("head",1),c.firstChild?c.insert(r,c.firstChild,!0):c.append(r)),c=a.firstChild,t.xml_pi?(u='version="1.0"',t.docencoding&&(u+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new m("xml",7),a.insert(c,a.firstChild,!0)),c.value=u):c&&7==c.type&&c.remove(),c=a.getAll("#doctype")[0],t.doctype?(c||(c=new m("#doctype",10),t.xml_pi?a.insert(c,a.firstChild):l(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),c=null,s(a.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),t.docencoding?(c||(c=new m("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,l(c)),c.attr("content","text/html; charset="+t.docencoding)):c.remove(),c=a.getAll("title")[0],t.title?(c?c.empty():(c=new m("title",1),l(c)),c.append(new m("#text",3)).value=t.title):c&&c.remove(),s("keywords,description,author,copyright,robots".split(","),function(e){var n,i,r=a.getAll("meta"),o=t[e];for(n=0;n"))}function i(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(d)}function a(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var l,a,o,m,u=t.content,f="",g=e.dom;if(!t.selection&&!("raw"==t.format&&d||t.source_view&&e.getParam("fullpage_hide_in_source_view"))){u=u.replace(/<(\/?)BODY/gi,"<$1body"),l=u.indexOf("",l),d=n(u.substring(0,l+1)),a=u.indexOf("\n"),o=i(),s(o.getAll("style"),function(e){e.firstChild&&(f+=e.firstChild.value)}),m=o.getAll("body")[0],m&&g.setAttribs(e.getBody(),{style:m.attr("style")||"",dir:m.attr("dir")||"",vLink:m.attr("vlink")||"",link:m.attr("link")||"",aLink:m.attr("alink")||""}),g.remove("fullpage_styles");var y=e.getDoc().getElementsByTagName("head")[0];f&&(g.add(y,"style",{id:"fullpage_styles"},f),m=g.get("fullpage_styles"),m.styleSheet&&(m.styleSheet.cssText=f));var h={};tinymce.each(y.getElementsByTagName("link"),function(e){"stylesheet"==e.rel&&e.getAttribute("data-mce-fullpage")&&(h[e.href]=e)}),tinymce.each(o.getAll("link"),function(e){var t=e.attr("href");h[t]||"stylesheet"!=e.attr("rel")||g.add(y,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),delete h[t]}),tinymce.each(h,function(e){e.parentNode.removeChild(e)})}}function r(){var t,n="",l="";return e.getParam("fullpage_default_xml_pi")&&(n+='\n'),n+=e.getParam("fullpage_default_doctype",""),n+="\n\n\n",(t=e.getParam("fullpage_default_title"))&&(n+=""+t+"\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='\n'),(t=e.getParam("fullpage_default_font_family"))&&(l+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(l+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(l+="color: "+t+";"),n+="\n\n"}function o(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(d)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var d,c,s=tinymce.each,m=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",a),e.on("GetContent",o)});tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,i=document,l=i.body;return l.offsetWidth&&(e=l.offsetWidth,t=l.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){d.setStyle(a,"height",t().h-(h.clientHeight-a.clientHeight))}var u,h,a,f,m=document.body,g=document.documentElement;s=!s,h=e.getContainer(),u=h.style,a=e.getContentAreaContainer().firstChild,f=a.style,s?(i=f.width,l=f.height,f.width=f.height="100%",c=u.width,o=u.height,u.width=u.height="",d.addClass(m,"mce-fullscreen"),d.addClass(g,"mce-fullscreen"),d.addClass(h,"mce-fullscreen"),d.bind(window,"resize",n),n(),r=n):(f.width=i,f.height=l,c&&(u.width=c),o&&(u.height=o),d.removeClass(m,"mce-fullscreen"),d.removeClass(g,"mce-fullscreen"),d.removeClass(h,"mce-fullscreen"),d.unbind(window,"resize",r)),e.fire("FullscreenStateChanged",{state:s})}var i,l,r,c,o,s=!1,d=tinymce.DOM;return e.settings.inline?void 0:(e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.on("remove",function(){r&&d.unbind(window,"resize",r)}),e.addCommand("mceFullScreen",n),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return s}})});tinymce.PluginManager.add("hr",function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"


")}),n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});tinymce.PluginManager.add("image",function(e){function t(e,t){function i(e,i){n.parentNode&&n.parentNode.removeChild(n),t({width:e,height:i})}var n=document.createElement("img");n.onload=function(){i(n.clientWidth,n.clientHeight)},n.onerror=function(){i()};var a=n.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(n),n.src=e}function i(t){return tinymce.each(t,function(t){t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})}}),t}function n(t){return function(){var i=e.settings.image_list;"string"==typeof i?tinymce.util.XHR.send({url:i,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(i)}}function a(n){function a(t,i,n){var a,l=[];return tinymce.each(e.settings[t]||n,function(e){var t={text:e.text||e.title,value:e.value};l.push(t),(f[i]===e.value||!a&&e.selected)&&(a=t)}),a&&!f[i]&&(f[i]=a.value,a.selected=!0),l}function l(){var t=[{text:"None",value:""}];return tinymce.each(n,function(i){t.push({text:i.text||i.title,value:e.convertURL(i.value||i.url,"src"),menu:i.menu})}),t}function o(){var e,t,i,n;e=u.find("#width")[0],t=u.find("#height")[0],i=e.value(),n=t.value(),u.find("#constrain")[0].checked()&&g&&h&&i&&n&&(g!=i?(n=Math.round(i/g*n),t.value(n)):(i=Math.round(n/h*i),e.value(i))),g=i,h=n}function s(){function t(t){function i(){t.onload=t.onerror=null,e.selection.select(t),e.nodeChanged()}t.onload=function(){f.width||f.height||y.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),i()},t.onerror=i}d(),o(),f=tinymce.extend(f,u.toJSON()),f.alt||(f.alt=""),""===f.width&&(f.width=null),""===f.height&&(f.height=null),""===f.style&&(f.style=null),f={src:f.src,alt:f.alt,width:f.width,height:f.height,style:f.style,"class":f["class"]},f["class"]||delete f["class"],e.undoManager.transact(function(){return f.src?(v?y.setAttribs(v,f):(f.id="__mcenew",e.focus(),e.selection.setContent(y.createHTML("img",f)),v=y.get("__mcenew"),y.setAttrib(v,"id",null)),void t(v)):void(v&&(y.remove(v),e.focus(),e.nodeChanged()))})}function r(e){return e&&(e=e.replace(/px$/,"")),e}function c(){m&&m.value(e.convertURL(this.value(),"src")),t(this.value(),function(e){e.width&&e.height&&(g=e.width,h=e.height,u.find("#width").value(g),u.find("#height").value(h))})}function d(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var i=u.toJSON(),n=y.parseStyle(i.style);delete n.margin,n["margin-top"]=n["margin-bottom"]=t(i.vspace),n["margin-left"]=n["margin-right"]=t(i.hspace),n["border-width"]=t(i.border),u.find("#style").value(y.serializeStyle(y.parseStyle(y.serializeStyle(n))))}}var u,g,h,m,p,f={},y=e.dom,v=e.selection.getNode();g=y.getAttrib(v,"width"),h=y.getAttrib(v,"height"),"IMG"!=v.nodeName||v.getAttribute("data-mce-object")||v.getAttribute("data-mce-placeholder")?v=null:f={src:y.getAttrib(v,"src"),alt:y.getAttrib(v,"alt"),"class":y.getAttrib(v,"class"),width:g,height:h},n&&(m={type:"listbox",label:"Image list",values:l(),value:f.src&&e.convertURL(f.src,"src"),onselect:function(e){var t=u.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),u.find("#src").value(e.control.value())},onPostRender:function(){m=this}}),e.settings.image_class_list&&(p={name:"class",type:"listbox",label:"Class",values:i(a("image_class_list","class"))});var b=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:c},m];e.settings.image_description!==!1&&b.push({name:"alt",type:"textbox",label:"Image description"}),e.settings.image_dimensions!==!1&&b.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:o,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:o,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),b.push(p),e.settings.image_advtab?(v&&(f.hspace=r(v.style.marginLeft||v.style.marginRight),f.vspace=r(v.style.marginTop||v.style.marginBottom),f.border=r(v.style.borderWidth),f.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(v,"style")))),u=e.windowManager.open({title:"Insert/edit image",data:f,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:d},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:s})):u=e.windowManager.open({title:"Insert/edit image",data:f,body:b,onSubmit:s})}e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:n(a),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),e.addMenuItem("image",{icon:"image",text:"Insert image",onclick:n(a),context:"insert",prependToContext:!0})});tinymce.PluginManager.add("importcss",function(t){function e(t){return"string"==typeof t?function(e){return-1!==e.indexOf(t)}:t instanceof RegExp?function(e){return t.test(e)}:t}function n(e,n){function i(t,e){var o,l=t.href;if((e||c[l])&&(!n||n(l))){s(t.imports,function(t){i(t,!0)});try{o=t.cssRules||t.rules}catch(a){}s(o,function(t){t.styleSheet?i(t.styleSheet,!0):t.selectorText&&s(t.selectorText.split(","),function(t){r.push(tinymce.trim(t))})})}}var r=[],c={};s(t.contentCSS,function(t){c[t]=!0});try{s(e.styleSheets,function(t){i(t)})}catch(o){}return r}function i(e){var n,i=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(e);if(i){var r=i[1],s=i[2].substr(1).split(".").join(" "),c=tinymce.makeMap("a,img");return i[1]?(n={title:e},t.schema.getTextBlockElements()[r]?n.block=r:t.schema.getBlockElements()[r]||c[r.toLowerCase()]?n.selector=r:n.inline=r):i[2]&&(n={inline:"span",title:e.substr(1),classes:s}),t.settings.importcss_merge_classes!==!1?n.classes=s:n.attributes={"class":s},n}}var r=this,s=tinymce.each;t.on("renderFormatsMenu",function(c){var o=t.settings,l={},a=o.importcss_selector_converter||i,m=e(o.importcss_selector_filter);t.settings.importcss_append||c.control.items().remove();var f=[];tinymce.each(o.importcss_groups,function(t){t=tinymce.extend({},t),t.filter=e(t.filter),f.push(t)}),s(n(t.getDoc(),e(o.importcss_file_filter)),function(e){if(-1===e.indexOf(".mce-")&&!l[e]&&(!m||m(e))){var n,i=a.call(r,e);if(i){var s=i.name||tinymce.DOM.uniqueId();if(f)for(var o=0;o'+n+"";var i=e.dom.getParent(e.selection.getStart(),"time");if(i)return void e.dom.setOuterHTML(i,n)}e.insertContent(n)}var n,r,i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),c="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),u=[];e.addCommand("mceInsertDate",function(){a(e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),e.addCommand("mceInsertTime",function(){a(e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S")))}),e.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){a(n||r)},menu:u}),tinymce.each(e.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(e){r||(r=e),u.push({text:t(e),onclick:function(){n=e,a(e)}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:u,context:"insert"})});!function(e){e.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),e.PluginManager.add("legacyoutput",function(t){t.on("init",function(){var i="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",n=e.explode(t.settings.font_size_style_values),l=t.schema;t.formatter.register({alignleft:{selector:i,attributes:{align:"left"}},aligncenter:{selector:i,attributes:{align:"center"}},alignright:{selector:i,attributes:{align:"right"}},alignjustify:{selector:i,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(n,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){l.addValidElements(e+"[*]")}),l.getElementRule("font")||l.addValidElements("font[face|size|color|style]"),e.each(i.split(","),function(e){var t=l.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})})}(tinymce);tinymce.PluginManager.add("link",function(t){function e(e){return function(){var n=t.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(t){e(tinymce.util.JSON.parse(t))}}):e(n)}}function n(e){function n(t){var e=d.find("#text");(!e.value()||t.lastControl&&e.value()==t.lastControl.text())&&e.value(t.control.text()),d.find("#href").value(t.control.value())}function l(){var n=[{text:"None",value:""}];return tinymce.each(e,function(e){n.push({text:e.text||e.title,value:t.convertURL(e.value||e.url,"href"),menu:e.menu})}),n}function i(e){return tinymce.each(e,function(e){e.textStyle=function(){return t.formatter.getCssText({inline:"a",classes:[e.value]})}}),e}function a(e,n,l){var i,a=[];return tinymce.each(t.settings[e]||l,function(t){var e={text:t.text||t.title,value:t.value};a.push(e),(b[n]===t.value||!i&&t.selected)&&(i=e)}),i&&!b[n]&&(b[n]=i.value,i.selected=!0),a}function r(e){var l=[];return tinymce.each(t.dom.select("a:not([href])"),function(t){var n=t.name||t.id;n&&l.push({text:n,value:"#"+n,selected:-1!=e.indexOf("#"+n)})}),l.length?(l.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:l,onselect:n}):void 0}function o(){h&&h.value(t.convertURL(this.value(),"href")),!f&&0===b.text.length&&x&&this.parent().parent().find("#text")[0].value(this.value())}function s(t){var e=k.getContent();if(/]+>[^<]+<\/a>$/.test(e)||-1==e.indexOf("href=")))return!1;if(t){var n,l=t.childNodes;if(0===l.length)return!1;for(n=l.length-1;n>=0;n--)if(3!=l[n].nodeType)return!1}return!0}var u,c,f,d,x,v,h,g,m,p,y,b={},k=t.selection,w=t.dom;u=k.getNode(),c=w.getParent(u,"a[href]"),x=s(),b.text=f=c?c.innerText||c.textContent:k.getContent({format:"text"}),b.href=c?w.getAttrib(c,"href"):"",b.target=c?w.getAttrib(c,"target"):t.settings.default_link_target||null,b.rel=c?w.getAttrib(c,"rel"):null,b["class"]=c?w.getAttrib(c,"class"):null,b.title=c?w.getAttrib(c,"title"):"",x&&(v={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){b.text=this.value()}}),e&&(h={type:"listbox",label:"Link list",values:l(),onselect:n,value:t.convertURL(b.href,"href"),onPostRender:function(){h=this}}),t.settings.target_list!==!1&&(m={name:"target",type:"listbox",label:"Target",values:a("target_list","target",[{text:"None",value:""},{text:"New window",value:"_blank"}])}),t.settings.rel_list&&(g={name:"rel",type:"listbox",label:"Rel",values:a("rel_list","rel",[{text:"None",value:""}])}),t.settings.link_class_list&&(p={name:"class",type:"listbox",label:"Class",values:i(a("link_class_list","class"))}),t.settings.link_title!==!1&&(y={name:"title",type:"textbox",label:"Title",value:b.title}),d=t.windowManager.open({title:"Insert link",data:b,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:o,onkeyup:o},v,y,r(b.href),h,g,m,p],onSubmit:function(e){function n(e,n){var l=t.selection.getRng();window.setTimeout(function(){t.windowManager.confirm(e,function(e){t.selection.setRng(l),n(e)})},0)}function l(){var e={href:i,target:b.target?b.target:null,rel:b.rel?b.rel:null,"class":b["class"]?b["class"]:null,title:b.title?b.title:null};c?(t.focus(),x&&b.text!=f&&("innerText"in c?c.innerText=b.text:c.textContent=b.text),w.setAttribs(c,e),k.select(c),t.undoManager.add()):x?t.insertContent(w.createHTML("a",e,w.encode(b.text))):t.execCommand("mceInsertLink",!1,e)}var i;return b=tinymce.extend(b,e.data),(i=b.href)?i.indexOf("@")>0&&-1==i.indexOf("//")&&-1==i.indexOf("mailto:")?void n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(i="mailto:"+i),l()}):/^\s*www\./i.test(i)?void n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){t&&(i="http://"+i),l()}):void l():void t.execCommand("unlink")}})}t.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:e(n),stateSelector:"a[href]"}),t.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),t.addShortcut("Ctrl+K","",e(n)),this.showDialog=n,t.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:e(n),stateSelector:"a[href]",context:"insert",prependToContext:!0})});tinymce.PluginManager.add("lists",function(e){function t(e){return e&&/^(OL|UL)$/.test(e.nodeName)}function n(e){return e.parentNode.firstChild==e}function r(e){return e.parentNode.lastChild==e}function o(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}function i(e){return e&&"SPAN"===e.nodeName&&"bookmark"===e.getAttribute("data-mce-type")}var a=this;e.on("init",function(){function d(e){function t(t){var r,o,i;o=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],1==o.nodeType&&(r=b.create("span",{"data-mce-type":"bookmark"}),o.hasChildNodes()?(i=Math.min(i,o.childNodes.length-1),t?o.insertBefore(r,o.childNodes[i]):b.insertAfter(r,o.childNodes[i])):o.appendChild(r),o=r,i=0),n[t?"startContainer":"endContainer"]=o,n[t?"startOffset":"endOffset"]=i}var n={};return t(!0),e.collapsed||t(),n}function s(e){function t(t){function n(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,o,i;r=i=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],r&&(1==r.nodeType&&(o=n(r),r=r.parentNode,b.remove(i)),e[t?"startContainer":"endContainer"]=r,e[t?"startOffset":"endOffset"]=o)}t(!0),t();var n=b.createRng();n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),L.setRng(n)}function f(t,n){var r,o,i,a=b.createFragment(),d=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&(o=b.create(n),o.tagName===e.settings.forced_root_block&&b.setAttribs(o,e.settings.forced_root_block_attrs),a.appendChild(o)),t)for(;r=t.firstChild;){var s=r.nodeName;i||"SPAN"==s&&"bookmark"==r.getAttribute("data-mce-type")||(i=!0),d[s]?(a.appendChild(r),o=null):n?(o||(o=b.create(n),a.appendChild(o)),o.appendChild(r)):a.appendChild(r)}return e.settings.forced_root_block?i||tinymce.Env.ie&&!(tinymce.Env.ie>10)||o.appendChild(b.create("br",{"data-mce-bogus":"1"})):a.appendChild(b.create("br")),a}function l(){return tinymce.grep(L.getSelectedBlocks(),function(e){return"LI"==e.nodeName})}function c(e,t,n){var r,o,i=b.select('span[data-mce-type="bookmark"]',e);n=n||f(t),r=b.createRng(),r.setStartAfter(t),r.setEndAfter(e),o=r.extractContents(),b.isEmpty(o)||b.insertAfter(o,e),b.insertAfter(n,e),b.isEmpty(t.parentNode)&&(tinymce.each(i,function(e){t.parentNode.parentNode.insertBefore(e,t.parentNode)}),b.remove(t.parentNode)),b.remove(t)}function p(e){var n,r;if(n=e.nextSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.appendChild(r);b.remove(n)}if(n=e.previousSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.insertBefore(r,e.firstChild);b.remove(n)}}function u(e){tinymce.each(tinymce.grep(b.select("ol,ul",e)),function(e){var n,r=e.parentNode;"LI"==r.nodeName&&r.firstChild==e&&(n=r.previousSibling,n&&"LI"==n.nodeName&&(n.appendChild(e),b.isEmpty(r)&&b.remove(r))),t(r)&&(n=r.previousSibling,n&&"LI"==n.nodeName&&n.appendChild(e))})}function m(e){function o(e){b.isEmpty(e)&&b.remove(e)}var i,a=e.parentNode,d=a.parentNode;return n(e)&&r(e)?("LI"==d.nodeName?(b.insertAfter(e,d),o(d),b.remove(a)):t(d)?b.remove(a,!0):(d.insertBefore(f(e),a),b.remove(a)),!0):n(e)?("LI"==d.nodeName?(b.insertAfter(e,d),e.appendChild(a),o(d)):t(d)?d.insertBefore(e,a):(d.insertBefore(f(e),a),b.remove(e)),!0):r(e)?("LI"==d.nodeName?b.insertAfter(e,d):t(d)?b.insertAfter(e,a):(b.insertAfter(f(e),a),b.remove(e)),!0):("LI"==d.nodeName?(a=d,i=f(e,"LI")):i=t(d)?f(e,"LI"):f(e),c(a,e,i),u(a.parentNode),!0)}function h(e){function n(n,r){var o;if(t(n)){for(;o=e.lastChild.firstChild;)r.appendChild(o);b.remove(n)}}var r,o;return r=e.previousSibling,r&&t(r)?(r.appendChild(e),!0):r&&"LI"==r.nodeName&&t(r.lastChild)?(r.lastChild.appendChild(e),n(e.lastChild,r.lastChild),!0):(r=e.nextSibling,r&&t(r)?(r.insertBefore(e,r.firstChild),!0):r&&"LI"==r.nodeName&&t(e.lastChild)?!1:(r=e.previousSibling,r&&"LI"==r.nodeName?(o=b.create(e.parentNode.nodeName),r.appendChild(o),o.appendChild(e),n(e.lastChild,o),!0):!1))}function v(){var t=l();if(t.length){for(var n=d(L.getRng(!0)),r=0;r0))return n;for(var o=new tinymce.dom.TreeWalker(e.startContainer);n=o[t?"next":"prev"]();)if(3==n.nodeType&&n.data.length>0)return n}function r(e,n){var r,o,i=e.parentNode;for(t(n.lastChild)&&(o=n.lastChild),r=n.lastChild,r&&"BR"==r.nodeName&&e.hasChildNodes()&&b.remove(r);r=e.firstChild;)n.appendChild(r);o&&n.appendChild(o),b.remove(e),b.isEmpty(i)&&b.remove(i)}if(L.isCollapsed()){var o=b.getParent(L.getStart(),"LI");if(o){var i=L.getRng(!0),a=b.getParent(n(i,e),"LI");if(a&&a!=o){var f=d(i);return e?r(a,o):r(o,a),s(f),!0}if(!a&&!e&&N(o.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return v()?void 0:!0}),e.addCommand("Outdent",function(){return C()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){y("UL")}),e.addCommand("InsertOrderedList",function(){y("OL")}),e.on("keydown",function(t){9==t.keyCode&&e.dom.getParent(e.selection.getStart(),"LI")&&(t.preventDefault(),t.shiftKey?C():v())})}),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var t=this;e.on("nodechange",function(){var r=e.dom.getParent(e.selection.getNode(),"LI,UL,OL");t.disabled(r&&("LI"!=r.nodeName||n(r)))})}}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?a.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&a.backspaceDelete(!0)&&e.preventDefault()})});tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r':"application/x-shockwave-flash"==o.source1mime?(a+='',o.poster&&(a+=''),a+=""):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='":"script"==o.type?a+='':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'"}return a}function s(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function n(t){return t.getAttribute("data-mce-object")?s(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,s,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(s,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(s,{poster:t.poster,src:""}),t.source2&&r(s,{src:""});break;case"iframe":r(s,{src:t.source1});break;case"source":if(c++,2>=c&&(r(s,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,s,n)},end:function(e){if("video"==e&&i)for(var s=1;2>=s;s++)if(t["source"+s]){var n=[];n.map={},s>c&&(r(n,{src:t["source"+s],type:t["source"+s+"mime"]}),a.start("source",n,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var d=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("]*>","gi")}),e.schema.addValidElements("object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]");var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,s,n,m,d,u,l=t.length;l--;)if(a=t[l],"script"!=a.name||(u=r(a.attr("src")))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,u&&(u.width&&a.attr("width",u.width.toString()),u.height&&a.attr("height",u.height.toString())),m=a.attributes,o=m.length;o--;)s=m[o].name,n=m[o].value,"width"!==s&&"height"!==s&&"style"!==s&&(("data"==s||"src"==s)&&(n=e.convertURL(n,s)),c.attr("data-mce-p-"+s,n));d=a.firstChild&&a.firstChild.value,d&&(c.attr("data-mce-html",escape(d)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,s,n,m=e.length;m--;){for(i=e[m],n=i.attr(t),r=new tinymce.html.Node(n,1),"audio"!=n&&"script"!=n&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var d=a[o].name;0===d.indexOf("data-mce-p-")&&r.attr(d.substr(11),a[o].value)}"script"==n&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(c),r.append(s)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})});tinymce.PluginManager.add("nonbreaking",function(n){var e=n.getParam("nonbreaking_force_tab");if(n.addCommand("mceNonBreaking",function(){n.insertContent(n.plugins.visualchars&&n.plugins.visualchars.state?' ':" "),n.dom.setAttrib(n.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),n.addButton("nonbreaking",{title:"Insert nonbreaking space",cmd:"mceNonBreaking"}),n.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),e){var a=+e>1?+e:3;n.on("keydown",function(e){if(9==e.keyCode){if(e.shiftKey)return;e.preventDefault();for(var t=0;a>t;t++)n.execCommand("mceNonBreaking")}})}});tinymce.PluginManager.add("noneditable",function(e){function t(e){var t;if(1===e.nodeType){if(t=e.getAttribute(u),t&&"inherit"!==t)return t;if(t=e.contentEditable,"inherit"!==t)return t}return null}function n(e){for(var n;e;){if(n=t(e))return"false"===n?e:null;e=e.parentNode}}function r(){function r(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function a(e){var t;if(e)for(t=new f(e,e),e=t.current();e;e=t.next())if(3===e.nodeType)return e}function i(n,r){var a,i;return"false"===t(n)&&u.isBlock(n)?void s.select(n):(i=u.createRng(),"true"===t(n)&&(n.firstChild||n.appendChild(e.getDoc().createTextNode(" ")),n=n.firstChild,r=!0),a=u.create("span",{id:g,"data-mce-bogus":!0},m),r?n.parentNode.insertBefore(a,n):u.insertAfter(a,n),i.setStart(a.firstChild,1),i.collapse(!0),s.setRng(i),a)}function o(e){var t,n,i,o;if(e)t=s.getRng(!0),t.setStartBefore(e),t.setEndBefore(e),n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0),s.setRng(t);else for(i=r(s.getStart());(e=u.get(g))&&e!==o;)i!==e&&(n=a(e),n&&n.nodeValue.charAt(0)==m&&(n=n.deleteData(0,1)),u.remove(e,!0)),o=e}function l(){function e(e,n){var r,a,i,o,l;if(r=d.startContainer,a=d.startOffset,3==r.nodeType){if(l=r.nodeValue.length,a>0&&l>a||(n?a==l:0===a))return}else{if(!(a0?a-1:a;r=r.childNodes[u],r.hasChildNodes()&&(r=r.firstChild)}for(i=new f(r,e);o=i[n?"prev":"next"]();){if(3===o.nodeType&&o.nodeValue.length>0)return;if("true"===t(o))return o}return e}var r,a,l,d,u;o(),l=s.isCollapsed(),r=n(s.getStart()),a=n(s.getEnd()),(r||a)&&(d=s.getRng(!0),l?(r=r||a,(u=e(r,!0))?i(u,!0):(u=e(r,!1))?i(u,!1):s.select(r)):(d=s.getRng(!0),r&&d.setStartBefore(r),a&&d.setEndAfter(a),s.setRng(d)))}function d(a){function i(e,t){for(;e=e[t?"previousSibling":"nextSibling"];)if(3!==e.nodeType||e.nodeValue.length>0)return e}function d(e,t){s.select(e),s.collapse(t)}function g(a){function i(e){for(var t=d;t;){if(t===e)return;t=t.parentNode}u.remove(e),l()}function o(){var r,o,l=e.schema.getNonEmptyElements();for(o=new tinymce.dom.TreeWalker(d,e.getBody());(r=a?o.prev():o.next())&&!l[r.nodeName.toLowerCase()]&&!(3===r.nodeType&&tinymce.trim(r.nodeValue).length>0);)if("false"===t(r))return i(r),!0;return n(r)?!0:!1}var f,d,c,g;if(s.isCollapsed()){if(f=s.getRng(!0),d=f.startContainer,c=f.startOffset,d=r(d)||d,g=n(d))return i(g),!1;if(3==d.nodeType&&(a?c>0:ch||h>124)&&h!=c.DELETE&&h!=c.BACKSPACE){if((tinymce.isMac?a.metaKey:a.ctrlKey)&&(67==h||88==h||86==h))return;if(a.preventDefault(),h==c.LEFT||h==c.RIGHT){var y=h==c.LEFT;if(e.dom.isBlock(m)){var T=y?m.previousSibling:m.nextSibling,C=new f(T,T),b=y?C.prev():C.next();d(b,!y)}else d(m,y)}}else if(h==c.LEFT||h==c.RIGHT||h==c.BACKSPACE||h==c.DELETE){if(p=r(v)){if(h==c.LEFT||h==c.BACKSPACE)if(m=i(p,!0),m&&"false"===t(m)){if(a.preventDefault(),h!=c.LEFT)return void u.remove(m);d(m,!0)}else o(p);if(h==c.RIGHT||h==c.DELETE)if(m=i(p),m&&"false"===t(m)){if(a.preventDefault(),h!=c.RIGHT)return void u.remove(m);d(m,!1)}else o(p)}if((h==c.BACKSPACE||h==c.DELETE)&&!g(h==c.BACKSPACE))return a.preventDefault(),!1}}var u=e.dom,s=e.selection,g="mce_noneditablecaret",m="";e.on("mousedown",function(n){var r=e.selection.getNode();"false"===t(r)&&r==n.target&&l()}),e.on("mouseup keyup",l),e.on("keydown",d)}function a(t){var n=l.length,r=t.content,a=tinymce.trim(o);if("raw"!=t.format){for(;n--;)r=r.replace(l[n],function(t){var n=arguments,i=n[n.length-2];return i>0&&'"'==r.charAt(i-1)?t:''+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+""});t.content=r}}var i,o,l,f=tinymce.dom.TreeWalker,d="contenteditable",u="data-mce-"+d,c=tinymce.util.VK;i=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",o=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",l=e.getParam("noneditable_regexp"),l&&!l.length&&(l=[l]),e.on("PreInit",function(){r(),l&&e.on("BeforeSetContent",a),e.parser.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=e[r],t=" "+n.attr("class")+" ",-1!==t.indexOf(i)?n.attr(u,"true"):-1!==t.indexOf(o)&&n.attr(u,"false")}),e.serializer.addAttributeFilter(u,function(e){for(var t,n=e.length;n--;)t=e[n],l&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):(t.attr(d,null),t.attr(u,null))}),e.parser.addAttributeFilter(d,function(e){for(var t,n=e.length;n--;)t=e[n],t.attr(u,t.attr(d)),t.attr(d,null)})}),e.on("drop",function(e){n(e.target)&&e.preventDefault()})});tinymce.PluginManager.add("pagebreak",function(e){var a="mce-pagebreak",t=e.getParam("pagebreak_separator",""),n=new RegExp(t.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),r='';e.addCommand("mcePageBreak",function(){e.insertContent(e.settings.pagebreak_split_block?"

"+r+"

":r)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(t){"IMG"==t.target.nodeName&&e.dom.hasClass(t.target,a)&&(t.name="pagebreak")}),e.on("click",function(t){t=t.target,"IMG"===t.nodeName&&e.dom.hasClass(t,a)&&e.selection.select(t)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(n,r)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(a){for(var n,r,c=a.length;c--;)if(n=a[c],r=n.attr("class"),r&&-1!==r.indexOf("mce-pagebreak")){var o=n.parent;if(e.schema.getBlockElements()[o.name]&&e.settings.pagebreak_split_block){o.type=3,o.value=t,o.raw=!0,n.remove();continue}n.type=3,n.value=t,n.raw=!0}})})});!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"
"]]):(e=n.filter(e,[[/\n\n/g,"

"+a],[/^(.*<\/p>)(

)$/,a+"$1"],[/\n/g,"
"]]),-1!=e.indexOf("

")&&(e=a+e)),i(e)}function a(){var t=r.dom,n=r.getBody(),i=r.dom.getViewPort(r.getWin()),o=i.y,a=20,s;if(v=r.selection.getRng(),r.inline&&(s=r.selection.getScrollContainer(),s&&(o=s.scrollTop)),v.getClientRects){var l=v.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=v.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}g=t.add(r.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},b),(e.ie||e.gecko)&&t.setStyle(g,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(g,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),g.focus(),r.selection.select(g,!0)}function s(){if(g){for(var e;e=r.dom.get("mcepastebin");)r.dom.remove(e),r.dom.unbind(e);v&&r.selection.setRng(v)}C=!1,g=v=null}function l(){var e=b,t,n;for(t=r.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var i=t[n].innerHTML;e==b&&(e=""),i.length>e.length&&(e=i)}return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var r=0;r')},t.readAsDataURL(e.getAsFile()),!0}}if(!(!r.settings.paste_data_images||"text/html"in t||"text/plain"in t)&&e.clipboardData){var o=e.clipboardData.items;if(o)for(var a=0;a0}function m(){r.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(C=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),y=(new Date).getTime(),e.ie&&C)return n.preventDefault(),void r.fire("paste",{ieFake:!0});s(),a()}}),r.on("paste",function(t){var c=d(t),f=(new Date).getTime()-y<1e3,m="text"==h.pasteFormat||C;return t.isDefaultPrevented()?void s():u(t,c)?void s():(f||t.preventDefault(),!e.ie||f&&!t.ieFake||(a(),r.dom.bind(g,"paste",function(e){e.stopPropagation()}),r.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return g&&g.firstChild&&"mcepastebin"===g.firstChild.id&&(m=!0),s(),!m&&f&&e&&e!=b&&(c["text/html"]=e),e!=b&&f||(e=c["text/html"]||c["text/plain"]||b,e!=b)?(!p(c,"text/html")&&p(c,"text/plain")&&(m=!0),void(m?o(c["text/plain"]||n.innerText(e)):i(e))):void(f||r.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),r.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",r.selection.getContent())}catch(t){}}),r.on("drop",function(e){var t=f(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),r.undoManager.transact(function(){n["mce-internal"]&&r.execCommand("Delete"),r.selection.setRng(t),n["text/html"]?i(a):o(a)}))}})}var h=this,g,v,y=0,b="%MCEPASTEBIN%",C;h.pasteHtml=i,h.pasteText=o,r.on("preInit",function(){m(),r.parser.addNodeFilter("img",function(t){if(!r.settings.paste_data_images)for(var n=t.length;n--;){var i=t[n].attributes.map.src;i&&0===i.indexOf("data:image")&&(t[n].attr("data-mce-object")||i===e.transparentSrc||t[n].remove())}})}),r.on("PreProcess",function(){r.dom.remove(r.dom.get("mcepastebin"))})}}),r(h,[c,d,u,g,v,l],function(e,t,n,r,i,o){function a(e){return/l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new i(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&r&&r.lastChild.append(n),o=l}for(var n,r,o=1,a=e.getAll("p"),s=0;s/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=l.paste_word_valid_elements;h||(h="@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br");var g=new n({valid_elements:h}),v=new t({},g);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",u(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,r,i;t--;)n=e[t],r=n.attr("href"),i=n.attr("name"),r&&0===r.indexOf("file://")&&(r=r.split("#")[1],r&&(r="#"+r)),r||i?n.attr({href:r,name:i}):n.unwrap()});var y=v.parse(f);d(y),c.content=new r({},g).serialize(y)}})}return s.isWordContent=a,s}),r(y,[p,c,h,l],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=r.filter(e,[/^[\s\S]*|[\s\S]*$/g,[/\u00a0<\/span>/g,"\xa0"],/
$/i])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:
 [\\s\\r\\n]+|
)*(<\\/?("+o.join("|")+")[^>]*>)(?:
 [\\s\\r\\n]+|
)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/

/g,"

"],[/
/g," "],[/

/g,"
"]])}function l(e){if(n.isWordContent(e))return e;var t=i.getParam("paste_webkit_styles","color font-size font-family background-color").split(/[, ]/);if(i.settings.paste_remove_styles_if_webkit===!1&&(t="all"),"all"!=t){var r=i.dom,o=i.selection.getNode();e=e.replace(/ style=\"([^\"]+)\"/gi,function(e,n){var i=r.parseStyle(n,"span"),a={};if("none"===t)return"";for(var s=0;s0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,h,y,b])}(this);tinymce.PluginManager.add("preview",function(e){var t=e.settings;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'',buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var i,n=this.getEl("body").firstChild.contentWindow.document,a="";e.settings.document_base_url!=e.documentBaseUrl&&(a+=''),tinymce.each(e.contentCSS,function(t){a+=''});var r=t.body_id||"tinymce";-1!=r.indexOf("=")&&(r=e.getParam("body_id","","hash"),r=r[e.id]||r);var d=t.body_class||"";-1!=d.indexOf("=")&&(d=e.getParam("body_class","","hash"),d=d[e.id]||"");var o=e.settings.directionality?' dir="'+e.settings.directionality+'"':"";i=""+a+'"+e.getContent()+"",n.open(),n.write(i),n.close()}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});tinymce.PluginManager.add("print",function(t){t.addCommand("mcePrint",function(){t.getWin().print()}),t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addShortcut("Ctrl+P","","mcePrint"),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});tinymce.PluginManager.add("save",function(e){function a(){var a;return a=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty()?(tinymce.triggerSave(),e.getParam("save_onsavecallback")?void(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged())):void(a?(e.isNotDirty=!0,(!a.onsubmit||a.onsubmit())&&("function"==typeof a.submit?a.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."))):void 0}function n(){var a=tinymce.trim(e.startContent);return e.getParam("save_oncancelcallback")?void e.execCallback("save_oncancelcallback",e):(e.setContent(a),e.undoManager.clear(),void e.nodeChanged())}function t(){var a=this;e.on("nodeChange",function(){a.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",a),e.addCommand("mceCancel",n),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:t}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:t}),e.addShortcut("ctrl+s","","mceSave")});!function(){function e(e,t,n,a,r){function i(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var a=e[t];if(!a)throw"Invalid capture group";n+=e[0].indexOf(a),e[0]=a}return[n,n+e[0].length,[e[0]]]}function d(e){var t;if(3===e.nodeType)return e.data;if(h[e.nodeName]&&!u[e.nodeName])return"";if(t="",(u[e.nodeName]||m[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=d(e);while(e=e.nextSibling);return t}function o(e,t,n){var a,r,i,d,o=[],l=0,c=e,s=t.shift(),f=0;e:for(;;){if((u[c.nodeName]||m[c.nodeName])&&l++,3===c.nodeType&&(!r&&c.length+l>=s[1]?(r=c,d=s[1]-l):a&&o.push(c),!a&&c.length+l>s[0]&&(a=c,i=s[0]-l),l+=c.length),a&&r){if(c=n({startNode:a,startNodeIndex:i,endNode:r,endNodeIndex:d,innerNodes:o,match:s[2],matchIndex:f}),l-=r.length-d,a=null,r=null,o=[],s=t.shift(),f++,!s)break}else{if((!h[c.nodeName]||u[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function l(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var a=n.cloneNode(!1);return a.setAttribute("data-mce-index",t),e&&a.appendChild(f.createTextNode(e)),a}}else t=e;return function(e){var n,a,r,i=e.startNode,d=e.endNode,o=e.matchIndex;if(i===d){var l=i;r=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),r.insertBefore(n,l));var c=t(e.match[0],o);return r.insertBefore(c,l),e.endNodeIndexh;++h){var g=e.innerNodes[h],p=t(g.data,o);g.parentNode.replaceChild(p,g),u.push(p)}var x=t(d.data.substring(0,e.endNodeIndex),o);return r=i.parentNode,r.insertBefore(n,i),r.insertBefore(s,i),r.removeChild(i),r=d.parentNode,r.insertBefore(x,d),r.insertBefore(a,d),r.removeChild(d),x}}var c,s,f,u,h,m,g=[],p=0;if(f=t.ownerDocument,u=r.getBlockElements(),h=r.getWhiteSpaceElements(),m=r.getShortEndedElements(),s=d(t)){if(e.global)for(;c=e.exec(s);)g.push(i(c,a));else c=s.match(e),g.push(i(c,a));return g.length&&(p=g.length,o(t,g,l(n))),p}}function t(t){function n(){function e(){r.statusbar.find("#next").disabled(!d(s+1).length),r.statusbar.find("#prev").disabled(!d(s-1).length)}function n(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){r.find("#find")[0].focus()})}var a={},r=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus(),c.done()},onSubmit:function(t){var i,o,l,f;return t.preventDefault(),o=r.find("#case").checked(),f=r.find("#words").checked(),l=r.find("#find").value(),l.length?a.text==l&&a.caseState==o&&a.wholeWord==f?0===d(s+1).length?void n():(c.next(),void e()):(i=c.find(l,o,f),i||n(),r.statusbar.items().slice(1).disabled(0===i),e(),void(a={text:l,caseState:o,wholeWord:f})):(c.done(!1),void r.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",onclick:function(){r.submit()}},{text:"Replace",disabled:!0,onclick:function(){c.replace(r.find("#replace").value())||(r.statusbar.items().slice(1).disabled(!0),s=-1,a={})}},{text:"Replace all",disabled:!0,onclick:function(){c.replace(r.find("#replace").value(),!0,!0),r.statusbar.items().slice(1).disabled(!0),a={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){c.prev(),e()}},{text:"Next",name:"next",disabled:!0,onclick:function(){c.next(),e()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function a(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function r(n){var a,r;return r=t.dom.create("span",{"data-mce-bogus":1}),r.className="mce-match-marker",a=t.getBody(),c.done(!1),e(n,a,r,!1,t.schema)}function i(e){var t=e.parentNode;e.firstChild&&t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function d(e){var n,r=[];if(n=tinymce.toArray(t.getBody().getElementsByTagName("span")),n.length)for(var i=0;is&&f[o].setAttribute("data-mce-index",m-1)}return t.undoManager.add(),s=p,n?(g=d(p+1).length>0,c.next()):(g=d(p-1).length>0,c.prev()),!r&&g},c.done=function(e){var n,r,d,o;for(r=tinymce.toArray(t.getBody().getElementsByTagName("span")),n=0;n=d.end?(r=c,a=d.end-s):o&&l.push(c),!o&&c.length+s>d.start&&(o=c,i=d.start-s),s+=c.length),o&&r){if(c=n({startNode:o,startNodeIndex:i,endNode:r,endNodeIndex:a,innerNodes:l,match:d.text,matchIndex:u}),s-=r.length-a,o=null,r=null,l=[],d=t.shift(),u++,!d)break}else{if((!S[c.nodeName]||N[c.nodeName])&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function i(e){function t(t,n){var o=w[n];o.stencil||(o.stencil=e(o));var r=o.stencil.cloneNode(!1);return r.setAttribute("data-mce-index",n),t&&r.appendChild(P.doc.createTextNode(t)),r}return function(e){var n,o,r,i=e.startNode,a=e.endNode,l=e.matchIndex,s=P.doc;if(i===a){var c=i;r=c.parentNode,e.startNodeIndex>0&&(n=s.createTextNode(c.data.substring(0,e.startNodeIndex)),r.insertBefore(n,c));var d=t(e.match,l);return r.insertBefore(d,c),e.endNodeIndexm;++m){var g=e.innerNodes[m],h=t(g.data,l);g.parentNode.replaceChild(h,g),f.push(h)}var v=t(a.data.substring(0,e.endNodeIndex),l);return r=i.parentNode,r.insertBefore(n,i),r.insertBefore(u,i),r.removeChild(i),r=a.parentNode,r.insertBefore(v,a),r.insertBefore(o,a),r.removeChild(a),v}}function a(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function l(t){var n=e.getElementsByTagName("*"),o=[];t="number"==typeof t?""+t:null;for(var r=0;rt&&e(w[t],t)!==!1;t++);return this}function u(t){return w.length&&r(e,w,i(t)),this}function f(e,t){if(C&&e.global)for(;x=e.exec(C);)w.push(n(x,t));return this}function m(e){var t,n=l(e?s(e):null);for(t=n.length;t--;)a(n[t]);return this}function p(e){return w[e.getAttribute("data-mce-index")]}function g(e){return l(s(e))[0]}function h(e,t,n){return w.push({start:e,end:e+t,text:C.substr(e,t),data:n}),this}function v(e){var n=l(s(e)),o=t.dom.createRng();return o.setStartBefore(n[0]),o.setEndAfter(n[n.length-1]),o}function b(e,n){var o=v(e);return o.deleteContents(),n.length>0&&o.insertNode(t.dom.doc.createTextNode(n)),o}function y(){return w.splice(0,w.length),m(),this}var x,w=[],C,P=t.dom,N,S,k;return N=t.schema.getBlockElements(),S=t.schema.getWhiteSpaceElements(),k=t.schema.getShortEndedElements(),C=o(e),{text:C,matches:w,each:d,filter:c,reset:y,matchFromElement:p,elementFromMatch:g,find:f,add:h,wrap:u,unwrap:m,replace:b,rangeFromMatch:v,indexOf:s}}}),o(c,[s,d,u,f,m,p,g],function(e,t,n,o,r,i,a){t.add("spellchecker",function(t,l){function s(){return b.textMatcher||(b.textMatcher=new e(t.getBody(),t)),b.textMatcher}function c(e,t){var o=[];return n.each(t,function(e){o.push({selectable:!0,text:e.name,data:e.value})}),o}function d(e){for(var t in e)return!1;return!0}function u(e){var i=[],a=y[e.text];n.each(a,function(n){i.push({text:n,onclick:function(){var o=s().replace(e,n);o.collapse(!1),t.selection.setRng(o),m()}})}),i.push.apply(i,[{text:"-"},{text:"Ignore",onclick:function(){p(e)}},{text:"Ignore all",onclick:function(){p(e,!0)}},{text:"Finish",onclick:g}]),w=new o({items:i,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){w.remove(),w=null}}),w.renderTo(document.body);var l=s().elementFromMatch(e),c=r.DOM.getPos(t.getContentAreaContainer()),d=t.dom.getPos(l),u=t.dom.getRoot();"BODY"==u.nodeName?(d.x-=u.ownerDocument.documentElement.scrollLeft||u.scrollLeft,d.y-=u.ownerDocument.documentElement.scrollTop||u.scrollTop):(d.x-=u.scrollLeft,d.y-=u.scrollTop),c.x+=d.x,c.y+=d.y,w.moveTo(c.x,c.y+l.offsetHeight)}function f(){function e(e){return t.setProgressState(!1),d(e)?(t.windowManager.alert("No misspellings found"),void(x=!1)):(y=e,s().filter(function(t){return!!e[t.text]}).wrap(function(){return t.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1})}),void t.fire("SpellcheckStart"))}function n(e,n,o){i.sendRPC({url:new a(l).toAbsolute(C.spellchecker_rpc_url),method:e,params:{lang:C.spellchecker_language||"en",words:n},success:function(e){o(e)},error:function(e,n){e="JSON Parse error."==e?"Non JSON response:"+n.responseText:"Error: "+e,t.windowManager.alert(e),t.setProgressState(!1),g()}})}var o=[],r={};if(x)return void g();g(),x=!0;var c=t.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e]+',"g");s().find(c).each(function(e){var t=e.text;if(!r[t]){if(/^\d+$/.test(t)||1==t.length)return;o.push(t),r[t]=!0}}),t.setProgressState(!0);var u=C.spellchecker_callback||n;u("spellcheck",o,e),t.focus()}function m(){t.dom.select("span.mce-spellchecker-word").length||g()}function p(e,n){t.selection.collapse(),n?s().each(function(t){t.text==e.text&&s().unwrap(t)}):s().unwrap(e),m()}function g(){s().reset(),b.textMatcher=null,x&&(x=!1,t.fire("SpellcheckEnd"))}function h(e){var t=C.spellchecker_language;e.control.items().each(function(e){e.active(e.settings.data===t)})}var v,b=this,y,x,w,C=t.settings,P=C.spellchecker_languages||"English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv";v=c("Language",n.map(P.split(","),function(e){var t=e.split("=");return{name:t[0],value:t[1]}})),t.on("click",function(e){if("mce-spellchecker-word"==e.target.className){e.preventDefault();var n=s().matchFromElement(e.target);t.selection.setRng(s().rangeFromMatch(n)),u(n)}}),t.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:f,selectable:!0,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(x)})}});var N={tooltip:"Spellcheck",onclick:f,onPostRender:function(){var e=this;t.on("SpellcheckStart SpellcheckEnd",function(){e.active(x)})}};v.length>1&&(N.type="splitbutton",N.menu=v,N.onshow=h,N.onselect=function(e){C.spellchecker_language=e.control.settings.data}),t.addButton("spellchecker",N),t.addCommand("mceSpellCheck",f),t.on("remove",function(){w&&(w.remove(),w=null)}),this.getTextMatcher=s,C.spellchecker_language=C.spellchecker_language||C.language||"en"})}),a([s,c])}(this);tinymce.PluginManager.add("tabfocus",function(e){function n(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function t(n){function t(n){function t(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&t(e.parentNode)}function r(e){return e.tabIndex||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function c(e){return!r(e)&&"-1"!=e.getAttribute("tabindex")&&t(e)}if(u=i.select(":input:enabled,*[tabindex]:not(iframe)"),o(u,function(n,t){return n.id==e.id?(a=t,!1):void 0}),n>0){for(d=a+1;d=0;d--)if(c(u[d]))return u[d];return null}var a,u,c,d;if(!(9!==n.keyCode||n.ctrlKey||n.altKey||n.metaKey)&&(c=r(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==c.length&&(c[1]=c[0],c[0]=":prev"),u=n.shiftKey?":prev"==c[0]?t(-1):i.get(c[0]):":next"==c[1]?t(1):i.get(c[1]))){var y=tinymce.get(u.id||u.name);u.id&&y?y.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),u.focus()},10),n.preventDefault()}}var i=tinymce.DOM,o=tinymce.each,r=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}),e.on("keyup",n),tinymce.Env.gecko?e.on("keypress keydown",t):e.on("keydown",t)});!function(e,t){"use strict";function n(e,t){for(var n,o=[],i=0;i "+t+" tr",a);i(n,function(n,r){r+=e,i(I.select("> td, > th",n),function(e,n){var i,a,l,s;if(A[r])for(;A[r][n];)n++;for(l=o(e,"rowspan"),s=o(e,"colspan"),a=r;r+l>a;a++)for(A[a]||(A[a]=[]),i=n;n+s>i;i++)A[a][i]={part:t,real:a==r&&i==n,elm:e,rowspan:l,colspan:s}})}),e+=n.length})}function s(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function c(e,t){var n;return n=A[t],n?n[e]:void 0}function d(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(I.hasClass(e.elm,"mce-item-selected")||e==M)}function f(){var e=[];return i(a.rows,function(t){i(t.cells,function(n){return I.hasClass(n,"mce-item-selected")||M&&n==M.elm?(e.push(t),!1):void 0})}),e}function m(){var e=I.createRng();e.setStartAfter(a),e.setEndAfter(a),E.setRng(e),I.remove(a)}function p(t){var o,a={};return r.settings.table_clone_elements!==!1&&(a=e.makeMap((r.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var r;return 3==e.nodeType?(i(I.getParents(e.parentNode,null,t).reverse(),function(e){a[e.nodeName]&&(e=s(e,!1),o?r&&r.appendChild(e):o=r=e,r=e)}),r&&(r.innerHTML=n.ie?" ":'
'),!1):void 0},"childNodes"),t=s(t,!1),d(t,"rowSpan",1),d(t,"colSpan",1),o?t.appendChild(o):n.ie||(t.innerHTML='
'),t}function g(){var e=I.createRng(),t;return i(I.select("tr",a),function(e){0===e.cells.length&&I.remove(e)}),0===I.select("tr",a).length?(e.setStartBefore(a),e.setEndBefore(a),E.setRng(e),void I.remove(a)):(i(I.select("thead,tbody,tfoot",a),function(e){0===e.rows.length&&I.remove(e)}),l(),void(B&&(t=A[Math.min(A.length-1,B.y)],t&&(E.select(t[Math.min(t.length-1,B.x)].elm,!0),E.collapse(!0)))))}function h(e,t,n,o){var i,r,a,l,s;for(i=A[t][e].elm.parentNode,a=1;n>=a;a++)if(i=I.getNext(i,"tr")){for(r=e;r>=0;r--)if(s=A[t+a][r].elm,s.parentNode==i){for(l=1;o>=l;l++)I.insertAfter(p(s),s);break}if(-1==r)for(l=1;o>=l;l++)i.insertBefore(p(i.cells[0]),i.cells[0])}}function b(){i(A,function(e,t){i(e,function(e,n){var i,r,a;if(u(e)&&(e=e.elm,i=o(e,"colspan"),r=o(e,"rowspan"),i>1||r>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),a=0;i-1>a;a++)I.insertAfter(p(e),e);h(n,t,r-1,i)}})})}function v(t,n,o){var r,a,s,f,m,p,h,v,y,w,x;if(t?(r=T(t),a=r.x,s=r.y,f=a+(n-1),m=s+(o-1)):(B=D=null,i(A,function(e,t){i(e,function(e,n){u(e)&&(B||(B={x:n,y:t}),D={x:n,y:t})})}),B&&(a=B.x,s=B.y,f=D.x,m=D.y)),v=c(a,s),y=c(f,m),v&&y&&v.part==y.part){for(b(),l(),v=c(a,s).elm,d(v,"colSpan",f-a+1),d(v,"rowSpan",m-s+1),h=s;m>=h;h++)for(p=a;f>=p;p++)A[h]&&A[h][p]&&(t=A[h][p].elm,t!=v&&(w=e.grep(t.childNodes),i(w,function(e){v.appendChild(e)}),w.length&&(w=e.grep(v.childNodes),x=0,i(w,function(e){"BR"==e.nodeName&&I.getAttrib(e,"data-mce-bogus")&&x++0&&A[n-1][l]&&(g=A[n-1][l].elm,h=o(g,"rowSpan"),h>1)){d(g,"rowSpan",h+1);continue}}else if(h=o(r,"rowspan"),h>1){d(r,"rowSpan",h+1);continue}m=p(r),d(m,"colSpan",r.colSpan),f.appendChild(m),a=r}f.hasChildNodes()&&(e?c.parentNode.insertBefore(f,c):I.insertAfter(f,c))}}function w(e){var t,n;i(A,function(n){return i(n,function(n,o){return u(n)&&(t=o,e)?!1:void 0}),e?!t:void 0}),i(A,function(i,r){var a,l,s;i[t]&&(a=i[t].elm,a!=n&&(s=o(a,"colspan"),l=o(a,"rowspan"),1==s?e?(a.parentNode.insertBefore(p(a),a),h(t,r,l-1,s)):(I.insertAfter(p(a),a),h(t,r,l-1,s)):d(a,"colSpan",a.colSpan+1),n=a))})}function x(){var t=[];i(A,function(n){i(n,function(n,r){u(n)&&-1===e.inArray(t,r)&&(i(A,function(e){var t=e[r].elm,n;n=o(t,"colSpan"),n>1?d(t,"colSpan",n-1):I.remove(t)}),t.push(r))})}),g()}function C(){function e(e){var t,n,r;t=I.getNext(e,"tr"),i(e.cells,function(e){var t=o(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),n=T(e),h(n.x,n.y,1,1))}),n=T(e.cells[0]),i(A[n.y],function(e){var t;e=e.elm,e!=r&&(t=o(e,"rowSpan"),1>=t?I.remove(e):d(e,"rowSpan",t-1),r=e)})}var t;t=f(),i(t.reverse(),function(t){e(t)}),g()}function P(){var e=f();return I.remove(e),g(),e}function R(){var e=f();return i(e,function(t,n){e[n]=s(t,!0)}),e}function S(e,t){var n=f(),o=n[t?0:n.length-1],r=o.cells.length;e&&(i(A,function(e){var t;return r=0,i(e,function(e){e.real&&(r+=e.colspan),e.elm.parentNode==o&&(t=1)}),t?!1:void 0}),t||e.reverse(),i(e,function(e){var n,i=e.cells.length,a;for(n=0;i>n;n++)a=e.cells[n],d(a,"colSpan",1),d(a,"rowSpan",1);for(n=i;r>n;n++)e.appendChild(p(e.cells[i-1]));for(n=r;i>n;n++)I.remove(e.cells[n]);t?o.parentNode.insertBefore(e,o):I.insertAfter(e,o)}),I.removeClass(I.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function T(e){var t;return i(A,function(n,o){return i(n,function(n,i){return n.elm==e?(t={x:i,y:o},!1):void 0}),!t}),t}function k(e){B=T(e)}function N(){var e,t;return e=t=0,i(A,function(n,o){i(n,function(n,i){var r,a;u(n)&&(n=A[o][i],i>e&&(e=i),o>t&&(t=o),n.real&&(r=n.colspan-1,a=n.rowspan-1,r&&i+r>e&&(e=i+r),a&&o+a>t&&(t=o+a)))})}),{x:e,y:t}}function _(e){var t,n,o,i,r,a,l,s,c,d;if(D=T(e),B&&D){for(t=Math.min(B.x,D.x),n=Math.min(B.y,D.y),o=Math.max(B.x,D.x),i=Math.max(B.y,D.y),r=o,a=i,d=n;a>=d;d++)e=A[d][t],e.real||t-(e.colspan-1)=c;c++)e=A[n][c],e.real||n-(e.rowspan-1)=d;d++)for(c=t;o>=c;c++)e=A[d][c],e.real&&(l=e.colspan-1,s=e.rowspan-1,l&&c+l>r&&(r=c+l),s&&d+s>a&&(a=d+s));for(I.removeClass(I.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;a>=d;d++)for(c=t;r>=c;c++)A[d][c]&&I.addClass(A[d][c].elm,"mce-item-selected")}}var A,B,D,M,E=r.selection,I=E.dom;a=a||I.getParent(E.getStart(),"table"),l(),M=I.getParent(E.getStart(),"th,td"),M&&(B=T(M),D=N(),M=c(B.x,B.y)),e.extend(this,{deleteTable:m,split:b,merge:v,insertRow:y,insertCol:w,deleteCols:x,deleteRows:C,cutRows:P,copyRows:R,pasteRows:S,getPos:T,setStartCell:k,setEndCell:_})}}),o(u,[f,d,c],function(e,t,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=n.each;return function(n){function r(){function t(t){function r(e,o){var i=e?"previousSibling":"nextSibling",r=n.dom.getParent(o,"tr"),l=r[i];if(l)return h(n,o,l,e),t.preventDefault(),!0;var d=n.dom.getParent(r,"table"),u=r.parentNode,f=u.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var m=a(e,d,u,"tbody");if(null!==m)return s(e,m,o)}return c(e,r,i,d)}function a(e,t,o,i){var r=n.dom.select(">"+i,t),a=r.indexOf(o);if(e&&0===a||!e&&a===r.length-1)return l(e,t);if(-1===a){var s="thead"===o.tagName.toLowerCase()?0:r.length-1;return r[s]}return r[a+(e?-1:1)]}function l(e,t){var o=e?"thead":"tfoot",i=n.dom.select(">"+o,t);return 0!==i.length?i[0]:null}function s(e,o,i){var r=d(o,e);return r&&h(n,i,r,e),t.preventDefault(),!0}function c(e,o,i,a){var l=a[i];if(l)return u(l),!0;var s=n.dom.getParent(a,"td,th");if(s)return r(e,s,t);var c=d(o,!e);return u(c),t.preventDefault(),!1}function d(e,t){var o=e&&e[t?"lastChild":"firstChild"];return o&&"BR"===o.nodeName?n.dom.getParent(o,"td,th"):o}function u(e){n.selection.setCursorLocation(e,0)}function f(){return y==e.UP||y==e.DOWN}function m(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function p(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=o(n,"colspan");return t}function g(e,t){var n=0,r=0;return i(e.children,function(e,i){return n+=o(e,"colspan"),r=i,n>t?!1:void 0}),r}function h(e,t,o,i){var r=p(n.dom.getParent(t,"td,th")),a=g(o,r),l=o.childNodes[a],s=d(l,i);u(s||l)}function b(e){var t=n.selection.getNode(),o=n.dom.getParent(t,"td,th"),i=n.dom.getParent(e,"td,th");return o&&o!==i&&v(o,i)}function v(e,t){return n.dom.getParent(e,"TABLE")===n.dom.getParent(t,"TABLE")}var y=t.keyCode;if(f()&&m(n)){var w=n.selection.getNode();setTimeout(function(){b(w)&&r(!t.shiftKey&&y===e.UP,w,t)},0)}}n.on("KeyDown",function(e){t(e)})}function a(){function e(e,t){var n=t.ownerDocument,o=n.createRange(),i;return o.setStartBefore(t),o.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(o.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}n.on("KeyDown",function(t){var o,i,r=n.dom;(37==t.keyCode||38==t.keyCode)&&(o=n.selection.getRng(),i=r.getParent(o.startContainer,"table"),i&&n.getBody().firstChild==i&&e(o,i)&&(o=r.createRng(),o.setStartBefore(i),o.setEndBefore(i),n.selection.setRng(o),t.preventDefault()))})}function l(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?" ":'
'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}function s(){function e(e,t,n,o){var i=3,r=e.dom.getParent(t.startContainer,"TABLE"),a,l,s;return r&&(a=r.parentNode),l=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&o&&("TR"==n.nodeName||n==a),s=("TD"==n.nodeName||"TH"==n.nodeName)&&!o,l||s}function t(){var t=n.selection.getRng(),o=n.selection.getNode(),i=n.dom.getParent(t.startContainer,"TD,TH");if(e(n,t,o,i)){i||(i=o);for(var r=i.lastChild;r.lastChild;)r=r.lastChild;t.setEnd(r,r.nodeValue.length),n.selection.setRng(t)}}n.on("KeyDown",function(){t()}),n.on("MouseDown",function(e){2!=e.button&&t()})}function c(){n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var o=n.dom.getParent(n.selection.getStart(),"table");if(o){for(var i=n.dom.select("td,th",o),r=i.length;r--;)if(!n.dom.hasClass(i[r],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}})}c(),t.webkit&&(r(),s()),t.gecko&&(a(),l()),t.ie>10&&(a(),l())}}),o(m,[s,p,c],function(e,t,n){return function(o){function i(){o.getBody().style.webkitUserSelect="",d&&(o.dom.removeClass(o.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=!1)}function r(t){var n,i,r=t.target;if(s&&(l||r!=s)&&("TD"==r.nodeName||"TH"==r.nodeName)){i=a.getParent(r,"table"),i==c&&(l||(l=new e(o,i),l.setStartCell(s),o.getBody().style.webkitUserSelect="none"),l.setEndCell(r),d=!0),n=o.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(u){}t.preventDefault()}}var a=o.dom,l,s,c,d=!0;return o.on("MouseDown",function(e){2!=e.button&&(i(),s=a.getParent(e.target,"td,th"),c=a.getParent(s,"table"))}),o.on("mouseover",r),o.on("remove",function(){a.unbind(o.getDoc(),"mouseover",r)}),o.on("MouseUp",function(){function e(e,o){var r=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(o?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(o?i.setStartBefore(e):i.setEndBefore(e))}while(e=o?r.next():r.prev())}var i,r=o.selection,d,u,f,m,p;if(s){if(l&&(o.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){i=a.createRng(),f=d[0],p=d[d.length-1],i.setStartBefore(f),i.setEndAfter(f),e(f,1),u=new t(f,a.getParent(d[0],"table"));do if("TD"==f.nodeName||"TH"==f.nodeName){if(!a.hasClass(f,"mce-item-selected"))break;m=f}while(f=u.next());e(m),r.setRng(i)}o.nodeChanged(),s=l=c=null}}),o.on("KeyUp",function(){i()}),{clear:i}}}),o(g,[s,u,m,c,p,d,h],function(e,t,n,o,i,r,a){function l(o){function i(e){return e?e.replace(/px$/,""):""}function a(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function l(e){s("left center right".split(" "),function(t){o.formatter.remove("align"+t,{},e)})}function c(){var e=o.dom,t,n,c,d;t=e.getParent(o.selection.getStart(),"table"),d={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:t?e.getAttrib(t,"cellspacing"):"",cellpadding:t?e.getAttrib(t,"cellpadding"):"",border:t?e.getAttrib(t,"border"):"",caption:!!e.select("caption",t)[0]},s("left center right".split(" "),function(e){o.formatter.matchNode(t,"align"+e)&&(d.align=e)}),t||(n={label:"Cols",name:"cols"},c={label:"Rows",name:"rows"}),o.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:d,defaults:{type:"textbox",maxWidth:50},items:[n,c,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),i;o.undoManager.transact(function(){t||(t=p(n.cols||1,n.rows||1)),o.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),o.dom.setStyles(t,{width:a(n.width),height:a(n.height)}),i=e.select("caption",t)[0],i&&!n.caption&&e.remove(i),!i&&n.caption&&(i=e.create("caption"),i.innerHTML=r.ie?"\xa0":'
',t.insertBefore(i,t.firstChild)),l(t),n.align&&o.formatter.apply("align"+n.align,{},t),o.focus(),o.addVisual()})}})}function d(e,t){o.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();o.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function u(){var e=o.dom,t,n,r=[];r=o.dom.select("td.mce-item-selected,th.mce-item-selected"),t=o.dom.getParent(o.selection.getStart(),"td,th"),!r.length&&t&&r.push(t),t=t||r[0],t&&(n={width:i(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:i(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),s("left center right".split(" "),function(e){o.formatter.matchNode(t,"align"+e)&&(n.align=e)}),o.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();o.undoManager.transact(function(){s(r,function(n){o.dom.setAttrib(n,"scope",t.scope),o.dom.setStyles(n,{width:a(t.width),height:a(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),l(n),t.align&&o.formatter.apply("align"+t.align,{},n)}),o.focus()})}}))}function f(){var e=o.dom,t,n,r,c,d=[];t=o.dom.getParent(o.selection.getStart(),"table"),n=o.dom.getParent(o.selection.getStart(),"td,th"),s(t.rows,function(t){s(t.cells,function(o){return e.hasClass(o,"mce-item-selected")||o==n?(d.push(t),!1):void 0})}),r=d[0],r&&(c={height:i(e.getStyle(r,"height")||e.getAttrib(r,"height")),scope:e.getAttrib(r,"scope")},c.type=r.parentNode.nodeName.toLowerCase(),s("left center right".split(" "),function(e){o.formatter.matchNode(r,"align"+e)&&(c.align=e)}),o.windowManager.open({title:"Row properties",items:{type:"form",data:c,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,i,r;o.undoManager.transact(function(){var c=t.type;s(d,function(s){o.dom.setAttrib(s,"scope",t.scope),o.dom.setStyles(s,{height:a(t.height)}),c!=s.parentNode.nodeName.toLowerCase()&&(n=e.getParent(s,"table"),i=s.parentNode,r=e.select(c,n)[0],r||(r=e.create(c),n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r)),r.appendChild(s),i.hasChildNodes()||e.remove(i)),l(s),t.align&&o.formatter.apply("align"+t.align,{},s)}),o.focus()})}}))}function m(e){return function(){o.execCommand(e)}}function p(e,t){var n,i,a;for(a='',n=0;t>n;n++){for(a+="",i=0;e>i;i++)a+="";a+=""}a+="
"+(r.ie?" ":"
")+"
",o.insertContent(a);var l=o.dom.get("__mce");return o.dom.setAttrib(l,"id",null),l}function g(e,t){function n(){e.disabled(!o.dom.getParent(o.selection.getStart(),t)),o.selection.selectorChanged(t,function(t){e.disabled(!t)})}o.initialized?n():o.on("init",n)}function h(){g(this,"table")}function b(){g(this,"td,th")}function v(){var e="";e='';for(var t=0;10>t;t++){e+="";for(var n=0;10>n;n++)e+='";e+=""}return e+="
",e+='

'}function y(e,t,n){var i=n.getEl().getElementsByTagName("table")[0],r=n.parent().rel,a,l,s,c;if(n.isRtl()||"tl-tr"==r){for(l=9;l>=0;l--)for(a=0;10>a;a++)c=i.rows[l].childNodes[a].firstChild,o.dom.toggleClass(c,"mce-active",a>=e&&t>=l),a>=e&&t>=l&&(s=c);e=9-e,i.nextSibling.innerHTML=e+" x "+(t+1)}else{for(l=0;10>l;l++)for(a=0;10>a;a++)c=i.rows[l].childNodes[a].firstChild,o.dom.toggleClass(c,"mce-active",e>=a&&t>=l),e>=a&&t>=l&&(s=c);i.nextSibling.innerHTML=e+1+" x "+(t+1)}return s.parentNode}var w,x,C=this;o.settings.table_grid===!1?o.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:c}):o.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),c())},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:v(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t=e.target,n,o;"A"==t.tagName.toUpperCase()&&(n=parseInt(t.getAttribute("data-mce-x"),10),o=parseInt(t.getAttribute("data-mce-y"),10),(n!==this.lastX||o!==this.lastY)&&(y(n,o,e.control),this.lastX=n,this.lastY=o))},onkeydown:function(e){var t=this.lastX,n=this.lastY,o;switch(e.keyCode){case 37:t>0&&(t--,o=!0);break;case 39:o=!0,9>t&&t++;break;case 38:o=!0,n>0&&n--;break;case 40:o=!0,9>n&&n++}o&&(e.preventDefault(),e.stopPropagation(),y(t,n,e.control).focus(),this.lastX=t,this.lastY=n)},onclick:function(e){"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),this.parent().cancel(),p(this.lastX+1,this.lastY+1))}}]}),o.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:h,onclick:c}),o.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:h,cmd:"mceTableDelete"}),o.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:m("mceTableCellProps"),onPostRender:b},{text:"Merge cells",onclick:m("mceTableMergeCells"),onPostRender:b},{text:"Split cell",onclick:m("mceTableSplitCells"),onPostRender:b}]}),o.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:m("mceTableInsertRowBefore"),onPostRender:b},{text:"Insert row after",onclick:m("mceTableInsertRowAfter"),onPostRender:b},{text:"Delete row",onclick:m("mceTableDeleteRow"),onPostRender:b},{text:"Row properties",onclick:m("mceTableRowProps"),onPostRender:b},{text:"-"},{text:"Cut row",onclick:m("mceTableCutRow"),onPostRender:b},{text:"Copy row",onclick:m("mceTableCopyRow"),onPostRender:b},{text:"Paste row before",onclick:m("mceTablePasteRowBefore"),onPostRender:b},{text:"Paste row after",onclick:m("mceTablePasteRowAfter"),onPostRender:b}]}),o.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:m("mceTableInsertColBefore"),onPostRender:b},{text:"Insert column after",onclick:m("mceTableInsertColAfter"),onPostRender:b},{text:"Delete column",onclick:m("mceTableDeleteCol"),onPostRender:b}]});var P=[];s("inserttable tableprops deletetable | cell row column".split(" "),function(e){P.push("|"==e?{text:"-"}:o.menuItems[e])}),o.addButton("table",{type:"menubutton",title:"Table",menu:P}),r.isIE||o.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(o.selection.select(e),o.nodeChanged())}),C.quirks=new t(o),o.on("Init",function(){w=o.windowManager,C.cellSelection=new n(o)}),s({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,i;i=o.dom.getParent(o.selection.getStart(),"th,td"),i&&(t=i.rowSpan,n=i.colSpan),o.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():d(e,i)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){x=e.cutRows()},mceTableCopyRow:function(e){x=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(x,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(x)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){o.addCommand(n,function(){var n=new e(o);n&&(t(n),o.execCommand("mceRepaint"),C.cellSelection.clear())})}),s({mceInsertTable:function(){c()},mceTableRowProps:f,mceTableCellProps:u},function(e,t){o.addCommand(t,function(t,n){e(n)})})}var s=o.each;a.add("table",l)}),a([s,u,m,g])}(this);tinymce.PluginManager.add("template",function(e){function t(t){return function(){var a=e.settings.templates;"string"==typeof a?tinymce.util.XHR.send({url:a,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(a)}}function a(t){function a(t){function a(t){if(-1==t.indexOf("")){var a="";tinymce.each(e.contentCSS,function(t){a+=''}),t=""+a+""+t+""}t=r(t,"template_preview_replace_values");var l=n.find("iframe")[0].getEl().contentWindow.document;l.open(),l.write(t),l.close()}var c=t.control.value();c.url?tinymce.util.XHR.send({url:c.url,success:function(e){l=e,a(l)}}):(l=c.content,a(l)),n.find("#description")[0].text(t.control.value().description)}var n,l,i=[];return t&&0!==t.length?(tinymce.each(t,function(e){i.push({selected:!i.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),n=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:i,onselect:a}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){c(!1,l)},width:e.getParam("template_popup_width",600),height:e.getParam("template_popup_height",500)}),void n.find("listbox")[0].fire("select")):void e.windowManager.alert("No templates defined")}function n(t,a){function n(e,t){if(e=""+e,e.length0&&(o=p.create("div",null),o.appendChild(s[0].cloneNode(!0))),i(p.select("*",o),function(t){c(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),c(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),c(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=m)}),l(o),e.execCommand("mceInsertContent",!1,o.innerHTML),e.addVisual()}var i=tinymce.each;e.addCommand("mceInsertTemplate",c),e.addButton("template",{title:"Insert template",onclick:t(a)}),e.addMenuItem("template",{text:"Insert template",onclick:t(a),context:"insert"}),e.on("PreProcess",function(t){var a=e.dom;i(a.select("div",t.node),function(t){a.hasClass(t,"mceTmpl")&&(i(a.select("*",t),function(t){a.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),l(t))})})});tinymce.PluginManager.add("textcolor",function(e){function t(){var t,o,r=[];for(o=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t',a=o.length-1,c=e.settings.textcolor_rows||5,i=e.settings.textcolor_cols||8,F=0;c>F;F++){for(l+="",n=0;i>n;n++)d=F*i+n,d>a?l+="":(r=o[d],l+='
');l+=""}return l+=""}function r(t){var o,r=this.parent();(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,r.hidePanel(),o="#"+o,r.color(o),e.execCommand(r.settings.selectcmd,!1,o))}function l(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l})});tinymce.PluginManager.add("visualblocks",function(e,s){function o(){var s=this;s.active(a),e.on("VisualBlocks",function(){s.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var l,t,a;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var o,c=e.dom;l||(l=c.uniqueId(),o=c.create("link",{id:l,rel:"stylesheet",href:s+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(o)),e.on("PreviewFormats AfterPreviewFormats",function(s){a&&c.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==s.type)}),c.toggleClass(e.getBody(),"mce-visualblocks"),a=e.dom.hasClass(e.getBody(),"mce-visualblocks"),t&&t.active(c.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:o,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))});tinymce.PluginManager.add("visualchars",function(e){function a(a){var t,s,i,r,c,d,l=e.getBody(),m=e.selection;if(n=!n,o.state=n,e.fire("VisualChars",{state:n}),a&&(d=m.getBookmark()),n)for(s=[],tinymce.walk(l,function(e){3==e.nodeType&&e.nodeValue&&-1!=e.nodeValue.indexOf(" ")&&s.push(e)},"childNodes"),i=0;i$1
'),c=e.dom.create("div",null,r);t=c.lastChild;)e.dom.insertAfter(t,s[i]);e.dom.remove(s[i])}else for(s=e.dom.select("span.mce-nbsp",l),i=s.length-1;i>=0;i--)e.dom.remove(s[i],1);m.moveToBookmark(d)}function t(){var a=this;e.on("VisualChars",function(e){a.active(e.state)})}var n,o=this;e.addCommand("mceVisualChars",a),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:t}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:t,selectable:!0,context:"view",prependToContext:!0}),e.on("beforegetcontent",function(e){n&&"raw"!=e.format&&!e.draft&&(n=!0,a(!1))})});tinymce.PluginManager.add("wordcount",function(e){function t(){e.theme.panel.find("#wordcount").text(["Words: {0}",a.getCount()])}var n,o,a=this;n=e.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),o=e.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0];n&&window.setTimeout(function(){n.insert({type:"label",name:"wordcount",text:["Words: {0}",a.getCount()],classes:"wordcount",disabled:e.settings.readonly},0),e.on("setcontent beforeaddundo",t),e.on("keyup",function(e){32==e.keyCode&&t()})},0)}),a.getCount=function(){var t=e.getContent({format:"raw"}),a=0;if(t){t=t.replace(/\.\.\./g," "),t=t.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),t=t.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),t=t.replace(o,"");var r=t.match(n);r&&(a=r.length)}return a}});tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var i,o=[];if(t)return d(t.split(/[ ,]/),function(t){function n(){var n=e.selection;"bullist"==r&&n.selectorChanged("ul > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"UL"==i)}),"numlist"==r&&n.selectorChanged("ol > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"OL"==i)}),t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?i=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),i=null):(i||(i={type:"buttongroup",items:[]},o.push(i)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),i.items.push(t),e.initialized?n():e.on("init",n)))}),n.push({type:"toolbar",layout:"flow",items:o}),!0}var n=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var i=1;10>i&&t(u["toolbar"+i]);i++);return n.length||u.toolbar===!1||t(u.toolbar||f),n.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:n}:void 0}function n(){function t(t){var n;return"|"==t?{text:"|"}:n=e.menuItems[t]}function n(n){var i,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[n],a=!0):o=h[n],o){i={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var n=t(e);n&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==n&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l 0) + sql += ', '; + sql += this.field[n].render (batch); + } + + sql += ') VALUES ('; + + for (n = 0; n < this.field.length; n++) + { + if (n > 0) + sql += ', '; + sql += this.expr[n].render(batch); + } + + sql += ')'; + + return sql; + } +}) diff --git a/package/usr/share/hedera-web/js/sql/list.js b/package/usr/share/hedera-web/js/sql/list.js new file mode 100755 index 00000000..be6e86a8 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/list.js @@ -0,0 +1,53 @@ +/** + * List of Sql.Object + **/ +Sql.List = new Class +({ + Extends: Sql.Object + + ,objects: [] + + ,add: function (object) + { + this.objects.push (object); + object.on ('changed', this.onObjectChange, this); + this.onObjectChange (); + } + + ,get: function (i) + { + return objects[i]; + } + + ,getArray: function () + { + return this.objects; + } + + ,remove: function (i) + { + var object = objects.splice (i, 1); + object.disconnect ('changed', this.onObjectChange, this); + this.onObjectChange (); + } + + ,onObjectChange: function () + { + this.signalEmit ('changed'); + } + + ,isReady: function () + { + var o = this.objects; + + if (o.length == 0) + return false; + + for (var i = 0; i < o.length; i++) + if (!o[i].isReady ()) + return false; + + return true; + } +}); + diff --git a/package/usr/share/hedera-web/js/sql/main.js b/package/usr/share/hedera-web/js/sql/main.js new file mode 100755 index 00000000..21358f87 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/main.js @@ -0,0 +1,5 @@ +/** + * The namespace. + **/ +var Sql = {}; + diff --git a/package/usr/share/hedera-web/js/sql/main.php b/package/usr/share/hedera-web/js/sql/main.php new file mode 100755 index 00000000..03f69755 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/main.php @@ -0,0 +1,31 @@ + diff --git a/package/usr/share/hedera-web/js/sql/multi-stmt.js b/package/usr/share/hedera-web/js/sql/multi-stmt.js new file mode 100755 index 00000000..0e7ac091 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/multi-stmt.js @@ -0,0 +1,42 @@ +/** + * The equivalent of a SQL multi statement. + **/ +Sql.MultiStmt = new Class +({ + Extends: Sql.Stmt + + ,stmts: [] + + ,addStmt: function (stmt) + { + stmt.on ('changed', this.stmtChanged.bind (this)); + return this.stmts.push (stmt); + } + + ,stmtChanged: function () + { + this.signalEmit ('changed'); + } + + ,isReady: function () + { + if (this.stmts.length == 0) + return false; + + for (var i = 0; i < this.stmts.length; i++) + if (!this.stmts[i].isReady ()) + return false; + + return true; + } + + ,render: function (batch) + { + var sql = ''; + + for (var i = 0; i < this.stmts.length; i++) + sql += this.stmts[i].render (batch) + '; '; + + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/object.js b/package/usr/share/hedera-web/js/sql/object.js new file mode 100755 index 00000000..34fbd43d --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/object.js @@ -0,0 +1,32 @@ +/** + * Base class for all objects on this library. + **/ +Sql.Object = new Class +({ + Extends: Vn.Object + + /** + * Renders the object as an SQL string. + * + * @param {Sql.Batch} batch The batch used to render the object + * @return {String} The SQL string + **/ + ,render: function (batch) {} + + /** + * Gets if the object is ready to be rendered. + * + * @return {boolean} %true if the object is ready, %false otherwise + **/ + ,isReady: function () + { + return true; + } + + /** + * Through the query looking for containers and adds it to the batch. + * + * @return {Sql.Batch} batch The batch + **/ + ,findHolders: function (batch) {} +}); diff --git a/package/usr/share/hedera-web/js/sql/operation.js b/package/usr/share/hedera-web/js/sql/operation.js new file mode 100755 index 00000000..10f7dfa6 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/operation.js @@ -0,0 +1,72 @@ +/** + * The equivalent of a SQL operation between exprs. + * + * @param {Array#Sql.Expr} expr Array with the exprs + * @param {Sql..Operation.Type} type The type of the operation + **/ +Sql.Operation = new Class ().extend +({ + Type: + { + EQUAL : 0 + ,LIKE : 1 + ,AND : 2 + ,OR : 3 + } + ,Operators: + [ + '=' + ,'LIKE' + ,'AND' + ,'OR' + ] +}); + +Sql.Operation.implement +({ + Extends: Sql.Expr + ,Tag: 'sql-operation' + ,Properties: + { + type: + { + enumType: Sql.Operation.Type + ,value: -1 + } + } + + ,initialize: function (props) + { + this.parent (props); + this.link ({exprs: new Sql.List ()}, {'changed': this.onListChange}); + } + + ,onListChange: function () + { + this.signalEmit ('changed'); + } + + ,isReady: function () + { + return this.exprs.isReady (); + } + + ,render: function (batch) + { + var sql = '('; + var operator = ' '+ Sql.Operation.Operators[this.type] +' '; + var e = this.exprs.getArray (); + + for (var i = 0; i < e.length; i++) + { + if (i > 0) + sql += operator; + + sql += e[i].render (batch); + } + + sql += ')'; + + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/search-tags.js b/package/usr/share/hedera-web/js/sql/search-tags.js new file mode 100755 index 00000000..27f80b74 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/search-tags.js @@ -0,0 +1,19 @@ +/** + * The equivalent of a SQL value. + **/ +Sql.SearchTags = new Class +({ + Extends: Sql.Value + ,Tag: 'sql-search-tags' + + ,render: function (batch) + { + if (typeof this._value == 'string') + { + var value = this._value.replace (/^| +|$/g, '%'); + return "'" + value.replace (this.regexp, this.replaceFunc) + "'"; + } + else + return this.parent (); + } +}); diff --git a/package/usr/share/hedera-web/js/sql/select.js b/package/usr/share/hedera-web/js/sql/select.js new file mode 100755 index 00000000..7d03fc1a --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/select.js @@ -0,0 +1,33 @@ +/** + * The equivalent of a SQL select. + **/ +Sql.Select = new Class +({ + Extends: Sql.Stmt + + ,expr: [] + + ,addField: function (fieldName) + { + this.expr.push (new Sql.Field ({name: fieldName})); + } + + ,render: function (batch) + { + var sql = 'SELECT ' + + for (var i = 0; i < this.expr.length; i++) + { + if (i > 0) + sql += ', '; + sql += this.expr[i].render(batch); + } + + sql += ' FROM ' + this.renderTarget (batch); + + if (this.where) + sql += ' WHERE ' + this.where.render (batch); + + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/stmt.js b/package/usr/share/hedera-web/js/sql/stmt.js new file mode 100755 index 00000000..b3c71b7c --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/stmt.js @@ -0,0 +1,43 @@ +/** + * The equivalent of a SQL statement. + **/ +Sql.Stmt = new Class +({ + Extends: Sql.Object + ,Properties: + { + where: + { + type: Sql.Expr + ,value: null + } + } + + ,target: [] + + ,addTarget: function (target) + { + this.target.push (target); + } + + ,renderTarget: function (batch) + { + var sql; + var len = this.target.length; + + if (len > 0) + { + sql = ' '; + + for (var n = 0; n < len; n++) + { + if (n > 0) sql += ', '; + sql += this.target[n].render (batch); + } + } + else + sql += 'DUAL'; + + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/string.js b/package/usr/share/hedera-web/js/sql/string.js new file mode 100755 index 00000000..2a7ac8ce --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/string.js @@ -0,0 +1,40 @@ +/** + * Literal SQL string. + **/ +Sql.String = new Class +({ + Extends: Sql.Stmt + ,Properties: + { + query: + { + type: String + ,value: null + } + } + + ,regexp: /#\w+/g + + ,replaceFunc: function (batch, token) + { + var holder = new Sql.Holder ({id: token.substr (1)}); + return holder.render (batch); + } + + ,render: function (batch) + { + if (!this.query) + return null; + + return this.query.replace (this.regexp, this.replaceFunc.bind (this, batch)); + } + + ,findHolders: function (batch) + { + var ids = this.query.match (this.regexp); + + if (ids) + for (var i = 0; i < ids.length; i++) + batch.add (ids[i].substr (1)); + } +}); diff --git a/package/usr/share/hedera-web/js/sql/table.js b/package/usr/share/hedera-web/js/sql/table.js new file mode 100755 index 00000000..e4d43207 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/table.js @@ -0,0 +1,28 @@ +/** + * + **/ +Sql.Table = new Class +({ + Extends: Sql.Target + ,Properties: + { + name: + { + type: String + ,value: null + }, + schema: + { + type: String + ,value: null + } + } + + ,render: function (batch) + { + var sql; + sql = this.schema ? '`' + this.schema + '`.' : ''; + sql = sql + '`' + this.name + '`'; + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/target.js b/package/usr/share/hedera-web/js/sql/target.js new file mode 100755 index 00000000..3a1f793c --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/target.js @@ -0,0 +1,7 @@ +/** + * The equivalent of a SQL target. + **/ +Sql.Target = new Class +({ + Extends: Sql.Object +}); diff --git a/package/usr/share/hedera-web/js/sql/update.js b/package/usr/share/hedera-web/js/sql/update.js new file mode 100755 index 00000000..31d40dd9 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/update.js @@ -0,0 +1,29 @@ +/** + * The equivalent of a SQL update. + **/ +Sql.Update = new Class +({ + Extends: Sql.Dml + + ,render: function (batch) + { + var sql; + var n; + + sql = 'UPDATE ' + this.renderTarget (batch) + ' SET '; + + for (n = 0; n < this.field.length; n++) + { + if (n > 0) + sql += ', '; + sql += this.field[n].render () + ' = ' + this.expr[n].render(batch); + } + + if (this.where) + sql += ' WHERE ' + this.where.render (batch); + + sql += ' LIMIT 1'; // Only for security. + + return sql; + } +}); diff --git a/package/usr/share/hedera-web/js/sql/value.js b/package/usr/share/hedera-web/js/sql/value.js new file mode 100755 index 00000000..5be89871 --- /dev/null +++ b/package/usr/share/hedera-web/js/sql/value.js @@ -0,0 +1,112 @@ +/** + * The equivalent of a SQL value. + **/ +Sql.Value = new Class +({ + Extends: Sql.Expr + ,Tag: 'sql-value' + + ,Properties: + { + /** + * The master param. + **/ + param: + { + type: Vn.Param + ,set: function (x) + { + this.link ({_param: x}, {'changed': this.onParamChange}); + this.onParamChange (); + } + ,get: function () + { + return this._param; + } + }, + /** + * The value. + **/ + value: + { + type: Object + ,set: function (x) + { + if (Vn.Value.compare (x, this._value)) + return; + + if (x instanceof Date) + x = x.clone (); + + this._value = x; + + if (this._param && !this.paramLock) + { + this.paramLock = true; + this._param.value = x; + this.paramLock = false; + } + + this.signalEmit ('changed'); + } + ,get: function () + { + return this._value; + } + } + } + + ,_value: undefined + ,_param: null + ,regexp: new RegExp ('(\\\\)|\'', 'g') + ,paramLock: false + + ,onParamChange: function () + { + if (this.paramLock) + return; + + this.paramLock = true; + this.value = this._param.value; + this.paramLock = false; + } + + ,isReady: function () + { + if (this._value !== undefined && this._value !== null) + return true; + + return false; + } + + ,replaceFunc: function (token) + { + switch (token) + { + case '\\': return '\\\\'; + case '\'': return '\\\''; + } + + return token; + } + + ,render: function (batch) + { + var v = this._value; + + switch (typeof v) + { + case 'number': + return v; + case 'boolean': + return (v) ? 'TRUE' : 'FALSE'; + case 'string': + return "'" + v.replace (this.regexp, this.replaceFunc) + "'"; + case 'object': + if (v instanceof Date) + return Vn.Date.strftime (v, '\'%Y-%m-%d\''); + default: + return 'NULL'; + } + } +}); diff --git a/package/usr/share/hedera-web/js/vn/builder.js b/package/usr/share/hedera-web/js/vn/builder.js new file mode 100755 index 00000000..376055bf --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/builder.js @@ -0,0 +1,189 @@ +/** + * Loads a object from a XML specification. + **/ +Vn.Builder = new Class +({ + objectMap: {} + ,contexts: [] + ,tags: {} + ,root: null + + ,destroy: function () + { + for (var key in this.objectMap) + { + var object = this.objectMap[key]; + + if (object.destroy instanceof Function) + this.objectMap[key].destroy (); + } + } + + ,addFromXml: function (xmlDocument) + { + if (!xmlDocument) + return null; + + this.root = xmlDocument.documentElement; + var html = this.loadNode (this.root, null, null, true); + this.resolveProperties (); + this.contexts = []; + return html; + } + + ,loadNode: function (node, parent, htmlParent, firstCall) + { + var klass = null; + var tagName = null; + var htmlNode = null; + var context = null; + + if (node.tagName) + { + tagName = node.tagName.toLowerCase (); + klass = Vn.customTags[tagName]; + } + + if (klass) + { + var object = new klass (); + var nodeId = node.getAttribute ('id'); + + if (htmlParent && object instanceof Htk.Widget) + { + if (nodeId) + object.node.id = nodeId; + + htmlParent.appendChild (object.node); + } + + if (nodeId) + this.objectMap[nodeId] = object; + + if (!this.tags[tagName]) + this.tags[tagName] = []; + + this.tags[tagName].push (object); + + context = { + node: node + ,parent: parent + ,object: object + ,klass: klass + }; + this.contexts.push (context); + } + else if (htmlParent || firstCall) + { + if (tagName) + { + htmlNode = document.createElement (tagName); + + var a = node.attributes; + + for (var i = 0; i < a.length; i++) + htmlNode.setAttribute (a[i].nodeName, a[i].nodeValue); + } + else + htmlNode = document.importNode (node, false); + + if (htmlParent) + htmlParent.appendChild (htmlNode); + } + + if (node.tagName) + { + var childs = node.childNodes; + + if (childs) + for (var i = 0; i < childs.length; i++) + this.loadNode (childs[i], context, htmlNode, false); + } + + return htmlNode; + } + + ,replaceFunc: function (token) + { + return token.charAt(1).toUpperCase (); + } + + ,resolveProperties: function () + { + for (var i = 0; i < this.contexts.length; i++) + { + var c = this.contexts[i]; + var a = c.node.attributes; + + for (var j = 0; j < a.length; j++) + { + var prop = a[j].nodeName.replace (/-./g, this.replaceFunc); + this.setProperty (c, prop, a[j].nodeValue); + } + + if (c.parent) + { + var parentProperty = c.node.getAttribute ('property'); + + if (!parentProperty) + parentProperty = c.parent.klass.Child; + + if (parentProperty) + this.setProperty (c.parent, parentProperty, c.object); + + if (c.klass.Parent) + this.setProperty (c, c.klass.Parent, c.parent.object); + } + + c.object.loadXml (this, c.node); + } + } + + ,setProperty: function (c, propName, value) + { + var prop = c.klass.Properties[propName]; + + if (!prop || !value) + return; + + switch (prop.type) + { + case Boolean: + value = (/^(true|1)$/i).test (value); + break; + case Number: + value = 0 + new Number (value); + break; + case String: + case Function: + break; + default: + if (prop.type instanceof Function) + { + if (typeof value == 'string') + value = this.get (value); + if (!(value instanceof prop.type)) + return; + } + else if (prop.enumType) + value = prop.enumType[value]; + } + + if (value !== undefined) + c.object[propName] = value; + } + + ,get: function (objectId) + { + return this.objectMap[objectId]; + } + + ,getObjects: function (tagName) + { + if (this.tags[tagName]) + return this.tags[tagName]; + + return []; + } +}); + diff --git a/package/usr/share/hedera-web/js/vn/cookie.js b/package/usr/share/hedera-web/js/vn/cookie.js new file mode 100755 index 00000000..9f971032 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/cookie.js @@ -0,0 +1,71 @@ +/** + * Brownser cookie handler. + **/ +Vn.Cookie = +{ + set: function (key, value, days) + { + var strCookie = key + '=' + value + ';'; + + if (days != undefined) + { + var date = new Date (); + date.setTime (date.getTime () + days * 86400000); + strCookie += 'expires=' + date.toGMTString (); + } + + document.cookie = strCookie; + } + + ,unset: function (key) + { + this.set (key, '', -1); + } + + ,get: function (key) + { + var cookie = new String (document.cookie); + var start = cookie.indexOf (key + '='); + + if (start != -1) + { + var end; + + start += key.length + 1; + end = cookie.indexOf (';', start); + + if (end > 0) + return cookie.substring (start, end); + else + return cookie.substring (start); + } + + return null; + } + + ,getInt: function (key) + { + var value = this.get (key); + + if (value != null) + return parseInt (value); + + return null; + } + + ,getFloat: function (key) + { + var value = Cookie.get (key); + + if (value != null) + return parseFloat (value); + + return null; + } + + ,check: function (key) + { + return this.get (key) != null; + } +}; + diff --git a/package/usr/share/hedera-web/js/vn/date.js b/package/usr/share/hedera-web/js/vn/date.js new file mode 100755 index 00000000..07bf5e64 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/date.js @@ -0,0 +1,122 @@ +/** + * Date handling utilities. + **/ + +Date.prototype.clone = function () +{ + return new Date (this.getTime ()); +} + +Vn.Date = +{ + WDays: + [ + _('Sunday') + ,_('Monday') + ,_('Tuesday') + ,_('Wednesday') + ,_('Thursday') + ,_('Friday') + ,_('Saturday') + ] + ,AbrWDays: + [ + _('Su') + ,_('Mo') + ,_('Tu') + ,_('We') + ,_('Th') + ,_('Fr') + ,_('Sa') + ] + ,Months: + [ + _('January') + ,_('February') + ,_('March') + ,_('April') + ,_('May') + ,_('June') + ,_('July') + ,_('August') + ,_('September') + ,_('October') + ,_('November') + ,_('December') + ] + ,AbrMonths: + [ + _('Jan') + ,_('Feb') + ,_('Mar') + ,_('Apr') + ,_('May') + ,_('Jun') + ,_('Jul') + ,_('Ago') + ,_('Sep') + ,_('Oct') + ,_('Nov') + ,_('Dec') + ] + + ,regexp: new RegExp ('%[a-zA-Z]', 'g') + + ,pad: function (number) + { + if (number < 10) + return '0'+ number.toString (); + + return number.toString (); + } + + ,regexpFunc: function (d, token) + { + switch (token.charAt (1)) + { + // Minutes with 2 digits + case 'M': return this.pad (d.getMinutes ()); + + // Hour with 2 digits in 24 hour format + case 'H': return this.pad (d.getHours ()); + + // Complete time + case 'T': return d.toLocaleTimeString (); + + // Complete week day name + case 'A': return this.WDays[d.getDay ()]; + + // Abreviated week day name + case 'a': return this.AbrWDays[d.getDay ()]; + + // Day of month with 2 digits + case 'd': return this.pad (d.getDate ()); + + // Day of month + case 'e': return d.getDate (); + + // Complete month name + case 'B': return this.Months[d.getMonth ()]; + + // Abreviated month name + case 'b': return this.AbrMonths[d.getMonth ()]; + + // Month number with 2 digits + case 'm': return this.pad (d.getMonth () + 1); + + // Year with 4 digits + case 'Y': return d.getFullYear (); + } + + return token; + } + + ,strftime: function (date, format) + { + if (!date) + return ''; + + return format.replace (this.regexp, this.regexpFunc.bind (this, date)); + } +}; + diff --git a/package/usr/share/hedera-web/js/vn/error.js b/package/usr/share/hedera-web/js/vn/error.js new file mode 100755 index 00000000..9980d59e --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/error.js @@ -0,0 +1,17 @@ +/** + * This class stores the database errors. + **/ +Vn.Error = new Class +({ + domain: null + ,code: null + ,message: null + + ,initialize: function (domain, code, message) + { + this.domain = domain; + this.code = code; + this.message = message; + } +}); + diff --git a/package/usr/share/hedera-web/js/vn/hash-link.js b/package/usr/share/hedera-web/js/vn/hash-link.js new file mode 100755 index 00000000..477ea258 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/hash-link.js @@ -0,0 +1,88 @@ + +Vn.HashLink = new Class +({ + Extends: Vn.Object + ,Tag: 'vn-hash-link' + ,Parent: 'param' + ,Properties: + { + param: + { + type: Vn.Param + ,set: function (x) + { + this.link ({_param: x}, {'changed': this.onParamChange}); + this.onHashChange (); + } + ,get: function () + { + return this._param; + } + }, + hash: + { + type: Vn.Hash + ,set: function (x) + { + this.link ({_hash: x}, {'changed': this.onHashChange}); + this.onHashChange (); + } + ,get: function () + { + return this._hash; + } + }, + key: + { + type: String + ,set: function (x) + { + this._key = x; + this.onHashChange (); + } + ,get: function () + { + return this._key; + } + } + } + + ,lock: false + ,value: null + ,_key: null + + ,onHashChange: function () + { + if (!this._key || !this._hash) + return; + + var newValue = this._hash.get (this._key); + + if (this.value != newValue) + { + this.value = newValue; + this.signalEmit ('changed'); + + if (this._param && !this.lock) + { + this.lock = true; + this._param.value = newValue; + this.lock = false; + } + } + } + + ,onParamChange: function () + { + if (this.lock) + return; + + var map = {}; + map[this.key] = this._param.value; + + this.lock = true; + this._hash.add (map); + this.lock = false; + } +}); + diff --git a/package/usr/share/hedera-web/js/vn/hash.js b/package/usr/share/hedera-web/js/vn/hash.js new file mode 100755 index 00000000..f5d7dfb0 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/hash.js @@ -0,0 +1,123 @@ +/** + * Class to handle the URL. + **/ +Vn.Hash = new Class +({ + Extends: Vn.Object + + ,hash: null + ,hashMap: {} + + ,initialize: function () + { + this.hashChangedHandler = this.hashChanged.bind (this); + window.addEventListener ('hashchange', this.hashChangedHandler); + this.hashChanged (); + } + + ,destroy: function () + { + this.parent (); + window.removeEventListener ('hashchange', this.hashChangedHandler); + } + + /** + * Gets the hash part of the URL. + * + * @param {string} key The variable name + **/ + ,get: function (key) + { + return this.hashMap[key]; + } + + /** + * Sets the hash part of the URL, respecting the current hash variables. + * + * @param {Object} map A key-value map + **/ + ,add: function (map) + { + var newMap = this.hashMap; + + for (var key in map) + newMap[key] = map[key]; + + this.set (newMap); + } + + /** + * Sets the hash part of the URL. + * + * @param {Object} map A key-value map + **/ + ,set: function (map) + { + for (var key in map) + if (map[key] === null || map[key] === undefined) + delete map[key]; + + var newHash = this.make (map); + + if (newHash !== this.hash) + { + this.hashMap = map; + this.putHash (newHash); + } + } + + /** + * Creates a URL with the given hash data. + * + * @param {Object} map A key-value map + * @param {boolean} add %true to combine with the current map, %false otherwise + * @return {String} The URL + **/ + ,make: function (map, add) + { + var hash = '#!'; + + if (add) + for (var key in this.hashMap) + if (!map[key]) + map[key] = this.hashMap[key]; + + for (var key in map) + { + if (hash.length > 2) + hash += '&'; + + hash += key +'='+ map[key]; + } + + return hash; + } + + ,putHash: function (newHash) + { + location.hash = newHash; + this.hash = location.hash; + this.signalEmit ('changed'); + } + + ,hashChanged: function () + { + var newHash = location.hash; + + if (newHash === this.hash) + return; + + this.hashMap = {}; + var kvPairs = newHash.substr(2).split ('&'); + + for (var i = 0; i < kvPairs.length; i++) + { + var kvPair = kvPairs[i].split ('=', 2); + + if (kvPair[0]) + this.hashMap[kvPair[0]] = kvPair[1]; + } + + this.putHash (newHash); + } +}); diff --git a/package/usr/share/hedera-web/js/vn/locale.js b/package/usr/share/hedera-web/js/vn/locale.js new file mode 100755 index 00000000..4a496491 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/locale.js @@ -0,0 +1,55 @@ +/** + * Class to manage the internationalization. + **/ +Vn.Locale = +{ + strings: {} + + ,language: null + + ,load: function (path, callback) + { + if (!this.language) + { + var language = navigator.language.substr (0, 2); + this.language = language ? language : 'en'; + } + + var file = 'locale/'+ this.language +'/'+ path +'.json' + +'?'+ Vn.Cookie.get ('hedera_version'); + + var request = new XMLHttpRequest (); + request.open ('get', file, true); + request.onreadystatechange = this.loadDone.bind (this, request, callback); + request.send (); + } + + ,loadDone: function (request, callback) + { + if (request.readyState != 4) + return; + + if (request.status == 200) + try { + this.add (eval ('('+ request.responseText +')')); + } + catch (e) { + console.log (e); + } + + callback (); + } + + ,add: function (strings) + { + for (var stringId in strings) + this.strings[stringId] = strings[stringId]; + } +} + +function _(stringId) +{ + var string = Vn.Locale.strings[stringId]; + return (string) ? string : stringId; +} + diff --git a/package/usr/share/hedera-web/js/vn/main.js b/package/usr/share/hedera-web/js/vn/main.js new file mode 100755 index 00000000..c5ca855d --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/main.js @@ -0,0 +1,132 @@ +/** + * The main namespace. + **/ +var Vn = +{ + Config: {} + ,jsIncludes: {} + ,cssIncludes: {} + ,customTags: {} + ,head: document.getElementsByTagName ('head')[0] + + /** + * Includes a new CSS stylesheet in the current document, if the stylesheet + * its already included, does nothing. + * + * @param {string} fileName The stylesheet file name + **/ + ,includeCss: function (fileName) + { + var cssData = this.cssIncludes[fileName]; + + if (!cssData) + { + var link = document.createElement ('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = fileName +'?'+ Vn.Cookie.get ('hedera_version'); + this.head.appendChild (link); + + this.cssIncludes[fileName] = + { + included: true + ,link: link + }; + } + else if (!cssData.included) + { + this.head.appendChild (cssData.link); + cssData.included = true; + } + } + + /** + * Excludes a CSS stylesheet from the current document. + * + * @param {string} fileName The stylesheet file name + **/ + ,excludeCss: function (fileName) + { + var cssData = this.cssIncludes[fileName]; + + if (cssData && cssData.included) + { + this.head.removeChild (cssData.link); + cssData.included = false; + } + } + + /** + * Includes a new Javascript in the current document, if the script + * its already included, does nothing. + * + * @param {string} fileName The script file name + * @param {Function} callback The function to call when script is + * downloaded and included + **/ + ,includeJs: function (fileName, callback, skipVersion) + { + var includeData = this.jsIncludes[fileName]; + + if (includeData === undefined) + { + var src = fileName; + + if (!skipVersion) + src = src +'?'+ Vn.Cookie.get ('hedera_version'); + + var script = document.createElement ('script'); + script.type = 'text/javascript'; + script.src = src; + + includeData = { + script: script + ,callbacks: [] + ,loaded: false + }; + + if (callback) + includeData.callbacks.push (callback); + + script.onload = + this.jsLoaded.bind (this, includeData); + script.onreadystatechange = + this.jsStateChanged.bind (this, includeData); + + this.jsIncludes[fileName] = includeData; + + this.head.appendChild (script); + } + else if (callback) + { + if (includeData.loaded) + callback (); + else + includeData.callbacks.push (callback); + } + } + + ,jsStateChanged: function (includeData) + { + if (includeData.script.readyState == 'complete') + this.jsLoaded (includeData); + } + + ,jsLoaded: function (includeData) + { + if (includeData.loaded) + return; + + for (var i = 0; i < includeData.callbacks.length; i++) + includeData.callbacks[i] (); + + includeData.loaded = true; + includeData.callbacks = null; + } + + ,get: function (id) + { + return document.getElementById (id); + } +}; + diff --git a/package/usr/share/hedera-web/js/vn/main.php b/package/usr/share/hedera-web/js/vn/main.php new file mode 100755 index 00000000..9d7c422e --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/main.php @@ -0,0 +1,25 @@ + diff --git a/package/usr/share/hedera-web/js/vn/mutators.js b/package/usr/share/hedera-web/js/vn/mutators.js new file mode 100755 index 00000000..bd42db9c --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/mutators.js @@ -0,0 +1,45 @@ + +Class.Mutators.Tag = function (tagName) +{ + Vn.customTags[tagName] = this; + + if (this.parent) + { + this.implement ({Parent: this.parent.Parent}); + this.implement ({Child: this.parent.Child}); + this.implement ({Properties: {}}); + } + + this.extend ({Tag: tagName}); +}; + +Class.Mutators.Properties = function (props) +{ + var parentProps; + + for (var propName in props) + { + var prop = props[propName]; + + if (!prop.get && !prop.set && prop.writable === undefined) + prop.writable = true; + } + + if (this.parent && (parentProps = this.parent.Properties)) + for (var propName in parentProps) + props[propName] = parentProps[propName]; + + this.extend ({Properties: props}); + Object.defineProperties (this.prototype, props); +}; + +Class.Mutators.Parent = function (propName) +{ + this.extend ({Parent: propName}); +}; + +Class.Mutators.Child = function (propName) +{ + this.extend ({Child: propName}); +}; + diff --git a/package/usr/share/hedera-web/js/vn/node.js b/package/usr/share/hedera-web/js/vn/node.js new file mode 100755 index 00000000..0273a9d8 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/node.js @@ -0,0 +1,23 @@ +Vn.Node = +{ + removeChilds: function (node) + { + var childs = node.childNodes; + + while (childs.length > 0) + node.removeChild (childs[0]); + } + + ,remove: function (node) + { + node.parentNode.removeChild (node); + } + + ,setText: function (node, text) + { + Vn.Node.removeChilds (node); + + if (text) + node.appendChild (document.createTextNode (text)); + } +}; diff --git a/package/usr/share/hedera-web/js/vn/object.js b/package/usr/share/hedera-web/js/vn/object.js new file mode 100755 index 00000000..ea40b22e --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/object.js @@ -0,0 +1,133 @@ +/** + * The main base class. Manages the signal system. + * + * @param signals Map with all connected signal handlers + **/ +Vn.Object = new Class +({ + Tag: 'vn-object' + ,Properties: {} + ,signals: {} + + ,initialize: function (props) + { + for (var prop in props) + this[prop] = props[prop]; + } + + ,loadXml: function (builder, node) + { + return null; + } + + /** + * Conects a signal with a function. + * + * @param {String} id The signal identifier + * @param {Function} callback The callback + * @param {Object} instance The instance + **/ + ,on: function (id, callback, instance) + { + if (!this.signals[id]) + this.signals[id] = []; + + this.signals[id].push + ({ + blocked: false + ,callback: callback + ,instance: instance + }); + } + + /** + * Locks/Unlocks a signal emission to the specified object. + * + * @param {String} id The signal identifier + * @param {Function} callback The callback + * @param {Boolean} block %true for lock the signal, %false for unlock + **/ + ,blockSignal: function (id, callback, block) + { + var callbacks = this.signals[id]; + + if (!callbacks) + return; + + for (var i = 0; i < callbacks.length; i++) + if (callbacks[i].callback == callback) + callbacks[i].blocked = block; + } + + /** + * Emits a signal in the current object. + * + * @param {String} id The signal identifier + **/ + ,signalEmit: function (id) + { + var callbacks = this.signals[id]; + + if (!callbacks) + return; + + var callbackArgs = []; + callbackArgs.push (this); + + for (var i = 1; i < arguments.length; i++) + callbackArgs.push (arguments[i]); + + for (var i = 0; i < callbacks.length; i++) + if (!callbacks[i].blocked) + callbacks[i].callback.apply (callbacks[i].instance, callbackArgs); + } + + /** + * Disconnects a signal from current object. + * + * @param {String} id The signal identifier + * @param {Function} callback The connected callback + * @param {Object} instance The instance + **/ + ,disconnect: function (id, callback, instance) + { + var callbacks = this.signals[id]; + + if (!callbacks) + return; + + for (var i = 0; i < callbacks.length; i++) + if (callbacks[i].callback == callback + && callbacks[i].instance == instance) + callbacks.splice (i--, 1); + } + + /** + * Destroys the object, this method should only be called before losing + * the last reference to the object. + **/ + ,destroy: function () + { + delete this.signals; + } + + ,link: function (prop, handlers) + { + for (var key in prop) + { + var newObject = prop[key]; + var oldObject = this[key]; + + if (oldObject) + for (var signal in handlers) + oldObject.disconnect (signal, handlers[signal], this); + + this[key] = newObject; + + if (newObject) + for (var signal in handlers) + newObject.on (signal, handlers[signal], this); + } + } +}); + diff --git a/package/usr/share/hedera-web/js/vn/param.js b/package/usr/share/hedera-web/js/vn/param.js new file mode 100755 index 00000000..72cbf248 --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/param.js @@ -0,0 +1,65 @@ +/** + * Simply a linkable value holder. + **/ +Vn.Param = new Class +({ + Extends: Vn.Object + ,Tag: 'vn-param' + ,Properties: + { + value: + { + type: Object + ,set: function (x) + { + if (Vn.Value.compare (x, this._value)) + return; + + if (x instanceof Date) + x = x.clone (); + + this._value = x; + + if (this._master && !this.masterLock) + { + this.masterLock = true; + this._master.value = x; + this.masterLock = false; + } + + this.signalEmit ('changed'); + } + ,get: function () + { + return this._value; + } + }, + master: + { + type: Vn.Param + ,set: function (x) + { + this.link ({_master: x}, {'changed': this.onMasterChange}); + this.onMasterChange (); + } + ,get: function () + { + return this._master; + } + } + } + + ,_value: undefined + ,_master: null + ,masterLock: false + + ,onMasterChange: function () + { + if (this.masterLock) + return; + + this.masterLock = true; + this.value = this._master.value; + this.masterLock = false; + } +}) diff --git a/package/usr/share/hedera-web/js/vn/url.js b/package/usr/share/hedera-web/js/vn/url.js new file mode 100755 index 00000000..5371b8bd --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/url.js @@ -0,0 +1,74 @@ +/** + * Class to handle the URL. + **/ +Vn.Url = +{ + /** + * Gets the value of a URL variable. + * + * @param {string} key The variable name + **/ + getQuery: function (key) + { + var regExp = new RegExp ('[\?\&]'+ key +'=([^\&]*)(\&?)', 'i'); + var value = location.search.match (regExp); + + return value ? value[1] : value; + } + + /** + * Sets the value of a URL variable. + * + * @param {string} key The variable name + * @param {string} value The new value + **/ + ,setQuery: function (key, value) + { + var changed = true; + var found = false; + var newPair = key +'='+ value; + var kvPairs = location.search.substr(1).split ('?'); + + for (var i = 0; i < kvPairs.length; i++) + { + var kvPair = kvPairs[i].split ('=', 1); + + if (kvPair[0] == key) + { + if (kvPair[1] != value) + kvPairs.splice (i, 1, newPair); + else + changed = false; + + found = true; + break; + } + } + + if (!found) + kvPairs.push (newPair); + + if (changed) + document.location.hash = '?'+ kvPairs.join ('&'); + } + + ,makeUri: function (map) + { + var post = ''; + + for (var key in map) + { + var value = map[key]; + + if (post.length > 2) + post += '&'; + + if (typeof value == 'boolean') + value = new Number (value); + + post += key +'='+ encodeURIComponent (value); + } + + return post; + } +}; diff --git a/package/usr/share/hedera-web/js/vn/value.js b/package/usr/share/hedera-web/js/vn/value.js new file mode 100755 index 00000000..541eb73a --- /dev/null +++ b/package/usr/share/hedera-web/js/vn/value.js @@ -0,0 +1,48 @@ + +Vn.Value = +{ + regexpNumber: /%\.([0-9]+)d/g + ,regexpString: /%s/g + + ,compare: function (a, b) + { + if (a === b) + return true; + if (typeof a === typeof b && a instanceof Date) + return a.getTime () === b.getTime (); + + return false; + } + + ,format: function (value, format) + { + if (value === null || value === undefined) + return ''; + + if (format) + switch (typeof value) + { + case 'number': + return format.replace (this.regexpNumber, + this.replaceNumber.bind (null, value)); + case 'string': + return format.replace (this.regexpString, + this.replaceString.bind (null, value)); + case 'object': + if (value instanceof Date) + return Vn.Date.strftime (value, format); + } + + return value; + } + + ,replaceNumber: function (value, token, digits) + { + return new Number (value).toFixed (parseInt (digits)); + } + + ,replaceString: function (value) + { + return value; + } +}; diff --git a/package/usr/share/hedera-web/locale/ca/ajax/image.json b/package/usr/share/hedera-web/locale/ca/ajax/image.json new file mode 100755 index 00000000..21f09f26 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/ajax/image.json @@ -0,0 +1,11 @@ +{ + "BadFileFormat": "Format d'arxiu no reconegut" + ,"FileNotChoosed": "No ha seleccionat cap arxiu" + ,"PermissionDenied": "No disposa de permisos per a putjar el fitxer" + ,"FileUploadError": "Error al putjar el fitxer, comprovi que el seu tamany no sigui massa gran" + ,"FileSaveError": "Error al guardar el fitxer: %s" + ,"FileSizeError": "El fitxer no deu ocupar més de %.2f MB" + ,"BadFileName": "Solament és possible utilitzar lletres minúscules, digits o el caracter '_' al nom de l'arxiu" + ,"ComError": "Error en la comunicació amb el servidor" + ,"ImageOpenError": "Error al obrir l'arxiu d'imatge" +} diff --git a/package/usr/share/hedera-web/locale/ca/ajax/query.json b/package/usr/share/hedera-web/locale/ca/ajax/query.json new file mode 100755 index 00000000..3bc546a6 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/ajax/query.json @@ -0,0 +1,5 @@ +{ + "InvalidAction": "Acció invàlida" + + ,"EmptyQuery": "Consulta buida" +} diff --git a/package/usr/share/hedera-web/locale/ca/js/db.js b/package/usr/share/hedera-web/locale/ca/js/db.js new file mode 100755 index 00000000..1542f2c2 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/js/db.js @@ -0,0 +1,9 @@ +Vn.Locale.add +({ + "ConnError": "Error en la conexió" + ,"InternalError": "S'ha produït un error intern" + ,"BadServerReply": "Resposta del servidor incorrecta" + ,"ModelNotUpdatable": "Aquest model no és actualitzable" + ,"RowNotExists": "El registre no existeix o ha sigut esborrat" + ,"ColNotExists": "La columna no existeix" +}); diff --git a/package/usr/share/hedera-web/locale/ca/js/htk.js b/package/usr/share/hedera-web/locale/ca/js/htk.js new file mode 100755 index 00000000..1d9366b7 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/js/htk.js @@ -0,0 +1,24 @@ +Vn.Locale.add +({ + "True": "Sí" + ,"False": "No" + ,"Null": "Nul" + ,"ChangeDate": "Cambiar Data" + ,"Sort": "Ordenar" + ,"At": "a les" + ,"Of": "de" + ,"OfThe": "del" + ,"Remove": "Esborrar" + ,"Loading": "Carregant" + ,"ReallyDelete": "¿Realment dessitja esborrar la linia?" + ,"EmptyList": "Llistat buit" + ,"NoData": "Sense dades" + ,"ErrorLoadingData": "Error" + ,"Error": "Error" + ,"Image": "Imatge" + ,"File": "Arxiu" + ,"FileName": "Nom" + ,"UpdateImage": "Afegir / Actualitzar Imatge" + ,"UploadFile": "Putjar arxiu" + ,"Close": "Tancar" +}); diff --git a/package/usr/share/hedera-web/locale/ca/js/vn.js b/package/usr/share/hedera-web/locale/ca/js/vn.js new file mode 100755 index 00000000..fa55e123 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/js/vn.js @@ -0,0 +1,75 @@ +Vn.Locale.add +({ + "Sunday": "Diumenge" + ,"Monday": "Dilluns" + ,"Tuesday": "Dimarts" + ,"Wednesday": "Dimecres" + ,"Thursday": "Dijous" + ,"Friday": "Divendres" + ,"Saturday": "Dissabte" + + ,"Su": "Dg" + ,"Mo": "Dl" + ,"Tu": "Dt" + ,"We": "Dc" + ,"Th": "Dj" + ,"Fr": "Dv" + ,"Sa": "Ds" + + ,"January": "Gener" + ,"February": "Febrer" + ,"March": "Març" + ,"April": "Abril" + ,"May": "Maig" + ,"June": "Juny" + ,"July": "Juliol" + ,"August": "Agost" + ,"September": "Setembre" + ,"October": "Octubre" + ,"November": "Novembre" + ,"December": "Decembre" + + ,"Jan": "Gen" + ,"Feb": "Febr" + ,"Mar": "Març" + ,"Apr": "Abr" + ,"May": "Maig" + ,"Jun": "Juny" + ,"Jul": "Jul" + ,"Ago": "Ag" + ,"Sep": "Set" + ,"Oct": "Oct" + ,"Nov": "Nov" + ,"Dec": "Des" + + ,"AppName": "Verdnatura" + ,"Beta": "Beta" + ,"User": "Usuari" + ,"Password": "Contrasenya" + ,"Remember": "Recordar" + ,"Enter": "Entrar" + ,"Exit": "Sortir" + ,"Menu": "Menú" + ,"ErrorLoadingMod": "Error al carregar mòdul" + ,"YoureVisitor": "Solament esteu de visita?" + ,"NewVersionAvailable": "Existeix una nova versió del lloc web, ¿Desitgeu actualitzar?" + ,"ChangeLog": "Canvis recentes" + ,"CookiesNotification": "En utilitzar aquest lloc web acceptes l'ús de cookies per a la personalització de continguts i anàlisi." + + ,"Home": "Inici" + ,"Orders": "Encàrrecs" + ,"Catalog": "Catàleg" + ,"Configuration": "Configuració" + ,"About": "Coneix-nos" + ,"Why": "Per què?" + ,"Location": "Localització" + ,"Administration": "Administració" + ,"Users": "Usuaris" + ,"Visits": "Visites" + ,"Agencies": "Agències" + ,"News": "Noticies" + ,"Contact": "Vull ser client" + + ,"SessionExpired": "Ha estat massa temps inactiu i la sessió ha expirat." + ,"InvalidLogin": "Usuari o contrasenya incorrectes. Recorde que s'hi distingeix entre majúscula i minúscula." +}); diff --git a/package/usr/share/hedera-web/locale/ca/modules/about.json b/package/usr/share/hedera-web/locale/ca/modules/about.json new file mode 100755 index 00000000..e3553626 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/about.json @@ -0,0 +1,47 @@ +{ + "QualityAndVariety": "Calidad, variedad y servicio" + + ,"MaximumFreshness": "Verdnatura te ofrece un producto con la máxima frescura garantizada, gracias a sus recepciones diarias de flor y planta procedentes de Holanda, Sudamérica, o desde el mismo productor." + ,"SquareMeters": "Más de 13.000m de instalaciones" + ,"AboutRealms": "Con flor cortada, verdes, artificial y complementos" + ,"AboutLocation": "Asentados en Valencia, Madrid, Barcelona, Holanda y Francia, ofrecemos venta directa en nuestras instalaciones y reparto a toda España mediante servicio propio o agencia." + ,"PurchaseThroughWeb": "Compra a través de nuestra web y recibe tu pedido cómodamente en tu floristería. ¡En menos de 24 horas!" + + ,"WhatMakeUsDifferent": "¿Que nos hace diferentes?" + + ,"DesignVariety": "La variedad en el diseño, la calidad de los materiales utilizados y nuestro servicio de reparto, te garantizan un muestrario de género dinámico, siempre fresco y atractivo." + ,"AdaptToYourNeeds": "Verdnatura se adapta a las necesidades de cada cliente ofreciéndole un amplio abanico de productos, garantizado siempre." + ,"TheBestQuality": "La mejor calidad al mejor precio. Sin olvidar nunca el diseño." + + ,"AtYourService": "Estamos a tu servicio" + + ,"BuyersAndTraders": "9 compradores especializados y nuestros 20 comerciales te asesorarán en todo lo que necesites." + + ,"Training": "Verdnatura formación" + + ,"GoodTraining": "En Verdnatura sabemos que una buena formación es imprescindible para el desarrollo óptimo de cualquier actividad, y cómo no, también la de florista." + ,"SpecialTrainingPrices": "Para que el presupuesto de una escuela no repercuta en la calidad de su formación, colaboramos con una política de precios especiales para todas aquellas escuelas que lo soliciten realizar cursos en nuestras instalaciones de Verdnatura Silla." + ,"YoutubeChannel": "Y no te pierdas los vídeos de Canal Verdnatura en Youtube. Donde encontrarás un montón de consejos muy interesantes sobre el manejo de la flor." + + ,"HowWeWork": "¿Cómo trabajamos?" + + ,"FirstQualityControl": "1º control de calidad" + ,"SecondQualityControl": "2º control de calidad" + ,"ThirdQualityControl": "3º control de calidad" + ,"FourthQualityControl": "4º control de calidad" + + ,"AalsmeerAuction": "Alas 5:00h, nuestros responsables de compras adquieren, en la subasta de Aalsmeer y Noaldwijk, el género que el productor ha cosechado el día anterior." + ,"BeforeAuction": "Tras su compra, este género entra rápidamente en Verdnatura Holland BV, nuestra empresa de Flora Holland, en Aalsmeer." + ,"DirectlyFromProviders": "Además de comprar a través de la subasta Holandesa, también compramos directamente a productores de Colombia, Ecuador, Thailandia, Malasia, África y Australia. Estos productos son supervisados directamente por nuestros delegados de compra ubicados en cada zona. Esta mercancía viajará a Amsterdam, sometida a un proceso de Vaacum y en menos de dos horas desde su aterrizaje, estará en nuestras instalaciones de Aalsmeer." + ,"GoodsDischarge": "A las 7:00h nuestros compañeros de Aalsmeer empiezan a recibir la mercancía comprada, pasando un primer control de calidad, y dándola de alta en nuestro stock. Ya está disponible para nuestros clientes en la web." + ,"GoodsTravel": "La mercancía viaja durante día y medio en camiones con compartimentos estancos a temperaturas diferentes, de manera que no se rompa la cadena de frío y viaje en las mejores condiciones." + ,"GoodsReception": "A la recepción de la mercancía el responsable de su compra revisa el estado en el que llega, aceptándola o rechazándola según el caso, se descarga en frío y rápidamente entra en nuestra cámara." + ,"CustomerOrders": "Nuestros clientes pueden hacer sus pedidos a través de la web, por teléfono o viniendo directamente a nuestras instalaciones. Tenemos un equipo de comerciales especializados que te asesorará en tu compra y que te informará de las novedades y artículos que puedan ser de tu interés, de forma que tu compra se ajuste a tus necesidades y quedes totalmente satisfecho." + ,"AfterOrder": "Una vez realizado el pedido, pasa al departamento de producción. Durante la preparación de este se realiza un nuevo control de calidad (el tercero) en el que se desechará la mercancía deficiente." + ,"BuyerControl": "En cuanto se finaliza la preparación, se realiza un nuevo control (el cuarto) donde un especialista cuenta y revisa el estado de los productos. En caso de que estos no cumplan con los estándares de calidad exigidos los rechaza y los sustituye por los adecuados." + ,"EmbeddedSection": "Seguidamente se lleva a la sección de encajado, donde el pedido es acondicionado para su correcta entrega. Cada tipo de entrega requiere un método de encajado adecuado para que el género viaje protegido y llegue al cliente en perfectas condiciones." + ,"AfterEmbedAgency": "En cuanto el producto ha sido encajado se almacena de nuevo en la cámara hasta su salida por agencia o por reparto propio, recibiéndolo el cliente, en 24h en el caso de la agencia o el mismo día en el caso del reparto, cómodamente en su domicilio." + ,"FreshnessGuaranteed": "Esta forma de trabajo garantiza la mayor frescura por la rapidez los procesos y por el mantenimiento de la cadena de frío desde compra hasta su recepción por nuestro cliente." + + ,"AboutSummary": "75 personas repartidas por casi todo el mundo para que nuestro cliente tenga el más amplio catálogo del sector, la flor más fresca, la planta más novedosa, los complementos más actuales, y el servicio más rápido posible." +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/access.json b/package/usr/share/hedera-web/locale/ca/modules/access.json new file mode 100644 index 00000000..811c8490 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/access.json @@ -0,0 +1,15 @@ +{ + "AccessLog": "Registre d'accessos" + + ,"UserNumber:": "N d'usuari:" + ,"User:": "Usuari:" + ,"Phone:": "Telèfon:" + ,"Mobile:": "Mòbil:" + + ,"Access": "Accés" + ,"OS": "SO" + ,"Browser": "Navegador" + ,"Version": "Versió" + ,"Javascript": "Javascript" + ,"Cookies": "Cookies" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/account.json b/package/usr/share/hedera-web/locale/ca/modules/account.json new file mode 100755 index 00000000..fee51e3e --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/account.json @@ -0,0 +1,11 @@ +{ + "PasswordsChanged": "Contrasenya modificada!" + ,"PasswordsDoesntMatch": "Les contrasenyes no coincideixen!" + ,"Configuration": "Configuració" + ,"UserNumber": "N d'usuari:" + ,"UserName": "Nom d'usuari:" + ,"Password": "Contrasenya:" + ,"Email": "Correu electrònic:" + ,"Billing": "Facturació" + ,"BillingByEmail": "Enviar factures per correu electrònic" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/agencies.json b/package/usr/share/hedera-web/locale/ca/modules/agencies.json new file mode 100755 index 00000000..5733fe9b --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/agencies.json @@ -0,0 +1,16 @@ +{ + "ListByAgency": "Llistat de paquets per agència" + + ,"ShowByProvince": "Mostrar desglose per província" + ,"Agency": "Agència" + ,"Exps": "Exps" + ,"Bundles": "Paquets" + ,"Prevision": "Previsió" + + ,"ByProvince": "Desglose per província" + + ,"SelectAgency": "Seleccione una agència al llistat de l'esquerra" + ,"Province": "Província" + ,"Expeditions": "Expedicions" + ,"Left": "Falten" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/catalog.json b/package/usr/share/hedera-web/locale/ca/modules/catalog.json new file mode 100755 index 00000000..39222fc1 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/catalog.json @@ -0,0 +1,28 @@ +{ + "SelectFamily": "Seleccione família" + ,"SelectSubtype": "Per favor, seleccione el subtipus al menú de la dreta" + ,"ArticleNotFound": "Artcle no trobat" + ,"ArticleNotAvailable": "Article no disponible" + + ,"StartOrder": "Començar encàrrec" + ,"ShoppingBasket": "Veure la cistella de la compra" + + ,"Realm": "Família" + ,"Subtype": "Subtipus" + ,"Search:": "Cercar:" + ,"Date:": "Data:" + ,"Warehouse:": "Magatzem:" + + ,"Amount": "Quant" + ,"Aval": "Disp" + ,"Name": "Nom" + ,"S1": "Mes" + ,"S2": "S2" + ,"Stems": "Tiges" + ,"Cat": "Cat" + ,"Pack": "Pack" + ,"Origin": "Origen" + ,"AstPrice": "* Preu" + + ,"FixedPrices": "* Els preus resaltats en verd són fixes, la resta són orientatius." +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/contact.json b/package/usr/share/hedera-web/locale/ca/modules/contact.json new file mode 100755 index 00000000..7a9d405b --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/contact.json @@ -0,0 +1,20 @@ +{ + "IWantCustomer": "Vull ser client!" + + ,"FillFormData": "Ompliu el formulari amb les seves dades i en breu ens posarem en contacte amb vostè." + ,"OrCallUs": "O si ho prefereix truqui al 963 242 100." + ,"AllFieldsMandatory": "* Tots els camps són obligatoris." + + ,"Name:": "Nom:" + ,"Surname:": "Cognoms:" + ,"EMail:": "Correu electrònic:" + ,"Message:": "Missatge:" + ,"Address:": "Adreça:" + ,"PC:": "Codi postal:" + ,"City:": "Ciutat:" + ,"Phone:": "Telèfon:" + ,"Send": "Enviar dades" + + ,"DataSentSuccess": "Les seves dades han estat enviades correctament. En breu ens posarem en contacte amb vostè." + ,"ErrorSendingData": "Un error en enviar les seves dades. Si us plau, comprovi que ha omplert tots els camps i que ha introduït el codi antispam correctament." +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/home.json b/package/usr/share/hedera-web/locale/ca/modules/home.json new file mode 100755 index 00000000..0355e621 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/home.json @@ -0,0 +1,13 @@ +{ + "Sent": "Enviat" + ,"Author": "Autor" + ,"votes": "vots" + ,"NoAnswerSelected": "No ha seleccionat cap resposta" + ,"ThanksForVote": "Gràcias por el seu vot!" + ,"Vote": "Votar" + ,"Total": "Total" + ,"BrownserRecommend": + "Verdnatura li recomana utilitzar el navegador web Mozilla Firefox per a obtindre tota la funcionalitat del nostre lloc web." + ,"PressHere": "Polse ací per a descarregar Firefox" +} + diff --git a/package/usr/share/hedera-web/locale/ca/modules/links.json b/package/usr/share/hedera-web/locale/ca/modules/links.json new file mode 100755 index 00000000..251fbba7 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/links.json @@ -0,0 +1,4 @@ +{ + "Module": "Mòdul" + ,"Description": "Descripció" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/location.json b/package/usr/share/hedera-web/locale/ca/modules/location.json new file mode 100755 index 00000000..eb6899d5 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/location.json @@ -0,0 +1,3 @@ +{ + "ShowMap": "Mostrar Mapa" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/new.json b/package/usr/share/hedera-web/locale/ca/modules/new.json new file mode 100755 index 00000000..10be568f --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/new.json @@ -0,0 +1,9 @@ +{ + "AddNew": "Afegir/Editar notícia" + + ,"Title:": "Títol:" + ,"NewBody:": "Cos:" + + ,"Cancel": "Cancel" + ,"Accept": "Acceptar" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/news.json b/package/usr/share/hedera-web/locale/ca/modules/news.json new file mode 100755 index 00000000..00f6b71a --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/news.json @@ -0,0 +1,12 @@ +{ + "NewsManagement": "Gestió de noticies" + + ,"AddNew": "Afegir noticia" + ,"EditNew": "Edita notícia" + + ,"NewNum": "N notícia" + ,"Date": "Data" + ,"Author": "Autor" + ,"Title": "Títol" + ,"Priority": "Prioritat" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/order.json b/package/usr/share/hedera-web/locale/ca/modules/order.json new file mode 100755 index 00000000..7202fdb1 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/order.json @@ -0,0 +1,61 @@ +{ + "Delete": "Borrar encàrrec" + ,"GoToCatalog": "Accedir al catàleg" + ,"Checkout": "Tramitar encàrrec" + + ,"OrderNumber:": "N encàrec:" + ,"DateExit:": "Data d'eixida:" + ,"Warehouse:": "Magatzem:" + ,"OrderTotal:": "Total encàrrec:" + ,"VATNotIncluded": "(IVA i transport no inclosos)" + + ,"Amount": "Quant" + ,"Pack": "Pack" + ,"Stems": "Tijes" + ,"Avail": "Disp" + ,"Item": "Artícle" + ,"Cat": "Cat" + ,"S1": "Mes" + ,"Color": "Color" + ,"Origin": "Orige" + ,"Price": "Preu" + ,"Disc": "Desc" + ,"Subtotal": "Subtotal" + + ,"GoBasket": "Tornar a la cistella" + ,"Confirm": "Confirmar" + + ,"PayCash": "Contrareemborsament/Contat" + ,"PayMethod:": "Forma de pagament:" + ,"Notes:": "Notes:" + ,"SendMethod:": "Forma d'enviament:" + ,"Insurance": "Assegurar mercaderia: 5% de l'import de l'encàrrec (Sols per a enviament per agència)" + + ,"Consignee": "Consignatari" + ,"Province": "Provincia" + ,"PC": "Codi postal" + ,"City": "Ciutat" + ,"Address": "Domicili" + + ,"SureDelOrder": "Està seguro d'eliminar l'encàrrec?" + ,"SureConfirmOrder": "¿Dessotja confirmar el seu encàrrec?" + ,"OrderConfirmed": "El seu encàrrec ha sigut procesat i confirmat correctament" + + ,"ClientAcceptCash": "El cliente accepta pagar Contrareemborsament/Contat" + ,"InetOrder": "Encàrrec realitzat per Internet" + ,"NoOrderFound": "No s'ha trobat cap encàrrec" + ,"NoArticleAdded": "No ha afegit cap article al seu encàrrec" + ,"OrderExceeded": "Ha excedit el nombre màxim d'encarrecs per confirmar, per favor elimine o confirme els encarrecs iniciats" + ,"HighQuantity": "Alguns articles ja no estan disponibles o hi ha més quantitat de la disponible, revisi els recuadres en roig" + ,"NoArticleAdded": "No ha seleccionat cap artícle" + ,"IsertOrderType": "Introduïsca el tipus d'encàrrec que dessitja" + ,"QuantityIntroduced": "La quantitat introduïda de" + ,"IsHigherThan": "és major que la quantiat disponible, per tant s'afegirà el màxim disponible" + ,"RoundedTo": "ha sigut arredonit, degut a que aquest artícle es ven per caixes" + ,"NoOrderAfterHour": "No és possible realitzar encarrecs per a hui després de les" ,"NoOrderOnHolidays": "No és possible realitzar encarrecs per a Diumenges o festius" + ,"DateLow": "La data d'enviament ha de ser igual o superior al dia d'avui" + ,"DateHigh": "La data introduïda és massa gran" + ,"DateUpdatedTo": "El dia d'enviament ha sigut actualitzat al" + ,"CreditExceeded": "Ha excedit el seu crèdit màxim permés,si dessitja confirmar l'encàrrec igualment, marqui la casella Pagament Contrareemborsament/Contat o reduïsca l'import del seu encàrrec en " + ,"InsuranceQuestion": "Les agencies de transport dispose d'un menor nombre de treballadors a l'estiu, per les vacances, motiu el qual pot ocasionar retards en el lliurament. A més a més, unït al calor, ha causat, en algunes ocasions, que la mercaderia no arribi en òptimes condicions. Ja que els nostres ports habituals no inclouen cap tipus d'assegurança, li oferim la possibilitat d'assegurar aquest enviament. El cost seria del 5% del valor de la mercaderia. Dessitja contracta-ho?" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/orders.json b/package/usr/share/hedera-web/locale/ca/modules/orders.json new file mode 100755 index 00000000..36c949a6 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/orders.json @@ -0,0 +1,34 @@ +{ + "StartedOrdersDesc": + "Encarrecs pendents de confirmació." + + ,"StartOrder": "Començar encàrrec" + ,"ContinueOrder": "Continuar encàrrec" + ,"OrderNumber": "N encàrrec" + ,"DateMake": "Data de creació" + ,"DateExit": "Data d'eixida" + ,"SendMethod": "Forma d'enviament" + + ,"ConfirmedOrdersDesc": + "Encarrecs confirmats més recents." + + ,"PendingBalance:": "Saldo pendent:" + ,"PaymentInfo": "Per realitzar una entrega a compte feu clic al botó de la dreta i feu el pagament a l'empresa corresponent. La quantitat que apareix és el saldo pendent a dia d'avui, no té en compte comandes del futur. Pot realitzar un lliurament a compte de la quantitat que desitgi. Si voleu pagar una comanda en concret pot prémer directament el botó de pagament de la comanda." + ,"MakePayment": "Realitzar pagament" + ,"Company": "Empresa" + ,"Pending": "Pendent" + ,"Pay": "Pagar" + + ,"SeeOrder": "Mostrar detall de l'encàrrec" + ,"TicketNumber": "N ticket" + ,"SentAddress": "Adreça d'enviament" + ,"Consignee": "Consignatari" + ,"Boxes": "Caixes" + ,"TotalWithVAT": "Total amb IVA" + ,"Pending": "Pendent" + ,"PayOrder": "Pagar encàrrec" + + ,"AmountToPay:": "Quantitat a pagar (€):" + ,"AmountError": "La quantitat ha de ser un nombre positiu i inferior o igual a l'import pendent" + ,"PayError": "Error al realitzar el pagament" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/ticket.json b/package/usr/share/hedera-web/locale/ca/modules/ticket.json new file mode 100755 index 00000000..a19a5fbf --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/ticket.json @@ -0,0 +1,28 @@ +{ + "Print": "Imprimir albarà" + + ,"TicketNumber:": "N ticket:" + ,"DateExit:": "Data d'enviament:" + ,"SendMethod:": "Forma d'enviament:" + ,"Notes:": "Notes:" + ,"TicketTotal:": "Total encàrrec:" + ,"(VATIncluded)": "(IVA inclós)" + + ,"PC": "Codi postal" + ,"City": "Ciutat" + ,"Province": "Província" + ,"Address": "Domicili" + ,"Consignee": "Consignatari" + + ,"ItemNumber": "N article" + ,"Amount": "Quant" + ,"Item": "Article" + ,"Category": "Categoria" + ,"S1": "Mes" + ,"Stems": "Tijes" + ,"Color": "Color" + ,"Origin": "Orige" + ,"Price": "Preu" + ,"Disc": "Desc" + ,"Subtotal": "Subtotal" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/users.json b/package/usr/share/hedera-web/locale/ca/modules/users.json new file mode 100755 index 00000000..e43e4bfe --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/users.json @@ -0,0 +1,12 @@ +{ + "UserManagement": "Gestió d'usuaris" + + ,"UserName:": "Nom d'usuari:" + + ,"UserNumber": "N usuari" + ,"UserName": "Nom d'usuari" + ,"Alias": "Alias" + + ,"AccessAsUser": "Suplantar usuari" + ,"AccessLog": "Registre d'accessos" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/visits.json b/package/usr/share/hedera-web/locale/ca/modules/visits.json new file mode 100755 index 00000000..4a18c6ca --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/visits.json @@ -0,0 +1,31 @@ +{ + "Visits": "Visites" + ,"VisitsManagement": "Gestió de visites" + + ,"ActiveSessions": "Usuaris conectats" + ,"VisitsQuery": "Consulta de visites" + ,"Refresh": "Actualitzar" + + ,"ActiveSessions:": "Usuaris conectats:" + ,"NewVisitsTotal:": "Noves visites:" + + ,"SessionNumber": "N sessió" + ,"User": "Usuari" + ,"Login": "Hora d'accés" + ,"LastActivity": "Última activitat" + ,"SO": "Sistema Operatiu" + ,"Version": "Versió" + ,"NewVisit": "Nova visita" + + ,"SelectDateInterval": "Seleccione un intèrval de dates" + ,"FromDate:": "Des de el dia:" + ,"ToDate:": "Fins el dia:" + ,"VisitsTotal:": "Total visites:" + + ,"Browser": "Navegador" + ,"MinVersion": "Versió mínima" + ,"MaxVersion": "Versió màxima" + ,"LastVisit": "Última visita" + ,"NewVisits": "Noves visites" + ,"%a, %e %b %Y at %T": "%a, %e %b %Y a las %T" +} diff --git a/package/usr/share/hedera-web/locale/ca/modules/why.json b/package/usr/share/hedera-web/locale/ca/modules/why.json new file mode 100755 index 00000000..44ac3a44 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/modules/why.json @@ -0,0 +1,18 @@ +{ + "AboutCompany": "Per què Verdnatura?" + ,"StorePhoto": "Foto Magatzem" + ,"AboutWhy": + "
  • Perquè tenim el catàleg més gran del sector, renovat diariament.
  • Per aquest lloc web, amb stock en temps real sempre a la seua disposició.
  • Per el nostre departament de compres, amb 9 compradors especialitzats.
  • Perquè és molt fàcil realitzar el seu encàrrec mitjançant la web, per telèfon o venint.
  • Per les nostres instal·lacions, vingui y vistens. Li encantaran.
  • Pel nostre departament comercial, amb professionals que sempre ofereixen amb una solució adaptada a les seues necessitats.
  • Perquè tenim un taller de confecció per a ajudar-li.
  • Perquè tenim el que necessita quan ho necessita...
  • " + + ,"AboutDesc": + "Som una empresa dedicada a la venta a l'engrós i distribució d'una amplia gama de complements, verds i flors naturals a frloristeries o altres majoristes." + + ,"AboutService": + "Disposem de servei de repartiment a domicili amb els nostres vehícles per tota la provincia de València i arees limitades de Castelló, Alacant, Murcia, Albacete i Madrid. A la resta de la península enviem mitjançan agències de transport amb servei 24/48 hores (Zeleris, Viaexpress). També realitzaem venda directa a floristes en qualsevol de les nostres instal·lacions." + + ,"AboutDisp": + "La nostra empresa disposa de més de 50 treballadors i diferents sucursals. La principal es troba a València i disposa de més de 8000 m2. També disposem d'un magatzem situat a Mercaflor - Mercavalencia (València) en el qual solament realitzem venda directa." + + ,"AboutOrder": + "Pot realitzar els seus encarrecs i reserves telefonant al 96 324 21 00, per Internet mitjançant el nostre lloc web o bé directament a les nostres instal·lacions." +} diff --git a/package/usr/share/hedera-web/locale/ca/pages/login.json b/package/usr/share/hedera-web/locale/ca/pages/login.json new file mode 100755 index 00000000..9535b91f --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/pages/login.json @@ -0,0 +1,9 @@ +{ + "User": "Usuari" + ,"Password": "Contrasenya" + ,"NotCloseSession": "No tancar sessió" + ,"IWantToKnowMore": "Vuic saber-ne més!" + ,"Enter": "Entrar" + ,"LoginMail": "clientes@verdnatura.es" + ,"LoginPhone": "+34 607 562 391" +} diff --git a/package/usr/share/hedera-web/locale/ca/pages/tpv.json b/package/usr/share/hedera-web/locale/ca/pages/tpv.json new file mode 100755 index 00000000..9bdecf58 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/pages/tpv.json @@ -0,0 +1,4 @@ +{ + "PaymentComplete": "Pagament acabat, ja pot tornar a la nostra pàgina web." + ,"ReturnToWeb": "Tornar a Verdnatura" +} diff --git a/package/usr/share/hedera-web/locale/ca/pages/update-browser.json b/package/usr/share/hedera-web/locale/ca/pages/update-browser.json new file mode 100755 index 00000000..6aa59eeb --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/pages/update-browser.json @@ -0,0 +1,4 @@ +{ + "UpdateYourBrowser": "Actualitzi el seu navegador" + ,"ContinueAnyway": "Continuar igualment" +} diff --git a/package/usr/share/hedera-web/locale/ca/pages/web.json b/package/usr/share/hedera-web/locale/ca/pages/web.json new file mode 100755 index 00000000..42bc0f69 --- /dev/null +++ b/package/usr/share/hedera-web/locale/ca/pages/web.json @@ -0,0 +1,4 @@ +{ + "Welcome": "Benvingut/da" + ,"Exit": "Eixir" +} diff --git a/package/usr/share/hedera-web/locale/es/ajax/image.json b/package/usr/share/hedera-web/locale/es/ajax/image.json new file mode 100755 index 00000000..7d518242 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/ajax/image.json @@ -0,0 +1,11 @@ +{ + "BadFileFormat": "Formato de archivo no reconocido" + ,"FileNotChoosed": "No ha seleccionado ningún archivo" + ,"PermissionDenied": "No tiene permiso para subir el fichero" + ,"FileUploadError": "Error al subir el fichero, compruebe que su tamaño no sea demasiado grande" + ,"FileSaveError": "Error al guardar el fichero: %s" + ,"FileSizeError": "El fichero no debe ocupar mas de %.2f MB" + ,"BadFileName": "Solo es posible utilizar letras minúsculas, dígitos o el caráter '_' en el nombre del archivo" + ,"ComError": "Error en la comunicación con el servidor" + ,"ImageOpenError": "Error al abrir el archivo de imagen" +} diff --git a/package/usr/share/hedera-web/locale/es/ajax/query.json b/package/usr/share/hedera-web/locale/es/ajax/query.json new file mode 100755 index 00000000..445312b5 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/ajax/query.json @@ -0,0 +1,5 @@ +{ + "InvalidAction": "Acción inválida" + + ,"EmptyQuery": "Consulta vacia" +} diff --git a/package/usr/share/hedera-web/locale/es/js/db.js b/package/usr/share/hedera-web/locale/es/js/db.js new file mode 100755 index 00000000..55637078 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/js/db.js @@ -0,0 +1,9 @@ +Vn.Locale.add +({ + "ConnError": "Error en la conexión" + ,"InternalError": "Se ha producido un error interno" + ,"BadServerReply": "Respuesta del servidor incorrecta" + ,"ModelNotUpdatable": "Este modelo no es actualizable" + ,"RowNotExists": "El registro no existe o a sido borrado" + ,"ColNotExists": "La columna no existe" +}); diff --git a/package/usr/share/hedera-web/locale/es/js/htk.js b/package/usr/share/hedera-web/locale/es/js/htk.js new file mode 100755 index 00000000..e4874615 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/js/htk.js @@ -0,0 +1,24 @@ +Vn.Locale.add +({ + "True": "Si" + ,"False": "No" + ,"Null": "Nulo" + ,"ChangeDate": "Cambiar Fecha" + ,"Sort": "Ordenar" + ,"At": "a las" + ,"Of": "de" + ,"OfThe": "del" + ,"Remove": "Borrar" + ,"Loading": "Cargando" + ,"ReallyDelete": "¿Realmente desea borrar la línea?" + ,"EmptyList": "Lista vacía" + ,"NoData": "Sin datos" + ,"ErrorLoadingData": "Error" + ,"Error": "Error" + ,"Image": "Imagen" + ,"File": "Archivo" + ,"FileName": "Nombre" + ,"UpdateImage": "Añadir / Actualizar Imagen" + ,"UploadFile": "Subir archivo" + ,"Close": "Cerrar" +}); diff --git a/package/usr/share/hedera-web/locale/es/js/vn.js b/package/usr/share/hedera-web/locale/es/js/vn.js new file mode 100755 index 00000000..0dab2617 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/js/vn.js @@ -0,0 +1,75 @@ +Vn.Locale.add +({ + "Sunday": "Domingo" + ,"Monday": "Lunes" + ,"Tuesday": "Martes" + ,"Wednesday": "Miercoles" + ,"Thursday": "Jueves" + ,"Friday": "Viernes" + ,"Saturday": "Sábado" + + ,"Su": "Do" + ,"Mo": "Lu" + ,"Tu": "Ma" + ,"We": "Mi" + ,"Th": "Ju" + ,"Fr": "Vi" + ,"Sa": "Sa" + + ,"January": "Enero" + ,"February": "Febrero" + ,"March": "Marzo" + ,"April": "Abril" + ,"May": "Mayo" + ,"June": "Junio" + ,"July": "Julio" + ,"August": "Agosto" + ,"September": "Septiembre" + ,"October": "Octubre" + ,"November": "Noviembre" + ,"December": "Diciembre" + + ,"Jan": "Ene" + ,"Feb": "Feb" + ,"Mar": "Mar" + ,"Apr": "Abr" + ,"May": "May" + ,"Jun": "Jun" + ,"Jul": "Jul" + ,"Ago": "Ago" + ,"Sep": "Sep" + ,"Oct": "Oct" + ,"Nov": "Nov" + ,"Dec": "Dic" + + ,"AppName": "Verdnatura" + ,"Beta": "Beta" + ,"User": "Usuario" + ,"Password": "Contraseña" + ,"Remember": "Recordar" + ,"Enter": "Entrar" + ,"Exit": "Salir" + ,"Menu": "Menú" + ,"ErrorLoadingMod": "Error al cargar módulo" + ,"YoureVisitor": "¿Solo estás de visita?" + ,"NewVersionAvailable": "Existe una nueva versión de la página web, ¿Desea actualizar?" + ,"ChangeLog": "Cambios recientes" + ,"CookiesNotification": "Al utilizar este sitio web aceptas el uso de cookies para la personalización de contenidos y análisis." + + ,"Home": "Inicio" + ,"Orders": "Pedidos" + ,"Catalog": "Catálogo" + ,"Configuration": "Configuración" + ,"About": "Conócenos" + ,"Why": "¿Por qué?" + ,"Location": "Localización" + ,"Administration": "Administración" + ,"Users": "Usuarios" + ,"Visits": "Visitas" + ,"Agencies": "Agencias" + ,"News": "Noticias" + ,"Contact": "Quiero ser cliente" + + ,"SessionExpired": "Ha estado demasiado tiempo inactivo y su sesión ha expirado." + ,"InvalidLogin": "Usuario o contraseña incorrectos. Recuerde que se hace distinción entre mayúsculas y minúsculas." +}); diff --git a/package/usr/share/hedera-web/locale/es/modules/about.json b/package/usr/share/hedera-web/locale/es/modules/about.json new file mode 100755 index 00000000..e3553626 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/about.json @@ -0,0 +1,47 @@ +{ + "QualityAndVariety": "Calidad, variedad y servicio" + + ,"MaximumFreshness": "Verdnatura te ofrece un producto con la máxima frescura garantizada, gracias a sus recepciones diarias de flor y planta procedentes de Holanda, Sudamérica, o desde el mismo productor." + ,"SquareMeters": "Más de 13.000m de instalaciones" + ,"AboutRealms": "Con flor cortada, verdes, artificial y complementos" + ,"AboutLocation": "Asentados en Valencia, Madrid, Barcelona, Holanda y Francia, ofrecemos venta directa en nuestras instalaciones y reparto a toda España mediante servicio propio o agencia." + ,"PurchaseThroughWeb": "Compra a través de nuestra web y recibe tu pedido cómodamente en tu floristería. ¡En menos de 24 horas!" + + ,"WhatMakeUsDifferent": "¿Que nos hace diferentes?" + + ,"DesignVariety": "La variedad en el diseño, la calidad de los materiales utilizados y nuestro servicio de reparto, te garantizan un muestrario de género dinámico, siempre fresco y atractivo." + ,"AdaptToYourNeeds": "Verdnatura se adapta a las necesidades de cada cliente ofreciéndole un amplio abanico de productos, garantizado siempre." + ,"TheBestQuality": "La mejor calidad al mejor precio. Sin olvidar nunca el diseño." + + ,"AtYourService": "Estamos a tu servicio" + + ,"BuyersAndTraders": "9 compradores especializados y nuestros 20 comerciales te asesorarán en todo lo que necesites." + + ,"Training": "Verdnatura formación" + + ,"GoodTraining": "En Verdnatura sabemos que una buena formación es imprescindible para el desarrollo óptimo de cualquier actividad, y cómo no, también la de florista." + ,"SpecialTrainingPrices": "Para que el presupuesto de una escuela no repercuta en la calidad de su formación, colaboramos con una política de precios especiales para todas aquellas escuelas que lo soliciten realizar cursos en nuestras instalaciones de Verdnatura Silla." + ,"YoutubeChannel": "Y no te pierdas los vídeos de Canal Verdnatura en Youtube. Donde encontrarás un montón de consejos muy interesantes sobre el manejo de la flor." + + ,"HowWeWork": "¿Cómo trabajamos?" + + ,"FirstQualityControl": "1º control de calidad" + ,"SecondQualityControl": "2º control de calidad" + ,"ThirdQualityControl": "3º control de calidad" + ,"FourthQualityControl": "4º control de calidad" + + ,"AalsmeerAuction": "Alas 5:00h, nuestros responsables de compras adquieren, en la subasta de Aalsmeer y Noaldwijk, el género que el productor ha cosechado el día anterior." + ,"BeforeAuction": "Tras su compra, este género entra rápidamente en Verdnatura Holland BV, nuestra empresa de Flora Holland, en Aalsmeer." + ,"DirectlyFromProviders": "Además de comprar a través de la subasta Holandesa, también compramos directamente a productores de Colombia, Ecuador, Thailandia, Malasia, África y Australia. Estos productos son supervisados directamente por nuestros delegados de compra ubicados en cada zona. Esta mercancía viajará a Amsterdam, sometida a un proceso de Vaacum y en menos de dos horas desde su aterrizaje, estará en nuestras instalaciones de Aalsmeer." + ,"GoodsDischarge": "A las 7:00h nuestros compañeros de Aalsmeer empiezan a recibir la mercancía comprada, pasando un primer control de calidad, y dándola de alta en nuestro stock. Ya está disponible para nuestros clientes en la web." + ,"GoodsTravel": "La mercancía viaja durante día y medio en camiones con compartimentos estancos a temperaturas diferentes, de manera que no se rompa la cadena de frío y viaje en las mejores condiciones." + ,"GoodsReception": "A la recepción de la mercancía el responsable de su compra revisa el estado en el que llega, aceptándola o rechazándola según el caso, se descarga en frío y rápidamente entra en nuestra cámara." + ,"CustomerOrders": "Nuestros clientes pueden hacer sus pedidos a través de la web, por teléfono o viniendo directamente a nuestras instalaciones. Tenemos un equipo de comerciales especializados que te asesorará en tu compra y que te informará de las novedades y artículos que puedan ser de tu interés, de forma que tu compra se ajuste a tus necesidades y quedes totalmente satisfecho." + ,"AfterOrder": "Una vez realizado el pedido, pasa al departamento de producción. Durante la preparación de este se realiza un nuevo control de calidad (el tercero) en el que se desechará la mercancía deficiente." + ,"BuyerControl": "En cuanto se finaliza la preparación, se realiza un nuevo control (el cuarto) donde un especialista cuenta y revisa el estado de los productos. En caso de que estos no cumplan con los estándares de calidad exigidos los rechaza y los sustituye por los adecuados." + ,"EmbeddedSection": "Seguidamente se lleva a la sección de encajado, donde el pedido es acondicionado para su correcta entrega. Cada tipo de entrega requiere un método de encajado adecuado para que el género viaje protegido y llegue al cliente en perfectas condiciones." + ,"AfterEmbedAgency": "En cuanto el producto ha sido encajado se almacena de nuevo en la cámara hasta su salida por agencia o por reparto propio, recibiéndolo el cliente, en 24h en el caso de la agencia o el mismo día en el caso del reparto, cómodamente en su domicilio." + ,"FreshnessGuaranteed": "Esta forma de trabajo garantiza la mayor frescura por la rapidez los procesos y por el mantenimiento de la cadena de frío desde compra hasta su recepción por nuestro cliente." + + ,"AboutSummary": "75 personas repartidas por casi todo el mundo para que nuestro cliente tenga el más amplio catálogo del sector, la flor más fresca, la planta más novedosa, los complementos más actuales, y el servicio más rápido posible." +} diff --git a/package/usr/share/hedera-web/locale/es/modules/access.json b/package/usr/share/hedera-web/locale/es/modules/access.json new file mode 100644 index 00000000..49042a77 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/access.json @@ -0,0 +1,15 @@ +{ + "AccessLog": "Registro de accesos" + + ,"UserNumber:": "Nº usuario:" + ,"User:": "Usuario:" + ,"Phone:": "Teléfono:" + ,"Mobile:": "Móvil:" + + ,"Access": "Acceso" + ,"OS": "SO" + ,"Browser": "Navegador" + ,"Version": "Versión" + ,"Javascript": "Javascript" + ,"Cookies": "Cookies" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/account.json b/package/usr/share/hedera-web/locale/es/modules/account.json new file mode 100755 index 00000000..ac69558b --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/account.json @@ -0,0 +1,11 @@ +{ + "PasswordsChanged": "¡Contraseña modificada!" + ,"PasswordsDoesntMatch": "¡Las contraseñas no coinciden!" + ,"Configuration": "Configuración" + ,"UserNumber": "Nº usuario:" + ,"UserName": "Nombre de usuario:" + ,"Password": "Contraseña:" + ,"Email": "Correo electrónico:" + ,"Billing": "Facturación" + ,"BillingByEmail": "Enviar facturas por correo electrónico" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/agencies.json b/package/usr/share/hedera-web/locale/es/modules/agencies.json new file mode 100755 index 00000000..5394818a --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/agencies.json @@ -0,0 +1,16 @@ +{ + "ListByAgency": "Listado de bultos por agencia" + + ,"ShowByProvince": "Mostrar desglose por provincia" + ,"Agency": "Agencia" + ,"Exps": "Exps" + ,"Bundles": "Bultos" + ,"Prevision": "Previsión" + + ,"ByProvince": "Desglose por provincia" + + ,"SelectAgency": "Seleccione una agencia en el listado de la izquierda" + ,"Province": "Provincia" + ,"Expeditions": "Expediciones" + ,"Left": "Faltan" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/catalog.json b/package/usr/share/hedera-web/locale/es/modules/catalog.json new file mode 100755 index 00000000..6f807368 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/catalog.json @@ -0,0 +1,29 @@ +{ + "SelectFamily": "Seleccione familia" + ,"SelectSubtype": "Por favor, seleccione el subtipo en el menú de la derecha" + ,"ArticleNotFound": "Artículo no encontrado" + ,"ArticleNotAvailable": "Artículo no disponible" + + ,"StartOrder": "Empezar pedido" + ,"ShoppingBasket": "Ver cesta de la compra" + + ,"Realm": "Familia" + ,"Subtype": "Subtipo" + ,"Date:": "Fecha:" + ,"Warehouse:": "Almacén:" + ,"Search:": "Buscar:" + ,"GeneralSearch": "Búsqueda general" + + ,"Amount": "Cant" + ,"Aval": "Disp" + ,"Name": "Nombre" + ,"S1": "Med" + ,"S2": "S2" + ,"Stems": "Tallos" + ,"Cat": "Cat" + ,"Pack": "Pack" + ,"Origin": "Origen" + ,"AstPrice": "* Precio" + + ,"FixedPrices": "* Los precios resaltados en verde son fijos, el resto son orientativos." +} diff --git a/package/usr/share/hedera-web/locale/es/modules/contact.json b/package/usr/share/hedera-web/locale/es/modules/contact.json new file mode 100755 index 00000000..fff7de6a --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/contact.json @@ -0,0 +1,20 @@ +{ + "IWantCustomer": "¡Quiero ser cliente!" + + ,"FillFormData": "Rellene el formulario con sus datos y en breve nos pondremos en contacto con usted." + ,"OrCallUs": "O si lo prefiere llámenos al 963 242 100." + ,"AllFieldsMandatory": "* Todos los campos son obligatorios." + + ,"Name:": "Nombre:" + ,"Surname:": "Apellidos:" + ,"EMail:": "Correo electrónico:" + ,"Message:": "Mensaje:" + ,"Address:": "Dirección:" + ,"PC:": "Código postal:" + ,"City:": "Ciudad:" + ,"Phone:": "Teléfono:" + ,"Send": "Enviar datos" + + ,"DataSentSuccess": "Sus datos han sido enviados correctamente. En breve nos pondremos en contacto con usted." + ,"ErrorSendingData": "Error al enviar sus datos. Por favor, compruebe que ha rellenado todos los campos y que ha introducido el código anti-spam correctamente." +} diff --git a/package/usr/share/hedera-web/locale/es/modules/home.json b/package/usr/share/hedera-web/locale/es/modules/home.json new file mode 100755 index 00000000..fd06f8e2 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/home.json @@ -0,0 +1,13 @@ +{ + "Sent": "Enviado" + ,"Author": "Autor" + ,"votes": "votos" + ,"NoAnswerSelected": "No ha seleccionado ninguna respuesta" + ,"ThanksForVote": "¡Gracias por su voto!" + ,"Vote": "Votar" + ,"Total": "Total" + ,"BrownserRecommend": + "Verdnatura le recomienda utilizar el navegador web Mozilla Firefox para obtener toda la funcionalidad de nuestra página web." + ,"PressHere": "Pulse aquí para descargar Firefox" +} + diff --git a/package/usr/share/hedera-web/locale/es/modules/links.json b/package/usr/share/hedera-web/locale/es/modules/links.json new file mode 100755 index 00000000..8ca8aea0 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/links.json @@ -0,0 +1,4 @@ +{ + "Module": "Módulo" + ,"Description": "Descripción" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/location.json b/package/usr/share/hedera-web/locale/es/modules/location.json new file mode 100755 index 00000000..eb6899d5 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/location.json @@ -0,0 +1,3 @@ +{ + "ShowMap": "Mostrar Mapa" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/new.json b/package/usr/share/hedera-web/locale/es/modules/new.json new file mode 100755 index 00000000..c8148af3 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/new.json @@ -0,0 +1,9 @@ +{ + "AddNew": "Añadir/Editar noticia" + + ,"Title:": "Título:" + ,"NewBody:": "Cuerpo:" + + ,"Cancel": "Cancelar" + ,"Accept": "Aceptar" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/news.json b/package/usr/share/hedera-web/locale/es/modules/news.json new file mode 100755 index 00000000..89bb2d28 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/news.json @@ -0,0 +1,12 @@ +{ + "NewsManagement": "Gestión de noticias" + + ,"AddNew": "Añadir noticia" + ,"EditNew": "Editar noticia" + + ,"NewNum": "Nº noticia" + ,"Date": "Fecha" + ,"Author": "Autor" + ,"Title": "Título" + ,"Priority": "Prioridad" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/order.json b/package/usr/share/hedera-web/locale/es/modules/order.json new file mode 100755 index 00000000..3abb50dd --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/order.json @@ -0,0 +1,62 @@ +{ + "Delete": "Borrar pedido" + ,"GoToCatalog": "Acceder al catálogo" + ,"Checkout": "Tramitar pedido" + + ,"OrderNumber:": "Nº pedido:" + ,"DateExit:": "Fecha de salida:" + ,"Warehouse:": "Almacén:" + ,"OrderTotal:": "Total pedido:" + ,"VATNotIncluded": "(IVA y transporte no incluídos)" + + ,"Amount": "Cant" + ,"Pack": "Pack" + ,"Stems": "Tallos" + ,"Avail": "Disp" + ,"Item": "Artículo" + ,"Cat": "Cat" + ,"S1": "Med" + ,"Color": "Color" + ,"Origin": "Origen" + ,"Price": "Precio" + ,"Disc": "Desc" + ,"Subtotal": "Subtotal" + + ,"GoBasket": "Volver a la cesta" + ,"Confirm": "Confirmar" + + ,"PayCash": "Contrareembolso/Contado" + ,"PayMethod:": "Forma de pago:" + ,"Notes:": "Notas:" + ,"SendMethod:": "Forma de envío:" + ,"Insurance": "Asegurar mercancía: 5% del importe del pedido (Solo para envíos por agencia)" + + ,"Consignee": "Consignatario" + ,"Province": "Provincia" + ,"PC": "Código postal" + ,"City": "Ciudad" + ,"Address": "Domicilio" + + ,"SureDelOrder": "¿Está seguro de eliminar el pedido?" + ,"SureConfirmOrder": "¿Desea confirmar su pedido?" + ,"OrderConfirmed": "Su pedido ha sido procesado y confirmado correctamente" + + ,"ClientAcceptCash": "El cliente accepta pagar Contrareembolso/Contado" + ,"InetOrder": "Pedido realizado por Internet" + ,"NoOrderFound": "No se ha encontrado ningún pedido" + ,"NoArticleAdded": "No ha agregado ningún artículo a su pedido" + ,"OrderExceeded": "Ha excedido el numero maximo de pedidos por confirmar, por favor elimine o confirme los pedidos iniciados" + ,"HighQuantity": "Algunos artículos ya no están disponibles o hay mas cantidad de la disponible, revise los recuadros en rojo" + ,"NoArticleAdded": "No ha seleccionado ningun artículo" + ,"IsertOrderType": "Introduzca el tipo de pedido que desea" + ,"QuantityIntroduced": "La cantidad introducida de" + ,"IsHigherThan": "es mayor que la cantidad disponible, por lo tanto se agregará el máximo disponible" + ,"RoundedTo": "ha sido redondeada debido a que este artículo se vende por cajas" + ,"NoOrderAfterHour": "No es posible realizar pedidos para hoy despues de las" + ,"NoOrderOnHolidays": "No es posible realizar pedidos para Domingos o festivos" + ,"DateLow": "La fecha de envío debe de ser igual o superior al día de hoy" + ,"DateHigh": "La fecha introducida es demasiado grande" + ,"DateUpdatedTo": "El día de envío ha sido actualizado a el" + ,"CreditExceeded": "Ha excedido su crédito máximo permitido, si desea confimar el pedido de todas formas marque la casilla Pago Contrareembolso/Contado o reduzca el importe de su pedido en " + ,"InsuranceQuestion": "Las agencias de transporte disponen de un menor número de trabajadores en verano, por las vacaciones, lo que puede ocasionar retrasos en la entrega. Esto, unido al calor, ha causado, en algunas ocasiones, que la mercancía no llegara en óptimas condiciones. Ya que nuestros portes habituales no incluyen ningún tipo de seguro, le ofrecemos la posibilidad de asegurar este envio. El coste sería de el 5% del valor de la mercancía. ¿Desea contratarlo?" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/orders.json b/package/usr/share/hedera-web/locale/es/modules/orders.json new file mode 100755 index 00000000..678de8b4 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/orders.json @@ -0,0 +1,34 @@ +{ + "StartedOrdersDesc": + "Pedidos pendientes de confirmar." + + ,"StartOrder": "Empezar pedido" + ,"ContinueOrder": "Continuar pedido" + ,"OrderNumber": "Nº pedido" + ,"DateMake": "Fecha de creación" + ,"DateExit": "Fecha de salida" + ,"SendMethod": "Forma de envío" + + ,"ConfirmedOrdersDesc": + "Pedidos confirmados más recientes." + + ,"PendingBalance:": "Saldo pendiente:" + ,"PaymentInfo": "Para realizar una entrega a cuenta pulse en el botón de la derecha y haga el pago en la empresa correspondiente. La cantidad que aparece es el saldo pendiente a día de hoy, no tiene en cuenta pedidos del futuro. Puede realizar una entrega a cuenta de la cantidad que desee. Si desea pagar un pedido en concreto puede pulsar directamente en el botón de pago del pedido." + ,"MakePayment": "Realizar pago" + ,"Company": "Empresa" + ,"Pending": "Pendiente" + ,"Pay": "Pagar" + + ,"SeeOrder": "Mostrar detalle del pedido" + ,"TicketNumber": "Nº ticket" + ,"SentAddress": "Dirección de envío" + ,"Consignee": "Consignatario" + ,"Boxes": "Bultos" + ,"TotalWithVAT": "Total con IVA" + ,"Pending": "Pendiente" + ,"PayOrder": "Pagar pedido" + + ,"AmountToPay:": "Cantidad a pagar (€):" + ,"AmountError": "La cantidad debe ser un número positivo e inferior o igual al importe pendiente" + ,"PayError": "Error al realizar el pago" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/ticket.json b/package/usr/share/hedera-web/locale/es/modules/ticket.json new file mode 100755 index 00000000..10b9df77 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/ticket.json @@ -0,0 +1,28 @@ +{ + "Print": "Imprimir albarán" + + ,"TicketNumber:": "Nº ticket:" + ,"DateExit:": "Fecha de envío:" + ,"SendMethod:": "Forma de envío:" + ,"Notes:": "Notas:" + ,"TicketTotal:": "Total pedido:" + ,"(VATIncluded)": "(IVA incluído)" + + ,"PC": "Código postal" + ,"City": "Ciudad" + ,"Province": "Provincia" + ,"Address": "Domicilio" + ,"Consignee": "Consignatario" + + ,"ItemNumber": "Nº artículo" + ,"Amount": "Cant" + ,"Item": "Artículo" + ,"Category": "Categoría" + ,"S1": "Med" + ,"Stems": "Tallos" + ,"Color": "Color" + ,"Origin": "Origen" + ,"Price": "Precio" + ,"Disc": "Desc" + ,"Subtotal": "Subtotal" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/users.json b/package/usr/share/hedera-web/locale/es/modules/users.json new file mode 100755 index 00000000..b7d55eda --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/users.json @@ -0,0 +1,12 @@ +{ + "UserManagement": "Gestión de usuarios" + + ,"UserName:": "Nombre de usuario:" + + ,"UserNumber": "Nº usuario" + ,"UserName": "Nombre de usuario" + ,"Alias": "Alias" + + ,"AccessAsUser": "Suplantar usuario" + ,"AccessLog": "Registro de accesos" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/visits.json b/package/usr/share/hedera-web/locale/es/modules/visits.json new file mode 100755 index 00000000..8a4f3649 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/visits.json @@ -0,0 +1,31 @@ +{ + "Visits": "Visitas" + ,"VisitsManagement": "Gestión de visitas" + + ,"ActiveSessions": "Usuarios conectados" + ,"VisitsQuery": "Consulta de visitas" + ,"Refresh": "Actualizar" + + ,"ActiveSessions:": "Usuarios conectados:" + ,"NewVisitsTotal:": "Nuevas visitas:" + + ,"SessionNumber": "Nº sesión" + ,"User": "Usuario" + ,"Login": "Hora de acceso" + ,"LastActivity": "Última actividad" + ,"SO": "Sistema Operativo" + ,"Version": "Versión" + ,"NewVisit": "Nueva visita" + + ,"SelectDateInterval": "Seleccione un intérvalo de fechas" + ,"FromDate:": "Desde el día:" + ,"ToDate:": "Hasta el día:" + ,"VisitsTotal:": "Total visitas:" + + ,"Browser": "Navegador" + ,"MinVersion": "Versión mínima" + ,"MaxVersion": "Versión máxima" + ,"LastVisit": "Última visita" + ,"NewVisits": "Nuevas visitas" + ,"%a, %e %b %Y at %T": "%a, %e %b %Y a las %T" +} diff --git a/package/usr/share/hedera-web/locale/es/modules/why.json b/package/usr/share/hedera-web/locale/es/modules/why.json new file mode 100755 index 00000000..49172ca3 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/modules/why.json @@ -0,0 +1,18 @@ +{ + "AboutCompany": "¿Por qué Verdnatura?" + ,"StorePhoto": "Foto Almacén" + ,"AboutWhy": + "
  • Porque tenemos el catálogo más grande del sector, renovado diariamente.
  • Por esta página web, con stock en tiempo real siempre a tu disposición.
  • Por nuestro departamento de compras con 9 compradores especializados.
  • Porque es muy fácil hacer tu pedido por web, por teléfono o viniendo.
  • Por nuestras instalaciones, ven y visítanos. Te encantarán.
  • Por nuestro departamento comercial, con profesionales que siempre encontrarán una solución a tus necesidades.
  • Porque tenemos un taller de confección para ayudarte.
  • Porque tenemos lo que necesitas cuando lo necesitas...
  • " + + ,"AboutDesc": + "Somos una empresa dedicada a la venta mayorista y distribución de una amplia gama de complementos, verdes y flores naturales a floristerías u otros mayoristas." + + ,"AboutService": + "Disponemos de servicio de reparto a domicilio con nuestros vehículos por toda la provincia de Valencia y áreas limitadas de Castellón, Alicante, Murcia, Albacete y Madrid enviamos al resto de la península mediante agencias de transporte con servicio 24/48 horas (Zeleris, Viaexpress). También realizamos venta directa a floristas en cualquiera de nuestras instalaciones." + + ,"AboutDisp": + "Nuestra empresa dispone de más de 50 trabajadores y varias sucursales. La principal se encuentra situada en Valencia y cuenta con más de 8000 m2. También disponemos de un almacén situado en Mercaflor - Mercavalencia (Valencia) en el que únicamente realizamos venta directa." + + ,"AboutOrder": + "Puede realizar sus pedidos y reservas por teléfono llamando al 96 324 21 00, por Internet a través de nuestra página web o bien directamente en nuestras instalaciones." +} diff --git a/package/usr/share/hedera-web/locale/es/pages/login.json b/package/usr/share/hedera-web/locale/es/pages/login.json new file mode 100755 index 00000000..aee401e2 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/pages/login.json @@ -0,0 +1,9 @@ +{ + "User": "Usuario" + ,"Password": "Contraseña" + ,"NotCloseSession": "No cerrar sesión" + ,"IWantToKnowMore": "¡Quiero saber más!" + ,"Enter": "Entrar" + ,"LoginMail": "clientes@verdnatura.es" + ,"LoginPhone": "+34 963 242 100" +} diff --git a/package/usr/share/hedera-web/locale/es/pages/tpv.json b/package/usr/share/hedera-web/locale/es/pages/tpv.json new file mode 100755 index 00000000..9117f5f0 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/pages/tpv.json @@ -0,0 +1,4 @@ +{ + "PaymentComplete": "Pago terminado, ya puede volver a nuestra página web." + ,"ReturnToWeb": "Volver a Verdnatura" +} diff --git a/package/usr/share/hedera-web/locale/es/pages/update-browser.json b/package/usr/share/hedera-web/locale/es/pages/update-browser.json new file mode 100755 index 00000000..85ce3b73 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/pages/update-browser.json @@ -0,0 +1,4 @@ +{ + "UpdateYourBrowser": "Actualice su navegador" + ,"ContinueAnyway": "Continuar de todos modos" +} diff --git a/package/usr/share/hedera-web/locale/es/pages/web.json b/package/usr/share/hedera-web/locale/es/pages/web.json new file mode 100755 index 00000000..443b7269 --- /dev/null +++ b/package/usr/share/hedera-web/locale/es/pages/web.json @@ -0,0 +1,4 @@ +{ + "Welcome": "Bienvenido/a" + ,"Exit": "Salir" +} diff --git a/package/usr/share/hedera-web/locale/fr/ajax/image.json b/package/usr/share/hedera-web/locale/fr/ajax/image.json new file mode 100755 index 00000000..7d518242 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/ajax/image.json @@ -0,0 +1,11 @@ +{ + "BadFileFormat": "Formato de archivo no reconocido" + ,"FileNotChoosed": "No ha seleccionado ningún archivo" + ,"PermissionDenied": "No tiene permiso para subir el fichero" + ,"FileUploadError": "Error al subir el fichero, compruebe que su tamaño no sea demasiado grande" + ,"FileSaveError": "Error al guardar el fichero: %s" + ,"FileSizeError": "El fichero no debe ocupar mas de %.2f MB" + ,"BadFileName": "Solo es posible utilizar letras minúsculas, dígitos o el caráter '_' en el nombre del archivo" + ,"ComError": "Error en la comunicación con el servidor" + ,"ImageOpenError": "Error al abrir el archivo de imagen" +} diff --git a/package/usr/share/hedera-web/locale/fr/ajax/query.json b/package/usr/share/hedera-web/locale/fr/ajax/query.json new file mode 100755 index 00000000..445312b5 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/ajax/query.json @@ -0,0 +1,5 @@ +{ + "InvalidAction": "Acción inválida" + + ,"EmptyQuery": "Consulta vacia" +} diff --git a/package/usr/share/hedera-web/locale/fr/js/db.js b/package/usr/share/hedera-web/locale/fr/js/db.js new file mode 100755 index 00000000..40fd84b5 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/js/db.js @@ -0,0 +1,9 @@ +Vn.Locale.add +({ + "ConnError": "Échec de la connexion" + ,"InternalError": "Il y avait une erreur interne" + ,"BadServerReply": "Réponse du serveur incorrecte" + ,"ModelNotUpdatable": "Ce modèle n'est pas modifiable" + ,"RowNotExists": "Le dossier n'existe pas ou a été supprimée" + ,"ColNotExists": "N'existe pas la colonne" +}); diff --git a/package/usr/share/hedera-web/locale/fr/js/htk.js b/package/usr/share/hedera-web/locale/fr/js/htk.js new file mode 100755 index 00000000..c5a89539 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/js/htk.js @@ -0,0 +1,24 @@ +Vn.Locale.add +({ + "True": "Si" + ,"False": "Aucun" + ,"Null": "Nul" + ,"ChangeDate": "Modification de la date" + ,"Sort": "Ordre" + ,"At": "à" + ,"Of": "de" + ,"OfThe": "de" + ,"Remove": "Effacer" + ,"Loading": "Chargement" + ,"ReallyDelete": "Voulez-vous vraiment supprimer la ligne?" + ,"EmptyList": "Vider la liste" + ,"NoData": "Aucune donnée" + ,"ErrorLoadingData": "Erreur" + ,"Error": "Erreur" + ,"Image": "Image" + ,"File": "Archives" + ,"FileName": "Nom" + ,"UpdateImage": "Ajouter / Mettre à jour l'image" + ,"UploadFile": "Télécharger le fichier" + ,"Close": "Croche" +}); diff --git a/package/usr/share/hedera-web/locale/fr/js/vn.js b/package/usr/share/hedera-web/locale/fr/js/vn.js new file mode 100755 index 00000000..37b85202 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/js/vn.js @@ -0,0 +1,75 @@ +Vn.Locale.add +({ + "Sunday": "Dimanche" + ,"Monday": "Lundi" + ,"Tuesday": "Mardi" + ,"Wednesday": "Mercredi" + ,"Thursday": "Jeudi" + ,"Friday": "Vendredi" + ,"Saturday": "Samedi" + + ,"Su": "Do" + ,"Mo": "Lu" + ,"Tu": "Ma" + ,"We": "Me" + ,"Th": "Je" + ,"Fr": "Ve" + ,"Sa": "Sa" + + ,"January": "Janvier" + ,"February": "Février" + ,"March": "Mars" + ,"April": "Avril" + ,"May": "Mai" + ,"June": "Juin" + ,"July": "Juillet" + ,"August": "Août" + ,"September": "Septembre" + ,"October": "Octobre" + ,"November": "Novembre" + ,"December": "Décembre" + + ,"Jan": "Jan" + ,"Feb": "Fév" + ,"Mar": "Mars" + ,"Apr": "Avr" + ,"May": "Mai" + ,"Jun": "Juin" + ,"Jul": "Juil" + ,"Ago": "Août" + ,"Sep": "Sep" + ,"Oct": "Oct" + ,"Nov": "Nov" + ,"Dec": "Déc" + + ,"AppName": "Verdnatura" + ,"Beta": "Beta" + ,"User": "Utilisateur" + ,"Password": "Mot de passe" + ,"Remember": "Rappeler" + ,"Enter": "entrer" + ,"Exit": "Laisser" + ,"Menu": "Menu" + ,"ErrorLoadingMod": "Module erreur de chargement" + ,"YoureVisitor": "¿Solo estás de visita?" + ,"NewVersionAvailable": "Une nouvelle version du site, Vous voulez mettre à niveau?" + ,"ChangeLog": "Modifications récentes" + ,"CookiesNotification": "En utilisant ce site, vous acceptez l'utilisation de cookies pour personnaliser le contenu et l'analyse." + + ,"Home": "Accueil" + ,"Orders": "Commandes" + ,"Catalog": "Catalogue" + ,"Configuration": "Configuration" + ,"About": "Nous" + ,"Why": "Pourquoi?" + ,"Location": "Emplacement" + ,"Administration": "Administration" + ,"Users": "Utilisateurs" + ,"Visits": "Visites" + ,"Agencies": "Agences" + ,"News": "Nouvelles" + ,"Contact": "Je veux être client" + + ,"SessionExpired": "Il a eu le temps de trop paresseux et votre session a expiré." + ,"InvalidLogin": "Utilisateur ou mot de passe incorrect. N'oubliez pas de distinction entre majuscules et minuscules." +}); diff --git a/package/usr/share/hedera-web/locale/fr/modules/about.json b/package/usr/share/hedera-web/locale/fr/modules/about.json new file mode 100755 index 00000000..e3553626 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/about.json @@ -0,0 +1,47 @@ +{ + "QualityAndVariety": "Calidad, variedad y servicio" + + ,"MaximumFreshness": "Verdnatura te ofrece un producto con la máxima frescura garantizada, gracias a sus recepciones diarias de flor y planta procedentes de Holanda, Sudamérica, o desde el mismo productor." + ,"SquareMeters": "Más de 13.000m de instalaciones" + ,"AboutRealms": "Con flor cortada, verdes, artificial y complementos" + ,"AboutLocation": "Asentados en Valencia, Madrid, Barcelona, Holanda y Francia, ofrecemos venta directa en nuestras instalaciones y reparto a toda España mediante servicio propio o agencia." + ,"PurchaseThroughWeb": "Compra a través de nuestra web y recibe tu pedido cómodamente en tu floristería. ¡En menos de 24 horas!" + + ,"WhatMakeUsDifferent": "¿Que nos hace diferentes?" + + ,"DesignVariety": "La variedad en el diseño, la calidad de los materiales utilizados y nuestro servicio de reparto, te garantizan un muestrario de género dinámico, siempre fresco y atractivo." + ,"AdaptToYourNeeds": "Verdnatura se adapta a las necesidades de cada cliente ofreciéndole un amplio abanico de productos, garantizado siempre." + ,"TheBestQuality": "La mejor calidad al mejor precio. Sin olvidar nunca el diseño." + + ,"AtYourService": "Estamos a tu servicio" + + ,"BuyersAndTraders": "9 compradores especializados y nuestros 20 comerciales te asesorarán en todo lo que necesites." + + ,"Training": "Verdnatura formación" + + ,"GoodTraining": "En Verdnatura sabemos que una buena formación es imprescindible para el desarrollo óptimo de cualquier actividad, y cómo no, también la de florista." + ,"SpecialTrainingPrices": "Para que el presupuesto de una escuela no repercuta en la calidad de su formación, colaboramos con una política de precios especiales para todas aquellas escuelas que lo soliciten realizar cursos en nuestras instalaciones de Verdnatura Silla." + ,"YoutubeChannel": "Y no te pierdas los vídeos de Canal Verdnatura en Youtube. Donde encontrarás un montón de consejos muy interesantes sobre el manejo de la flor." + + ,"HowWeWork": "¿Cómo trabajamos?" + + ,"FirstQualityControl": "1º control de calidad" + ,"SecondQualityControl": "2º control de calidad" + ,"ThirdQualityControl": "3º control de calidad" + ,"FourthQualityControl": "4º control de calidad" + + ,"AalsmeerAuction": "Alas 5:00h, nuestros responsables de compras adquieren, en la subasta de Aalsmeer y Noaldwijk, el género que el productor ha cosechado el día anterior." + ,"BeforeAuction": "Tras su compra, este género entra rápidamente en Verdnatura Holland BV, nuestra empresa de Flora Holland, en Aalsmeer." + ,"DirectlyFromProviders": "Además de comprar a través de la subasta Holandesa, también compramos directamente a productores de Colombia, Ecuador, Thailandia, Malasia, África y Australia. Estos productos son supervisados directamente por nuestros delegados de compra ubicados en cada zona. Esta mercancía viajará a Amsterdam, sometida a un proceso de Vaacum y en menos de dos horas desde su aterrizaje, estará en nuestras instalaciones de Aalsmeer." + ,"GoodsDischarge": "A las 7:00h nuestros compañeros de Aalsmeer empiezan a recibir la mercancía comprada, pasando un primer control de calidad, y dándola de alta en nuestro stock. Ya está disponible para nuestros clientes en la web." + ,"GoodsTravel": "La mercancía viaja durante día y medio en camiones con compartimentos estancos a temperaturas diferentes, de manera que no se rompa la cadena de frío y viaje en las mejores condiciones." + ,"GoodsReception": "A la recepción de la mercancía el responsable de su compra revisa el estado en el que llega, aceptándola o rechazándola según el caso, se descarga en frío y rápidamente entra en nuestra cámara." + ,"CustomerOrders": "Nuestros clientes pueden hacer sus pedidos a través de la web, por teléfono o viniendo directamente a nuestras instalaciones. Tenemos un equipo de comerciales especializados que te asesorará en tu compra y que te informará de las novedades y artículos que puedan ser de tu interés, de forma que tu compra se ajuste a tus necesidades y quedes totalmente satisfecho." + ,"AfterOrder": "Una vez realizado el pedido, pasa al departamento de producción. Durante la preparación de este se realiza un nuevo control de calidad (el tercero) en el que se desechará la mercancía deficiente." + ,"BuyerControl": "En cuanto se finaliza la preparación, se realiza un nuevo control (el cuarto) donde un especialista cuenta y revisa el estado de los productos. En caso de que estos no cumplan con los estándares de calidad exigidos los rechaza y los sustituye por los adecuados." + ,"EmbeddedSection": "Seguidamente se lleva a la sección de encajado, donde el pedido es acondicionado para su correcta entrega. Cada tipo de entrega requiere un método de encajado adecuado para que el género viaje protegido y llegue al cliente en perfectas condiciones." + ,"AfterEmbedAgency": "En cuanto el producto ha sido encajado se almacena de nuevo en la cámara hasta su salida por agencia o por reparto propio, recibiéndolo el cliente, en 24h en el caso de la agencia o el mismo día en el caso del reparto, cómodamente en su domicilio." + ,"FreshnessGuaranteed": "Esta forma de trabajo garantiza la mayor frescura por la rapidez los procesos y por el mantenimiento de la cadena de frío desde compra hasta su recepción por nuestro cliente." + + ,"AboutSummary": "75 personas repartidas por casi todo el mundo para que nuestro cliente tenga el más amplio catálogo del sector, la flor más fresca, la planta más novedosa, los complementos más actuales, y el servicio más rápido posible." +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/access.json b/package/usr/share/hedera-web/locale/fr/modules/access.json new file mode 100644 index 00000000..01921439 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/access.json @@ -0,0 +1,15 @@ +{ + "AccessLog": "Fiche d'accès" + + ,"UserNumber:": "Numéro utilisateur:" + ,"User:": "Utilisateur:" + ,"Phone:": "Téléphone:" + ,"Mobile:": "Mobile:" + + ,"Access": "Accès" + ,"OS": "OS" + ,"Browser": "Navigateur" + ,"Version": "Version" + ,"Javascript": "Javascript" + ,"Cookies": "Cookies" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/account.json b/package/usr/share/hedera-web/locale/fr/modules/account.json new file mode 100755 index 00000000..9e9e75dd --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/account.json @@ -0,0 +1,11 @@ +{ + "PasswordsChanged": "Mot de passe modifié!" + ,"PasswordsDoesntMatch": "Les mots de passe ne correspondent pas!" + ,"Configuration": "Configuration" + ,"UserNumber": "Numéro utilisateur:" + ,"UserName": "Utilisateur:" + ,"Password": "Mot de passe:" + ,"Email": "Courrier électronique:" + ,"Billing": "Facturation" + ,"BillingByEmail": "Envoi de factures par e-mail" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/agencies.json b/package/usr/share/hedera-web/locale/fr/modules/agencies.json new file mode 100755 index 00000000..5394818a --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/agencies.json @@ -0,0 +1,16 @@ +{ + "ListByAgency": "Listado de bultos por agencia" + + ,"ShowByProvince": "Mostrar desglose por provincia" + ,"Agency": "Agencia" + ,"Exps": "Exps" + ,"Bundles": "Bultos" + ,"Prevision": "Previsión" + + ,"ByProvince": "Desglose por provincia" + + ,"SelectAgency": "Seleccione una agencia en el listado de la izquierda" + ,"Province": "Provincia" + ,"Expeditions": "Expediciones" + ,"Left": "Faltan" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/catalog.json b/package/usr/share/hedera-web/locale/fr/modules/catalog.json new file mode 100755 index 00000000..e5dbecb1 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/catalog.json @@ -0,0 +1,29 @@ +{ + "SelectFamily": "Choisissez la famille" + ,"SelectSubtype": "S'il vous plaît sélectionnez le sous-menu sur la droite" + ,"ArticleNotFound": "Article pas trouvé" + ,"ArticleNotAvailable": "Article pas disponible" + + ,"StartOrder": "Acheter" + ,"ShoppingBasket": "Voir mon panier" + + ,"Realm": "Famille" + ,"Subtype": "Sous-genre" + ,"Date:": "Date:" + ,"Warehouse:": "Magasin:" + ,"Search:": "Recherche:" + ,"GeneralSearch": "Recherche générale" + + ,"Amount": "Quant" + ,"Aval": "Disp" + ,"Name": "Nom" + ,"S1": "Mes" + ,"S2": "S2" + ,"Stems": "Tige" + ,"Cat": "Cat" + ,"Pack": "Pack" + ,"Origin": "Origine" + ,"AstPrice": "* Prix" + + ,"FixedPrices": "* Les prix en vert sont fixes, le reste sont orientatives." +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/contact.json b/package/usr/share/hedera-web/locale/fr/modules/contact.json new file mode 100755 index 00000000..ad10ff8b --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/contact.json @@ -0,0 +1,20 @@ +{ + "IWantCustomer": "Je veux être un client!" + + ,"FillFormData": "Remplissez le formulaire avec vos coordonnées et nous prendrons contact avec vous sous peu." + ,"OrCallUs": "Ou si vous préférez nous appeler au 0033 781 533 900." + ,"AllFieldsMandatory": "* Todos los campos son obligatorios." + + ,"Name:": "Nom:" + ,"Surname:": "Nom:" + ,"EMail:": "Email:" + ,"Message:": "Message:" + ,"Address:": "Adresse:" + ,"PC:": "Code postal:" + ,"City:": "Ville:" + ,"Phone:": "Téléphone:" + ,"Send": "Envoyer des données" + + ,"DataSentSuccess": "Vos détails ont été envoyés avec succès. Peu de temps nous vous contacterons." + ,"ErrorSendingData": "Échec de l'envoi de vos données. S'il vous plaît vérifiez que vous avez rempli tous les champs et a mis en place le code anti-spam correctement." +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/home.json b/package/usr/share/hedera-web/locale/fr/modules/home.json new file mode 100755 index 00000000..8b6e12a6 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/home.json @@ -0,0 +1,12 @@ +{ + "Sent": "Enviado" + ,"Author": "Autor" + ,"votes": "votos" + ,"NoAnswerSelected": "No ha seleccionado ninguna respuesta" + ,"ThanksForVote": "¡Gracias por su voto!" + ,"Vote": "Voter" + ,"Total": "Total" + ,"BrownserRecommend": + "Verdnatura recommande d'utiliser le navigateur Web Mozilla Firefox pour obtenir toutes les fonctionnalités de notre site web." + ,"PressHere": "Cliquez ici pour télécharger Firefox" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/links.json b/package/usr/share/hedera-web/locale/fr/modules/links.json new file mode 100755 index 00000000..f5ad68a7 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/links.json @@ -0,0 +1,4 @@ +{ + "Module": "Module" + ,"Description": "Description" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/location.json b/package/usr/share/hedera-web/locale/fr/modules/location.json new file mode 100755 index 00000000..4b515c3a --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/location.json @@ -0,0 +1,3 @@ +{ + "ShowMap": "Show Map" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/new.json b/package/usr/share/hedera-web/locale/fr/modules/new.json new file mode 100755 index 00000000..0500c1a2 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/new.json @@ -0,0 +1,9 @@ +{ + "AddNew": "Ajouter/Editer nouvelles" + + ,"Title:": "Titre:" + ,"NewBody:": "Corps:" + + ,"Cancel": "Annuler" + ,"Accept": "Accepter" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/news.json b/package/usr/share/hedera-web/locale/fr/modules/news.json new file mode 100755 index 00000000..acd4ebf4 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/news.json @@ -0,0 +1,12 @@ +{ + "NewsManagement": "Gestion des nouvelles" + + ,"AddNew": "Ajouter nouvelles" + ,"EditNew": "Modifier nouvelles" + + ,"NewNum": "Nº nouvelles" + ,"Date": "Date" + ,"Author": "Auteur" + ,"Title": "Titre" + ,"Priority": "Priorité" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/order.json b/package/usr/share/hedera-web/locale/fr/modules/order.json new file mode 100755 index 00000000..b261c6bb --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/order.json @@ -0,0 +1,62 @@ +{ + "Delete": "Effacer" + ,"GoToCatalog": "Accédez au catalogue" + ,"Checkout": "Caisse" + + ,"OrderNumber:": "Numéro de commande:" + ,"DateExit:": "Date de sortie:" + ,"Warehouse:": "Magasin:" + ,"OrderTotal:": "Total commande:" + ,"VATNotIncluded": "(TVA et frais de port non inclus)" + + ,"Amount": "Quant" + ,"Pack": "Pack" + ,"Stems": "Tige" + ,"Avail": "Disp" + ,"Item": "Nom" + ,"Cat": "Cat" + ,"S1": "Mes" + ,"Color": "Couleur" + ,"Origin": "Origine" + ,"Price": "* Prix" + ,"Disc": "Desc" + ,"Subtotal": "Sous-total" + + ,"GoBasket": "Retour au" + ,"Confirm": "Confirmer" + + ,"PayCash": "COD / Trésorerie" + ,"PayMethod:": "Mode de paiement:" + ,"Notes:": "Remarques:" + ,"SendMethod:": "Mode de livraison:" + ,"Insurance": "S'assurer que la marchandise: 5% du montant de la commande (uniquement pour les envois par agence)" + + ,"Consignee": "Destinataire" + ,"Province": "Province" + ,"PC": "Code postal" + ,"City": "Ville" + ,"Address": "Maison" + + ,"SureDelOrder": "Êtes-vous sûr de vouloir supprimer la commande?" + ,"SureConfirmOrder": "Voulez-vous confirmer votre commande?" + ,"OrderConfirmed": "Votre commande a été traitée avec succès et confirmé" + + ,"ClientAcceptCash": "Le client accepte régler en contre-remboursement/cash" + ,"InetOrder": "Commande passée par internet" + ,"NoOrderFound": "Aucune commande trouvée" + ,"NoArticleAdded": "Aucune produit dans sa commande" + ,"OrderExceeded": "Numéro maximum de commandes non confirmées, s'il vous plaît, confirmez ou supprimez les commandes déjà lancées" + ,"HighQuantity": "Certains produits ne sont pas déjà disponibles ou vous avez choissi pus quantité de la quantité disponible, revisez les champs en rouge" + ,"NoArticleAdded": "Vous n'avez pas choisi aucune produit" + ,"IsertOrderType": "Saisissez le type de commande" + ,"QuantityIntroduced": "La quantité saisie de" + ,"IsHigherThan": "est plus elevé que la quantité disponible, nous ajouterons le maximun disponible" + ,"RoundedTo": "arrondie, de vente en boîte" + ,"NoOrderAfterHour": "N'est pas possible passer commades aprés" + ,"NoOrderOnHolidays": "N'est pas possible passer commades Dimanche ou jours fériés" + ,"DateLow": "La date d'envoi doit être supérieure ou égale a ce jour" + ,"DateHigh": "La date saisie est tros grande" + ,"DateUpdatedTo": "Date d'envoi mise à jour a " + ,"CreditExceeded": "Ha excedido su crédito máximo permitido, si desea confimar el pedido de todas formas marque la casilla Pago Contrareembolso/Contado o reduzca el importe de su pedido en " + ,"InsuranceQuestion": "Las agencias de transporte disponen de un menor número de trabajadores en verano, por las vacaciones, lo que puede ocasionar retrasos en la entrega. Esto, unido al calor, ha causado, en algunas ocasiones, que la mercancía no llegara en óptimas condiciones. Ya que nuestros portes habituales no incluyen ningún tipo de seguro, le ofrecemos la posibilidad de asegurar este envio. El coste sería de el 5% del valor de la mercancía. ¿Desea contratarlo?" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/orders.json b/package/usr/share/hedera-web/locale/fr/modules/orders.json new file mode 100755 index 00000000..5cc57b86 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/orders.json @@ -0,0 +1,34 @@ +{ + "StartedOrdersDesc": + "Commandes en cours de confirmation." + + ,"StartOrder": "Acheter" + ,"ContinueOrder": "Continuer la commande" + ,"OrderNumber": "Numéro de commande" + ,"DateMake": "Date de creation" + ,"DateExit": "Date de sortie" + ,"SendMethod": "Typo" + + ,"ConfirmedOrdersDesc": + "Commandes confirmées." + + ,"PendingBalance:": "Balance:" + ,"PaymentInfo": "Pour effectuer un paiement vers le bas, cliquez sur le bouton à droite et effectuer le paiement par la société. Le montant indiqué est le solde aujourd'hui, ne prend pas en compte les commandes futures. Vous pouvez faire un acompte sur le montant que vous voulez. Si vous voulez payer un ordre spécifique, vous pouvez cliquer directement sur le bouton de paiement Ordre." + ,"MakePayment": "Effectuer un paiement" + ,"Company": "Entreprise" + ,"Pending": "Pente" + ,"Pay": "Payer" + + ,"SeeOrder": "Votre panier" + ,"TicketNumber": "Numéro ticket" + ,"SentAddress": "Adresse de livraison" + ,"Consignee": "Destinataire" + ,"Boxes": "Colis" + ,"TotalWithVAT": "Total avec TVA" + ,"Pending": "En attente" + ,"PayOrder": "Payer la commande" + + ,"AmountToPay:": "Montant à payer (€):" + ,"AmountError": "La quantité doit être un neméro positif et inférieur ou égal à la somme restant à payer" + ,"PayError": "Impossible d'effectuer le paiement" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/ticket.json b/package/usr/share/hedera-web/locale/fr/modules/ticket.json new file mode 100755 index 00000000..9c3a2d4d --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/ticket.json @@ -0,0 +1,28 @@ +{ + "Print": "Imprimer bulletin de livraison" + + ,"TicketNumber:": "Num ticket:" + ,"DateExit:": "Date d'envoi:" + ,"SendMethod:": "Mode d'envoi:" + ,"Notes:": "Notes:" + ,"TicketTotal:": "Total:" + ,"(VATIncluded)": "(TVA comprise)" + + ,"PC": "Code postal" + ,"City": "Ville" + ,"Province": "Province" + ,"Address": "Maison" + ,"Consignee": "Destinataire" + + ,"ItemNumber": "Num article" + ,"Amount": "Quant" + ,"Item": "Article" + ,"Category": "catégorie" + ,"S1": "Mes" + ,"Stems": "Tiges" + ,"Color": "Couleur" + ,"Origin": "Origine" + ,"Price": "Prix" + ,"Disc": "Remise" + ,"Subtotal": "Sous-total" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/users.json b/package/usr/share/hedera-web/locale/fr/modules/users.json new file mode 100755 index 00000000..03148fed --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/users.json @@ -0,0 +1,12 @@ +{ + "UserManagement": "Gestion des utilisateurs" + + ,"UserName:": "Nom d'utilisateur:" + + ,"UserNumber": "No. utilisateurs" + ,"UserName": "Nom d'utilisateur" + ,"Alias": "Alias" + + ,"AccessAsUser": "Identité de l'utilisateur" + ,"AccessLog": "Fiche d'accès" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/visits.json b/package/usr/share/hedera-web/locale/fr/modules/visits.json new file mode 100755 index 00000000..8a4f3649 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/visits.json @@ -0,0 +1,31 @@ +{ + "Visits": "Visitas" + ,"VisitsManagement": "Gestión de visitas" + + ,"ActiveSessions": "Usuarios conectados" + ,"VisitsQuery": "Consulta de visitas" + ,"Refresh": "Actualizar" + + ,"ActiveSessions:": "Usuarios conectados:" + ,"NewVisitsTotal:": "Nuevas visitas:" + + ,"SessionNumber": "Nº sesión" + ,"User": "Usuario" + ,"Login": "Hora de acceso" + ,"LastActivity": "Última actividad" + ,"SO": "Sistema Operativo" + ,"Version": "Versión" + ,"NewVisit": "Nueva visita" + + ,"SelectDateInterval": "Seleccione un intérvalo de fechas" + ,"FromDate:": "Desde el día:" + ,"ToDate:": "Hasta el día:" + ,"VisitsTotal:": "Total visitas:" + + ,"Browser": "Navegador" + ,"MinVersion": "Versión mínima" + ,"MaxVersion": "Versión máxima" + ,"LastVisit": "Última visita" + ,"NewVisits": "Nuevas visitas" + ,"%a, %e %b %Y at %T": "%a, %e %b %Y a las %T" +} diff --git a/package/usr/share/hedera-web/locale/fr/modules/why.json b/package/usr/share/hedera-web/locale/fr/modules/why.json new file mode 100755 index 00000000..edd4516e --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/modules/why.json @@ -0,0 +1,18 @@ +{ + "AboutCompany": "Pourquoi Verdnatura?" + ,"StorePhoto": "Photo Magasin" + ,"AboutWhy": + "
  • Parce que nous avons le plus grand catalogue du secteur, renouvelé tous les jours.
  • Parce que avec ce site web vous avez un stock accessible en temps réel.
  • Parce que notre service d'achat dispose de 9 acheteurs spécialisés.
  • Parce qu'il est très facile de passer commande par internet ou par téléphone.
  • Parce que notre département commercial dispose de professionnels qui trouveront toujours la solution qui vous convient .
  • Parce que nous avons ce qu'il vous faut quand vous en avez besoin.
  • " + + ,"AboutDesc": + "Somos una empresa dedicada a la venta mayorista y distribución de una amplia gama de complementos, verdes y flores naturales a floristerías u otros mayoristas." + + ,"AboutService": + "Disponemos de servicio de reparto a domicilio con nuestros vehículos por toda la provincia de Valencia y áreas limitadas de Castellón, Alicante, Murcia, Albacete y Madrid enviamos al resto de la península mediante agencias de transporte con servicio 24/48 horas (Zeleris, Viaexpress). También realizamos venta directa a floristas en cualquiera de nuestras instalaciones." + + ,"AboutDisp": + "Nuestra empresa dispone de más de 50 trabajadores y varias sucursales. La principal se encuentra situada en Valencia y cuenta con más de 8000 m2. También disponemos de un almacén situado en Mercaflor - Mercavalencia (Valencia) en el que únicamente realizamos venta directa." + + ,"AboutOrder": + "Puede realizar sus pedidos y reservas por teléfono llamando al 96 324 21 00, por Internet a través de nuestra página web o bien directamente en nuestras instalaciones." +} diff --git a/package/usr/share/hedera-web/locale/fr/pages/login.json b/package/usr/share/hedera-web/locale/fr/pages/login.json new file mode 100755 index 00000000..1fd9db08 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/pages/login.json @@ -0,0 +1,9 @@ +{ + "User": "Utilisateur" + ,"Password": "Mot de passe" + ,"NotCloseSession": "Garder ma session active" + ,"IWantToKnowMore": "En savoir plus!" + ,"Enter": "Entrer" + ,"LoginMail": "ruben@verdnatura.es" + ,"LoginPhone": "+33 781 533 900" +} diff --git a/package/usr/share/hedera-web/locale/fr/pages/tpv.json b/package/usr/share/hedera-web/locale/fr/pages/tpv.json new file mode 100755 index 00000000..d87f4ce7 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/pages/tpv.json @@ -0,0 +1,4 @@ +{ + "PaymentComplete": "Le paiement terminé, vous pouvez maintenant revenir à notre site." + ,"ReturnToWeb": "Retour au Verdnatura" +} diff --git a/package/usr/share/hedera-web/locale/fr/pages/update-browser.json b/package/usr/share/hedera-web/locale/fr/pages/update-browser.json new file mode 100755 index 00000000..c9e977e0 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/pages/update-browser.json @@ -0,0 +1,4 @@ +{ + "UpdateYourBrowser": "Mettez à jour votre navigateur" + ,"ContinueAnyway": "Continuer" +} diff --git a/package/usr/share/hedera-web/locale/fr/pages/web.json b/package/usr/share/hedera-web/locale/fr/pages/web.json new file mode 100755 index 00000000..dff01b04 --- /dev/null +++ b/package/usr/share/hedera-web/locale/fr/pages/web.json @@ -0,0 +1,4 @@ +{ + "Welcome": "Bienvenue" + ,"Exit": "Sortir" +} diff --git a/package/usr/share/hedera-web/module.php b/package/usr/share/hedera-web/module.php new file mode 100755 index 00000000..05aba3af --- /dev/null +++ b/package/usr/share/hedera-web/module.php @@ -0,0 +1,28 @@ + diff --git a/package/usr/share/hedera-web/modules/about/about.js b/package/usr/share/hedera-web/modules/about/about.js new file mode 100755 index 00000000..3afbcc80 --- /dev/null +++ b/package/usr/share/hedera-web/modules/about/about.js @@ -0,0 +1,6 @@ + +Vn.About = new Class +({ + Extends: Vn.Module +}); + diff --git a/package/usr/share/hedera-web/modules/about/html.php b/package/usr/share/hedera-web/modules/about/html.php new file mode 100755 index 00000000..305f513c --- /dev/null +++ b/package/usr/share/hedera-web/modules/about/html.php @@ -0,0 +1,83 @@ +
    +
    +

    +

    +

    + store +

    +

    + trailer +

    + dealer + +

    + palletizing +
    +
    +

    +

    + differentiates_us +

    +

    +
    +
    +

    +

    + commercial +
    +
    +

    +

    + training +

    + courses +

    + youtube +
    +
    +

    +

    + auction +

    + producers +

    +

    + goods_transport +

    + + glass +

    + goods_receive +

    + 2_control +

    +

    + + glass +

    +

    + web +

    + 4_control +

    + + glass +

    +

    +

    + + glass +

    +

    + fit +

    + agencies +

    +
    +
    +

    + + logo_small +

    +
    +
    diff --git a/package/usr/share/hedera-web/modules/about/image/2_control.png b/package/usr/share/hedera-web/modules/about/image/2_control.png new file mode 100755 index 00000000..baf92e2e Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/2_control.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/4_control.png b/package/usr/share/hedera-web/modules/about/image/4_control.png new file mode 100755 index 00000000..e40677f9 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/4_control.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/agencies.png b/package/usr/share/hedera-web/modules/about/image/agencies.png new file mode 100755 index 00000000..22efc294 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/agencies.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/auction.png b/package/usr/share/hedera-web/modules/about/image/auction.png new file mode 100755 index 00000000..2c6c71b8 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/auction.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/commercial.png b/package/usr/share/hedera-web/modules/about/image/commercial.png new file mode 100755 index 00000000..9047d848 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/commercial.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/courses.png b/package/usr/share/hedera-web/modules/about/image/courses.png new file mode 100755 index 00000000..95e78235 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/courses.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/dealer.png b/package/usr/share/hedera-web/modules/about/image/dealer.png new file mode 100755 index 00000000..6d306d1b Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/dealer.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/differentiates_us.png b/package/usr/share/hedera-web/modules/about/image/differentiates_us.png new file mode 100755 index 00000000..0ba177e9 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/differentiates_us.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/fit.png b/package/usr/share/hedera-web/modules/about/image/fit.png new file mode 100755 index 00000000..27d36e60 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/fit.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/glass.png b/package/usr/share/hedera-web/modules/about/image/glass.png new file mode 100755 index 00000000..53bfc34f Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/glass.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/goods_receive.png b/package/usr/share/hedera-web/modules/about/image/goods_receive.png new file mode 100755 index 00000000..ac0a3b50 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/goods_receive.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/goods_transport.png b/package/usr/share/hedera-web/modules/about/image/goods_transport.png new file mode 100755 index 00000000..18ae6dc4 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/goods_transport.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/palletizing.png b/package/usr/share/hedera-web/modules/about/image/palletizing.png new file mode 100755 index 00000000..3fec9c36 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/palletizing.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/producers.png b/package/usr/share/hedera-web/modules/about/image/producers.png new file mode 100755 index 00000000..0a8949d5 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/producers.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/store.png b/package/usr/share/hedera-web/modules/about/image/store.png new file mode 100755 index 00000000..266be20c Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/store.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/summary.png b/package/usr/share/hedera-web/modules/about/image/summary.png new file mode 100755 index 00000000..7e3fc8e3 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/summary.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/trailer.png b/package/usr/share/hedera-web/modules/about/image/trailer.png new file mode 100755 index 00000000..accd4db6 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/trailer.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/training.png b/package/usr/share/hedera-web/modules/about/image/training.png new file mode 100755 index 00000000..4e925700 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/training.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/web.png b/package/usr/share/hedera-web/modules/about/image/web.png new file mode 100755 index 00000000..bbdb4903 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/web.png differ diff --git a/package/usr/share/hedera-web/modules/about/image/youtube.png b/package/usr/share/hedera-web/modules/about/image/youtube.png new file mode 100755 index 00000000..2be1cc74 Binary files /dev/null and b/package/usr/share/hedera-web/modules/about/image/youtube.png differ diff --git a/package/usr/share/hedera-web/modules/about/style.css b/package/usr/share/hedera-web/modules/about/style.css new file mode 100755 index 00000000..5cffb31e --- /dev/null +++ b/package/usr/share/hedera-web/modules/about/style.css @@ -0,0 +1,82 @@ +#about +{ + position: relative; + max-width: 50em; + display: block; + margin: 0px auto; +} +#about h1 +{ + text-align: center; + font-size: 20px; + font-weight: normal; + margin: 20px 0px; + background-color: #F91; + border: #D70 solid 1px; + border-radius: 2px; +} +#about h2 +{ + text-align: center; + font-size: 15px; + margin: 15px; +} +#about h3 +{ + text-align: center; + font-size: 16px; + color: #4A1; + margin: 15px; +} +#about p +{ + width: 90%; + font-size: 15px; + display: block; + margin: 20px auto; +} +#about p.summary +{ + width: 370px; + text-align: center; + font-weight: bold; + background-color: #FF8; + padding: 30px; + border: #DD6 solid 1px; + border-radius: 2px; + margin: 40px auto; +} + +/* Images */ + +#about img +{ + text-align: center; + padding: 15px; + display: block; + margin: 0px auto; +} +#about img[alt="producers"], +#about img[alt="4_control"], +#about img[alt="dealer"], +#about img[alt="goods_transport"] +{ + float: right; +} +#about img[alt="2_control"] +{ + float: left; +} +#about img[alt="glass"] +{ + display: inline; + padding: 0px; + padding-left: 10px; + vertical-align: middle; +} +#about img[alt="logo_small"] +{ + padding: 0px; + padding-top: 30px; +} + diff --git a/package/usr/share/hedera-web/modules/access/access.js b/package/usr/share/hedera-web/modules/access/access.js new file mode 100755 index 00000000..94535b61 --- /dev/null +++ b/package/usr/share/hedera-web/modules/access/access.js @@ -0,0 +1,16 @@ + +Vn.Access = new Class +({ + Extends: Vn.Module + + ,activate: function () + { +// this.get ('return').on ('clicked', this.returnClicked.bind (this)); + } + + ,returnClicked: function (column, value) + { + this.hash.set ({'module': 'users'}); + } +}); + diff --git a/package/usr/share/hedera-web/modules/access/html.php b/package/usr/share/hedera-web/modules/access/html.php new file mode 100755 index 00000000..fb7af238 --- /dev/null +++ b/package/usr/share/hedera-web/modules/access/html.php @@ -0,0 +1,73 @@ +
    +

    + + + + + + SELECT Id_Cliente, Cliente, Telefono, movil + FROM vn2008.Clientes WHERE Id_Cliente = #user + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    +
    + + + SELECT u.date_time, a.platform, a.browser, a.version, a.javascript, a.cookies + FROM visit_user u + JOIN visit_access c ON u.access_id = c.id + JOIN visit_agent a ON c.agent_id = a.id + WHERE u.user_id = #user + ORDER BY u.date_time DESC + LIMIT 30 + + + + + + + + + + + +
    +
    diff --git a/package/usr/share/hedera-web/modules/access/style.css b/package/usr/share/hedera-web/modules/access/style.css new file mode 100755 index 00000000..83b2838b --- /dev/null +++ b/package/usr/share/hedera-web/modules/access/style.css @@ -0,0 +1,19 @@ +#access h1 +{ + font-weight: normal; + text-align: center; + font-size: 20px; + margin: 15px; +} +#access tbody tr +{ + height: 38px; +} +#access table.form +{ + padding-bottom: 20px; +} +#access td.label +{ + width: 48%; +} diff --git a/package/usr/share/hedera-web/modules/account/account.js b/package/usr/share/hedera-web/modules/account/account.js new file mode 100755 index 00000000..34d8a5fd --- /dev/null +++ b/package/usr/share/hedera-web/modules/account/account.js @@ -0,0 +1,81 @@ + +Vn.Account = new Class +({ + Extends: Vn.Module + + ,activate: function () + { + var model = this.get ('user-model'); + model.setTableInfo ('u', 'user_view'); + model.setTableInfo ('c', 'customer_view'); + + this.get ('password').conn = this.conn; + } +}); + +Htk.Password = new Class +({ + Extends: Htk.Widget + ,Tag: 'htk-password' + + ,initialize: function () + { + this.createElement ('div'); + this.node.className = 'htk-password'; + + var passwordEntry = document.createElement ('input'); + passwordEntry.type = 'password'; + passwordEntry.value = '123456'; + passwordEntry.addEventListener ('change', this.passCheckAndChange.bind (this)); + this.node.appendChild (passwordEntry); + + var repeatEntry = document.createElement ('input'); + repeatEntry.type = 'password'; + repeatEntry.addEventListener ('change', this.passCheckAndChange.bind (this)); + this.node.appendChild (repeatEntry); + + var logNode = document.createElement ('span'); + this.node.appendChild (logNode); + + this.logNode = logNode; + this.passwordEntry = passwordEntry; + this.repeatEntry = repeatEntry; + } + + ,passCheckAndChange: function () + { + var newPassword = this.passwordEntry.value; + var repeatedPassword = this.repeatEntry.value; + + Vn.Node.removeChilds (this.logNode); + + if (newPassword != '' && repeatedPassword != '') + { + if (newPassword !== repeatedPassword) + { + this.logNode.style.color = 'red'; + Vn.Node.setText (this.logNode, _('PasswordsDoesntMatch')); + } + else + { + var batch = new Sql.Batch (); + batch.addValue ('password', newPassword); + + var query = 'UPDATE user_view SET password = MD5(#password) ' + +'WHERE id = account.user_get_id () LIMIT 1'; + + this.conn.execQuery (query, this.passUpdated.bind (this), batch); + } + } + } + + ,passUpdated: function (resultSet) + { + if (!resultSet.fetchResult ()) + return; + + this.logNode.style.color = 'green'; + Vn.Node.setText (this.logNode, _('PasswordsChanged')); + } +}); + diff --git a/package/usr/share/hedera-web/modules/account/html.php b/package/usr/share/hedera-web/modules/account/html.php new file mode 100755 index 00000000..50c00b41 --- /dev/null +++ b/package/usr/share/hedera-web/modules/account/html.php @@ -0,0 +1,56 @@ +
    + + + + SELECT id, u.name, password, email, mail, c.user_id + FROM user_view u + LEFT JOIN customer_view c + ON u.id = c.user_id + + + +

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + +
    +
    diff --git a/package/usr/share/hedera-web/modules/account/style.css b/package/usr/share/hedera-web/modules/account/style.css new file mode 100755 index 00000000..80d4e5a9 --- /dev/null +++ b/package/usr/share/hedera-web/modules/account/style.css @@ -0,0 +1,22 @@ +#account h1 +{ + font-weight: normal; + text-align: center; + font-size: 20px; + margin: 15px; +} +#account table.form +{ + border-collapse: separate; + border-spacing: 10px; +} +#account td.label +{ + width: 48%; +} + +.htk-password input +{ + width: 75px; + margin-right: 10px; +} diff --git a/package/usr/share/hedera-web/modules/agencies/agencies.js b/package/usr/share/hedera-web/modules/agencies/agencies.js new file mode 100755 index 00000000..d40a9bca --- /dev/null +++ b/package/usr/share/hedera-web/modules/agencies/agencies.js @@ -0,0 +1,16 @@ + +Vn.Agencies = new Class +({ + Extends: Vn.Module + + ,activate: function () + { + this.get ('column-show').on ('clicked', this.onShowClick, this); + } + + ,onShowClick: function (column, agencyId) + { + this.get ('agency-id').value = agencyId; + } +}); + diff --git a/package/usr/share/hedera-web/modules/agencies/html.php b/package/usr/share/hedera-web/modules/agencies/html.php new file mode 100755 index 00000000..827714d1 --- /dev/null +++ b/package/usr/share/hedera-web/modules/agencies/html.php @@ -0,0 +1,31 @@ +
    +
    +

    + + + CALL vn2008.agencia_volume () + + + + + + + +
    +
    +

    + + + + CALL vn2008.desglose_volume (#agency) + + + + + + + + + +
    +
    diff --git a/package/usr/share/hedera-web/modules/agencies/style.css b/package/usr/share/hedera-web/modules/agencies/style.css new file mode 100755 index 00000000..8775bb9d --- /dev/null +++ b/package/usr/share/hedera-web/modules/agencies/style.css @@ -0,0 +1,39 @@ +#agencies +{ + position: relative; + height: 100%; + width: 100%; +} +#agencies div.panel +{ + position: absolute; + top: 0px; + bottom: 0px; + padding-top: 15px; + padding-bottom: 15px; + overflow: auto; +} +#agencies-left +{ + width: 50%; + left: 0px; +} +#agencies-right +{ + width: 50%; + right: 0px; +} +#agencies h2 +{ + text-align: center; + padding-bottom: 15px; + +} +#agencies table.grid +{ + position: relative +} +#agencies tbody tr +{ + height: 30px; +} diff --git a/package/usr/share/hedera-web/modules/catalog/catalog.js b/package/usr/share/hedera-web/modules/catalog/catalog.js new file mode 100755 index 00000000..ebc7d442 --- /dev/null +++ b/package/usr/share/hedera-web/modules/catalog/catalog.js @@ -0,0 +1,262 @@ + +Vn.Catalog = new Class +({ + Extends: Vn.Module + + ,activate: function () + { + Vn.get ('basket').addEventListener ('click', this.basketClicked.bind (this)); + + var model = this.get ('items'); + model.setTableInfo ('m', 'order_row_view'); + model.setFieldFlags ('id', Db.Conn.Flag.AI); + model.setFieldFlags ('Id_Article', Db.Conn.Flag.PRI_KEY); + + this.get ('type-column').renderer = this.typeRenderer.bind (this); + this.get ('cat').renderer = this.catRenderer; + + this.get ('realms').setConn (this.conn); + this.get ('order-form').on ('status-changed', this.orderFormChanged.bind (this)); + this.get ('warehouse').value = 1; + this.get ('date').value = new Date (); + + if (!Vn.Url.getQuery ('guest')) + { + var orderId = Vn.Cookie.getInt ('order'); + + if (!orderId) + this.configureView (); + else + this.get ('order-batch').addValue ('order', orderId); + } + else + this.get ('order').value = 0; + } + + ,configureView: function () + { + var orderId = 0; + var grid = this.get ('items-grid'); + var orderForm = this.get ('order-form'); + + if (orderForm.numRows > 0) + { + orderForm.row = 0; + orderId = orderForm.get ('id'); + + Vn.Node.setText (Vn.get ('basket'), _('ShoppingBasket')); + + var items = this.get ('items'); + items.updatable = true; + items.setDefaultFromColumn ('item_id', 'm', 'Id_Article'); + items.setDefaultFromValue ('order_id', 'm', orderId); + + var amountCol = new Htk.ColumnSpin + ({ + title: 'Amount' + ,editable: true + ,renderer: this.amountRender + }); + amountCol.on ('changed', this.amountChanged.bind (this)); + grid.insertColumn (1, amountCol); + + var stemsCol = new Htk.ColumnSpin + ({ + title: 'Stems' + ,editable: true + ,column: 'amount' + }); + grid.insertColumn (3, stemsCol); + + this.get ('warehouse').master = orderForm.getParam ('wh_id'); + this.get ('date').master = orderForm.getParam ('date_send'); + } + else + Vn.Cookie.unset ('order'); + + this.get ('order').value = orderId; + + var priceCol = new Htk.ColumnSpin + ({ + title: 'AstPrice' + ,digits: 2 + ,unit: '€' + ,column: 'price' + ,renderer: this.priceRenderer + }); + grid.insertColumn (11, priceCol); + + Vn.get ('basket').disabled = false; + } + + ,orderFormChanged: function (form) + { + if (form.ready) + this.configureView (); + } + + ,basketClicked: function () + { + this.hash.set ({'module': 'order'}); + } + + ,typeRenderer: function (column, form) + { + column.href = this.hash.make ({'type': form.get ('tipo_id')}, true); + } + + ,amountRender: function (renderer, form) + { + var amount = form.get ('amount'); + var grouping = form.get ('grouping'); + + if (amount && grouping) + renderer.value = amount / grouping; + else + renderer.value = null; + } + + ,amountChanged: function (renderer, row, newValue) + { + var model = this.get ('items'); + model.set (row, 'amount', newValue * model.get (row, 'grouping')); + } + + ,catRenderer: function (column, form) + { + switch (form.get ('Categoria')) + { + case 'A2': + column.td.className = 'second-category'; + break; + case 'B1': + column.td.className = 'third-category'; + break; + default: + column.td.className = ''; + } + } + + ,priceRenderer: function (column, form) + { + if (form.get ('fixed')) + column.td.className = 'fixed-price'; + else + column.td.className = 'aprox-price'; + } +}); + +Htk.Realm = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-realm' + + ,model: null + ,selectedImg: null + + ,initialize: function (mod) + { + this.createElement ('div'); + this.node.className = 'htk-realm'; + + this.model = new Db.Model (); + this.model.on ('status-changed', this.modelReloaded.bind (this)); + + var query = 'SELECT id, reino FROM vn2008.reinos ' + +'WHERE display != FALSE ' + +'ORDER BY reino'; + this.model.query = query; + } + + ,setConn: function (conn) + { + this.model.conn = conn; + } + + ,modelReloaded: function (model, status) + { + Vn.Node.removeChilds (this.node); + + if (status != Db.Model.Status.READY) + return; + + for (var i = 0; i < model.numRows; i++) + { + var id = model.get (i, 'id'); + + var img = document.createElement ('img'); + img.src = Vn.Config['image_dir'] +'/family/full/'+ id +'.png'; + img.title = model.get (i, 'reino'); + img.alt = img.title; + img.addEventListener ('click', this.clicked.bind (this, img, id)); + this.node.appendChild (img); + + if (id == this.value) + this.focusImage (img); + } + } + + ,focusImage: function (img) + { + if (this.selectedImg) + this.selectedImg.className = ''; + + img.className = 'selected'; + this.selectedImg = img; + } + + ,clicked: function (img, value) + { + this.focusImage (img); + + if (value != this.value) + this.valueChanged (value); + } + + ,putValue: function (value) + { + var row = this.model.search ('id', value); + + if (row != -1) + this.focusImage (this.node.childNodes[row]); + } +}); + +Htk.Nuller = new Class +({ + Extends: Htk.Field + ,Tag: 'htk-nuller' + + ,previousValue: null + + ,initialize: function () + { + this.parent (); + this.createElement ('input'); + this.node.type = 'checkbox'; + this.node.addEventListener ('change', this.changed.bind (this)); + this.putValue (this.value); + } + + ,changed: function () + { + this.valueChanged (this.node.checked ? null : this.previousValue); + } + + ,putValue: function (value) + { + if (value !== null && value !== undefined) + { + this.node.checked = false; + this.previousValue = value; + } + else + this.node.checked = true; + } + + ,setEditable: function (editable) + { + this.node.disabled = !editable; + } +}); + diff --git a/package/usr/share/hedera-web/modules/catalog/html.php b/package/usr/share/hedera-web/modules/catalog/html.php new file mode 100755 index 00000000..4f867e19 --- /dev/null +++ b/package/usr/share/hedera-web/modules/catalog/html.php @@ -0,0 +1,150 @@ +
    + + + + + + + SELECT date_send, wh_id, id FROM order_view WHERE id = #order + + + +
    + + + + + + + + + + + + + + CALL item (#warehouse, #date); + SELECT i.grouping, m.amount, Foto, i.available, Article, Categoria, + Medida, Tallos, Color, o.Abreviatura, price, fixed, m.id, + Id_Article + FROM vn2008.Articles a + INNER JOIN vn2008.item_catalog i ON i.item_id = a.Id_Article + LEFT JOIN vn2008.Origen o ON a.id_origen = o.id + LEFT JOIN order_row_view m + ON m.item_id = a.Id_Article AND m.order_id = #order + WHERE #filter AND available > 0 + ORDER BY Article, Medida + LIMIT 400; + DROP TEMPORARY TABLE vn2008.item_catalog; + + + + + + + + + + + + + + + + + +

    + +

    +
    +
    +
    + +
    + + + + + + + + SELECT tipo_id, Tipo FROM vn2008.Tipos + WHERE reino_id = #realm AND Orden != 0 ORDER BY Orden DESC, Tipo + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + SELECT id, name FROM vn2008.warehouse + WHERE reserve ORDER BY name + + + +
    + + + + + +
    + + + +
    +
    +
    diff --git a/package/usr/share/hedera-web/modules/catalog/style.css b/package/usr/share/hedera-web/modules/catalog/style.css new file mode 100755 index 00000000..5f4d24e1 --- /dev/null +++ b/package/usr/share/hedera-web/modules/catalog/style.css @@ -0,0 +1,127 @@ +#catalog +{ + position: relative; + height: 100%; + width: 100%; +} +#catalog-left +{ + position: absolute; + top: 0px; + right: 240px; + left: 0px; + bottom: 0px; + padding-top: 15px; + padding-bottom: 15px; + overflow: auto; +} +#catalog-right +{ + position: absolute; + top: 0px; + right: 0px; + bottom: 0px; + width: 225px; + margin: 8px; +} + +#catalog-left p +{ + text-align: center; + font-size: 12px; +} + +/* Right panel */ + +#search-entry +{ + width: 110px; +} +#basket +{ + width: 95%; + text-align: center; +} +#types-grid tbody +{ + height: 200px; + display: block; + overflow: auto; +} + +/* Realms */ + +.htk-realm +{ + height: 50px; + text-align: center; + margin-top: 8px; + vertical-align: middle; +} +.htk-realm img +{ + padding: 1px; + height: 32px; + cursor: pointer; +} +.htk-realm img.selected, +.htk-realm img:hover +{ + height: 37px; +} + +/* Types */ + +#types-grid tbody tr +{ + display: block; + width: 100%; + height: 25px; +} +#types-grid tbody td +{ + display: block; + width: 100%; + padding: 0; +} +#types-grid tbody a +{ + display: block; + padding: 4px 7%; + width: 86%; + height: 100%; +} +#types-grid tbody a:hover +{ + background-color: #EEE; +} +#types-grid td.grid-message +{ + padding-top: 15px; +} + +/* Catalog */ + +#catalog-left table.grid tbody tr +{ + height: 45px; +} +td.second-category +{ + font-weight: bold; + color: orange; +} +td.third-category +{ + font-weight: bold; + color: red; +} +td.fixed-price +{ + color: green; +} +td.aprox-price +{ + color: red; +} + diff --git a/package/usr/share/hedera-web/modules/contact/IndieFlower.ttf b/package/usr/share/hedera-web/modules/contact/IndieFlower.ttf new file mode 100755 index 00000000..31679a8a Binary files /dev/null and b/package/usr/share/hedera-web/modules/contact/IndieFlower.ttf differ diff --git a/package/usr/share/hedera-web/modules/contact/captcha.php b/package/usr/share/hedera-web/modules/contact/captcha.php new file mode 100755 index 00000000..cc5f256b --- /dev/null +++ b/package/usr/share/hedera-web/modules/contact/captcha.php @@ -0,0 +1,47 @@ + 200 + ,'height' => 60 + ,'output' => 'png' + ,'imageOptions' => array + ( + 'font_size' => 20 + ,'font_path' => './' + ,'font_file' => 'IndieFlower.ttf' + ,'text_color' => '#559955' + ,'lines_color' => '#559955' + ,'background_color' => '#DDDDDD' + ,'antialias' => true + ) +); + +$captcha = Text_CAPTCHA::factory ('Image'); +$retval = $captcha->init ($options); + +if (PEAR::isError ($retval)) +{ + printf ('Error initializing CAPTCHA: %s!', $retval->getMessage()); + exit; +} + +$png = $captcha->getCAPTCHA (); + +if (PEAR::isError ($png)) +{ + printf ('Error generating CAPTCHA: %s!', $png->getMessage ()); + exit; +} + +// Get secret passphrase +$_SESSION['captcha'] = $captcha->getPhrase (); + +header ('Content-Type: image/png'); +echo $png; + +?> diff --git a/package/usr/share/hedera-web/modules/contact/contact.js b/package/usr/share/hedera-web/modules/contact/contact.js new file mode 100755 index 00000000..24e5b88a --- /dev/null +++ b/package/usr/share/hedera-web/modules/contact/contact.js @@ -0,0 +1,76 @@ + +Vn.Contact = new Class +({ + Extends: Vn.Module + + ,activate: function () + { + var self = this; + var form = Vn.get ('contact-form').onsubmit = function () + { self.onSubmit (); return false; }; + + this.refreshCaptcha (); + } + + ,refreshCaptcha: function () + { + var url = 'modules/contact/captcha.php'; + Vn.get ('captcha').src = url +'?'+ new Date ().getTime (); + } + + ,onSubmit: function () + { + var form = Vn.get ('contact-form'); + + var request = new Vn.FormRequest (); + request.send (form, this.onResponse.bind (this)); + } + + ,onResponse: function (response) + { + var form = Vn.get ('contact-form'); + + if (response) + { + form.reset (); + alert (_('DataSentSuccess')); + } + else + alert (_('ErrorSendingData')); + + form['captcha'].value = ''; + this.refreshCaptcha (); + } +}); + +Vn.FormRequest = new Class +({ + send: function (form, callback) + { + var formData = ''; + var elements = form.elements; + + for (var i = 0; i < elements.length; i++) + if (elements[i].name) + formData += elements[i].name +'='+ + encodeURIComponent (elements[i].value) +'&'; + + var request = new XMLHttpRequest (); + request.open (form.method, form.action, true); + request.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded'); + request.onreadystatechange = this.onSend.bind (this, request, callback); + request.send (formData); + } + + ,onSend: function (request, callback) + { + if (request.readyState != 4) + return; + + if (request.status == 200) + callback (eval (request.responseText)); + else + callback (null); + } +}); + diff --git a/package/usr/share/hedera-web/modules/contact/html.php b/package/usr/share/hedera-web/modules/contact/html.php new file mode 100755 index 00000000..36693df4 --- /dev/null +++ b/package/usr/share/hedera-web/modules/contact/html.php @@ -0,0 +1,100 @@ +
    +

    + +

    +

    + +

    +

    + +

    +
    + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + +