diff --git a/.editorconfig b/.editorconfig index 192fe7eeb08..cef83a58759 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,29 +7,11 @@ end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true indent_style = space -tab_width = 4 +indent_size = 4 max_line_length = off [**.scss] -tab_width = 2 - -[**.js] -tab_width = 4 - -[**.coffee] -tab_width = 4 - -[**.cson] -tab_width = 4 - -[**.json] -tab_width = 4 - -[**rc] -tab_width = 4 - -[**php] -tab_width = 4 +indent_size = 2 [*.md] max_line_length = off diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index fc3cbc8343a..645615e2a9f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Create a report to help us improve MODX Revolution - +labels: bug --- ## Bug report @@ -18,4 +18,4 @@ How it behaved after following steps above. How it should behave after following steps above. ### Environment -MODX version, apache/nginx and version, mysql version, browser, etc. Any relevant information. \ No newline at end of file +MODX version, apache/nginx and version, mysql version, browser, etc. Any relevant information. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 2e59ab9fe72..14adbfd501f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Suggest an idea that makes MODX Revolution even better - +labels: feature --- ## Feature request @@ -15,4 +15,4 @@ A clear and concise description of what the problem is. Ex. I'm always frustrate A clear and concise description of what you want to happen. ### Related issue(s)/PR(s) -Let us know if this is related to any issue/pull request. \ No newline at end of file +Let us know if this is related to any issue/pull request. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c2afb3a5f56..6b3574c3179 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,8 +1,11 @@ ### What does it do? -Describe the technical changes you did. +Describe the technical changes you made. ### Why is it needed? Describe the issue you are solving. +### How to test +Describe how to test the changes you made. + ### Related issue(s)/PR(s) -Let us know if this is related to any issue/pull request (see https://github.com/blog/1506-closing-issues-via-pull-requests) +Provide any issue that's addressed by this change in the format "Resolves #", and mention other issues/pull requests with relevant information. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..18425baa179 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: CI + +on: + push: + branches-ignore: + - 'l10n_**' + pull_request: + branches-ignore: + - 'l10n_**' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + mysql-check: + name: MySQL Check + runs-on: ubuntu-20.04 + + services: + mysql: + image: "mysql:5.6" + + options: >- + --health-cmd "mysqladmin ping --silent" + -e MYSQL_ALLOW_EMPTY_PASSWORD=yes + -e MYSQL_DATABASE=revo_test + ports: + - 3306:3306 + + strategy: + matrix: + php-version: ['7.1', '7.2', '7.3', '7.4', '8.0'] + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: pdo, pdo_mysql, zip, mysqli, gd + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install dependencies + run: composer install --no-progress --prefer-dist --optimize-autoloader + + - name: Setup MODX + run: cd _build/test && ./generateConfigs.sh auto + + - name: Run PHPUnit + run: core/vendor/bin/phpunit --enforce-time-limit -c ./_build/test/phpunit.xml diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml new file mode 100644 index 00000000000..6fb338cdb4e --- /dev/null +++ b/.github/workflows/phpcs.yml @@ -0,0 +1,27 @@ +name: "Code Quality" + +on: + pull_request: + paths: + - "**.php" + - "phpcs.xml" + - ".github/workflows/phpcs.yml" + +jobs: + phpcs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install PHP_CodeSniffer + run: | + curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar + php phpcs.phar --version + + - uses: thenabeel/action-phpcs@v8 + with: + files: "**.php" + phpcs_path: php phpcs.phar + standard: phpcs.xml diff --git a/.gitignore b/.gitignore index e3f56ae166f..b9b1b4c42d2 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,6 @@ composer.lock # ignore composer vendor dir /vendor + +# ignore phpunit cache files +.phpunit.result.cache diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 13d3fc65364..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: php -script: - - "../../core/vendor/bin/phpunit --version" - - "../../core/vendor/bin/phpunit -c ./phpunit.xml" - -# Set php versions -php: - - 7.4 - - 7.3 - - 7.2 - - 7.1 - - 7.0 - - nightly - -services: mysql - -matrix: - allow_failures: - - php: nightly - -# database credentials -mysql: - database: revo_test - username: root - encoding: utf8 - -before_script: - - 'composer install -n && cd _build/test && ./generateConfigs.sh' - - phpenv config-add test.ini diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..fe592399bc2 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,50 @@ +# Contributor Covenant Code of Conduct + +The MODX Community, Leadership and Advisory Board has decided to use the [Contributor Covenant][homepage] until such time we ratify our own. + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at governance@modx.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at http://contributor-covenant.org/version/1/4 + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. +Translations are available at https://www.contributor-covenant.org/translations. diff --git a/README.md b/README.md index bb32ff05603..eaef1ff9364 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,25 @@ -# MODX Revolution +

+ + MODX Revolution + +

+

+ MODX Revolution +

-[![Build Status](https://travis-ci.com/modxcms/revolution.svg?branch=3.x)](https://travis-ci.org/modxcms/revolution) [![Slack Chat](https://img.shields.io/badge/chat_in_slack-online-green.svg?longCache=true&style=flat&logo=slack)](https://modx.org) +#### MODX Revolution is the world’s fastest, most secure, flexible and scalable Open Source CMS + +[![LICENSE](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](./LICENSE) [![Build Status](https://github.com/modxcms/revolution/workflows/CI/badge.svg?branch=3.x)](https://github.com/modxcms/revolution/actions?query=branch%3A3.x) [![Contributors](https://img.shields.io/github/contributors/modxcms/revolution.svg)](https://github.com/modxcms/revolution/graphs/contributors) [![Slack Chat](https://img.shields.io/badge/chat_in_slack-online-green.svg?longCache=true&style=flat&logo=slack)](https://modx.org) [![follow on Twitter](https://img.shields.io/twitter/follow/modx.svg?style=social&logo=twitter)](https://twitter.com/intent/follow?screen_name=modx) ## Content Management System and Application Framework MODX lets you power anything from multi-language, multi-domain corporate sites to personal blogs to mobile APIs. Delivering true creative freedom and removing all restrictions, it lets you control the markup and design without having to code. You can also tailor its modular and extensible core to accommodate virtually any custom requirement or amount of traffic. MODX is the free open source software that meets your needs today—and tomorrow. +MODX Revolution is the world’s fastest, most customizable Open Source PHP CMS. Your creative vision, no restrictions, no compromise. + ### Latest Changes -For details read the [complete changelog](./core/docs/changelog.txt "complete changelog") +For details read the [complete changelog](./core/docs/changelog.txt 'complete changelog') ### Getting Started @@ -23,17 +34,21 @@ Here's what you need to get started installing or upgrading MODX Revoluton: ### Other Important Stuff -MODX is only as good as it is because of many individual community members and users that take the time to [report issues and request new features](https://github.com/modxcms/revolution/issues "MODX Github Issues"). Make sure you [read the documentation](https://docs.modx.com/3.x/en/index), [post feedback and share your successes](https://community.modx.com) in the MODX community forums. To join us in the quest for *Creative Freedom*, [become a Contributor](https://docs.modx.org/3.x/en/contribute). You can [contribute using GitHub](https://docs.modx.com/current/en/contribute/code/git-github) +MODX is only as good as it is because of many individual community members and users that take the time to [report issues and request new features](https://github.com/modxcms/revolution/issues 'MODX Github Issues'). Make sure you [read the documentation](https://docs.modx.com/3.x/en/index), [post feedback and share your successes](https://community.modx.com/ 'MODX Community') in the MODX community forums. And also help with translating lexicons on [Crowdin platform](https://crowdin.com/project/modx-revolution). To join us in the quest for _Creative Freedom_, [become a Contributor](https://docs.modx.com/3.x/en/contribute/code). You can [contribute using GitHub](https://docs.modx.com/3.x/en/contribute/code 'Contribute to MODX via GitHub') On behalf of the entire MODX Team, Thank you for using MODX! +### Security Issues in MODX + +For details read the [SECURITY](./SECURITY.md 'SECURITY') + ### Copyright Copyright (c) MODX, LLC. All Rights Reserved. -For complete copyright information, see the [COPYRIGHT](./COPYRIGHT "Copyright") file at the top-level directory of this distribution. +For complete copyright information, see the [COPYRIGHT](./COPYRIGHT 'Copyright') file at the top-level directory of this distribution. ### License @@ -43,4 +58,4 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -[GNU General Public License v2](./LICENSE "GNU General Public License v2") +[GNU General Public License v2](./LICENSE 'GNU General Public License v2') diff --git a/_build/build.properties.sample.php b/_build/build.properties.sample.php index 74435a3af3f..37fd7f51548 100644 --- a/_build/build.properties.sample.php +++ b/_build/build.properties.sample.php @@ -16,7 +16,7 @@ xPDO::OPT_HYDRATE_RELATED_OBJECTS => true, xPDO::OPT_HYDRATE_ADHOC_FIELDS => true, ]; -$properties['mysql_array_driverOptions']= []; +$properties['mysql_array_driverOptions']= [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_SILENT]; /* sqlsrv */ $properties['sqlsrv_string_dsn_test']= 'sqlsrv:server=(local);database=revo_test'; @@ -30,7 +30,7 @@ xPDO::OPT_HYDRATE_RELATED_OBJECTS => true, xPDO::OPT_HYDRATE_ADHOC_FIELDS => true, ]; -$properties['sqlsrv_array_driverOptions']= [/*PDO::SQLSRV_ATTR_DIRECT_QUERY => false*/]; +$properties['sqlsrv_array_driverOptions']= [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_SILENT]; /* PHPUnit test config */ $properties['xpdo_driver']= 'mysql'; diff --git a/_build/build.xml b/_build/build.xml index fb5f74d2068..47ef46c59ef 100644 --- a/_build/build.xml +++ b/_build/build.xml @@ -59,6 +59,18 @@ + + + + + + + + + + diff --git a/_build/data/permissions/transport.policy.tpl.media_source.php b/_build/data/permissions/transport.policy.tpl.mediasource.php similarity index 100% rename from _build/data/permissions/transport.policy.tpl.media_source.php rename to _build/data/permissions/transport.policy.tpl.mediasource.php diff --git a/_build/data/transport.core.accesspolicies.php b/_build/data/transport.core.accesspolicies.php index 2920567f277..7caf7857d06 100644 --- a/_build/data/transport.core.accesspolicies.php +++ b/_build/data/transport.core.accesspolicies.php @@ -9,136 +9,54 @@ $policies = []; -$policies['1']= $xpdo->newObject(modAccessPolicy::class); -$policies['1']->fromArray([ - 'id' => 1, - 'name' => 'Resource', - 'description' => 'MODX Resource Policy with all attributes.', - 'parent' => 0, - 'class' => '', - 'data' => '{"add_children":true,"create":true,"copy":true,"delete":true,"list":true,"load":true,"move":true,"publish":true,"remove":true,"save":true,"steal_lock":true,"undelete":true,"unpublish":true,"view":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['2']= $xpdo->newObject(modAccessPolicy::class); -$policies['2']->fromArray([ - 'id' => 2, - 'name' => 'Administrator', - 'description' => 'Context administration policy with all permissions.', - 'parent' => 0, - 'class' => '', - 'data' => '{"about":true,"access_permissions":true,"actions":true,"change_password":true,"change_profile":true,"charsets":true,"class_map":true,"components":true,"content_types":true,"countries":true,"create":true,"credits":true,"customize_forms":true,"dashboards":true,"database":true,"database_truncate":true,"delete_category":true,"delete_chunk":true,"delete_context":true,"delete_document":true,"delete_eventlog":true,"delete_plugin":true,"delete_propertyset":true,"delete_role":true,"delete_snippet":true,"delete_template":true,"delete_tv":true,"delete_user":true,"directory_chmod":true,"directory_create":true,"directory_list":true,"directory_remove":true,"directory_update":true,"edit_category":true,"edit_chunk":true,"edit_context":true,"edit_document":true,"edit_locked":true,"edit_plugin":true,"edit_propertyset":true,"edit_role":true,"edit_snippet":true,"edit_template":true,"edit_tv":true,"edit_user":true,"element_tree":true,"empty_cache":true,"error_log_erase":true,"error_log_view":true,"events":true,"export_static":true,"file_create":true,"file_list":true,"file_manager":true,"file_remove":true,"file_tree":true,"file_update":true,"file_upload":true,"file_unpack":true,"file_view":true,"flush_sessions":true,"frames":true,"help":true,"home":true,"import_static":true,"languages":true,"lexicons":true,"list":true,"load":true,"logout":true,"logs":true,"menus":true,"menu_reports":true,"menu_security":true,"menu_site":true,"menu_support":true,"menu_system":true,"menu_tools":true,"menu_user":true,"messages":true,"namespaces":true,"new_category":true,"new_chunk":true,"new_context":true,"new_document":true,"new_document_in_root":true,"new_plugin":true,"new_propertyset":true,"new_role":true,"new_snippet":true,"new_static_resource":true,"new_symlink":true,"new_template":true,"new_tv":true,"new_user":true,"new_weblink":true,"packages":true,"policy_delete":true,"policy_edit":true,"policy_new":true,"policy_save":true,"policy_template_delete":true,"policy_template_edit":true,"policy_template_new":true,"policy_template_save":true,"policy_template_view":true,"policy_view":true,"property_sets":true,"providers":true,"publish_document":true,"purge_deleted":true,"remove":true,"remove_locks":true,"resource_duplicate":true,"resourcegroup_delete":true,"resourcegroup_edit":true,"resourcegroup_new":true,"resourcegroup_resource_edit":true,"resourcegroup_resource_list":true,"resourcegroup_save":true,"resourcegroup_view":true,"resource_quick_create":true,"resource_quick_update":true,"resource_tree":true,"save":true,"save_category":true,"save_chunk":true,"save_context":true,"save_document":true,"save_plugin":true,"save_propertyset":true,"save_role":true,"save_snippet":true,"save_template":true,"save_tv":true,"save_user":true,"search":true,"set_sudo":true,"settings":true,"sources":true,"source_delete":true,"source_edit":true,"source_save":true,"source_view":true,"steal_locks":true,"tree_show_element_ids":true,"tree_show_resource_ids":true,"undelete_document":true,"unlock_element_properties":true,"unpublish_document":true,"usergroup_delete":true,"usergroup_edit":true,"usergroup_new":true,"usergroup_save":true,"usergroup_user_edit":true,"usergroup_user_list":true,"usergroup_view":true,"view":true,"view_category":true,"view_chunk":true,"view_context":true,"view_document":true,"view_element":true,"view_eventlog":true,"view_offline":true,"view_plugin":true,"view_propertyset":true,"view_role":true,"view_snippet":true,"view_sysinfo":true,"view_template":true,"view_tv":true,"view_unpublished":true,"view_user":true,"workspaces":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['3']= $xpdo->newObject(modAccessPolicy::class); -$policies['3']->fromArray([ - 'id' => 3, - 'name' => 'Load Only', - 'description' => 'A minimal policy with permission to load an object.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['4']= $xpdo->newObject(modAccessPolicy::class); -$policies['4']->fromArray([ - 'id' => 4, - 'name' => 'Load, List and View', - 'description' => 'Provides load, list and view permissions only.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":true,"list":true,"view":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['5']= $xpdo->newObject(modAccessPolicy::class); -$policies['5']->fromArray([ - 'id' => 5, - 'name' => 'Object', - 'description' => 'An Object policy with all permissions.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":true,"list":true,"view":true,"save":true,"remove":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['6']= $xpdo->newObject(modAccessPolicy::class); -$policies['6']->fromArray([ - 'id' => 6, - 'name' => 'Element', - 'description' => 'MODX Element policy with all attributes.', - 'parent' => 0, - 'class' => '', - 'data' => '{"add_children":true,"create":true,"delete":true,"list":true,"load":true,"remove":true,"save":true,"view":true,"copy":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['7']= $xpdo->newObject(modAccessPolicy::class); -$policies['7']->fromArray([ - 'id' => 7, - 'name' => 'Content Editor', - 'description' => 'Context administration policy with limited, content-editing related Permissions, but no publishing.', - 'parent' => 0, - 'class' => '', - 'data' => '{"change_profile":true,"class_map":true,"countries":true,"edit_document":true,"frames":true,"help":true,"home":true,"load":true,"list":true,"logout":true,"menu_reports":true,"menu_site":true,"menu_support":true,"menu_tools":true,"menu_user":true,"resource_duplicate":true,"resource_tree":true,"save_document":true,"source_view":true,"tree_show_resource_ids":true,"view":true,"view_document":true,"view_template":true,"new_document":true,"delete_document":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['8']= $xpdo->newObject(modAccessPolicy::class); -$policies['8']->fromArray([ - 'id' => 8, - 'name' => 'Media Source Admin', - 'description' => 'Media Source administration policy.', - 'parent' => 0, - 'class' => '', - 'data' => '{"create":true,"copy":true,"load":true,"list":true,"save":true,"remove":true,"view":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['9']= $xpdo->newObject(modAccessPolicy::class); -$policies['9']->fromArray([ - 'id' => 9, - 'name' => 'Media Source User', - 'description' => 'Media Source user policy, with basic viewing and using - but no editing - of Media Sources.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":true,"list":true,"view":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['10']= $xpdo->newObject(modAccessPolicy::class); -$policies['10']->fromArray([ - 'id' => 10, - 'name' => 'Developer', - 'description' => 'Context administration policy with most Permissions except Administrator and Security functions.', - 'parent' => 0, - 'class' => '', - 'data' => '{"about":true,"change_password":true,"change_profile":true,"charsets":true,"class_map":true,"components":true,"content_types":true,"countries":true,"create":true,"credits":true,"customize_forms":true,"dashboards":true,"database":true,"delete_category":true,"delete_chunk":true,"delete_context":true,"delete_document":true,"delete_eventlog":true,"delete_plugin":true,"delete_propertyset":true,"delete_snippet":true,"delete_template":true,"delete_tv":true,"delete_role":true,"delete_user":true,"directory_chmod":true,"directory_create":true,"directory_list":true,"directory_remove":true,"directory_update":true,"edit_category":true,"edit_chunk":true,"edit_context":true,"edit_document":true,"edit_locked":true,"edit_plugin":true,"edit_propertyset":true,"edit_role":true,"edit_snippet":true,"edit_template":true,"edit_tv":true,"edit_user":true,"element_tree":true,"empty_cache":true,"error_log_erase":true,"error_log_view":true,"export_static":true,"file_create":true,"file_list":true,"file_manager":true,"file_remove":true,"file_tree":true,"file_update":true,"file_upload":true,"file_unpack":true,"file_view":true,"frames":true,"help":true,"home":true,"import_static":true,"languages":true,"lexicons":true,"list":true,"load":true,"logout":true,"logs":true,"menu_reports":true,"menu_site":true,"menu_support":true,"menu_system":true,"menu_tools":true,"menu_user":true,"menus":true,"messages":true,"namespaces":true,"new_category":true,"new_chunk":true,"new_context":true,"new_document":true,"new_static_resource":true,"new_symlink":true,"new_weblink":true,"new_document_in_root":true,"new_plugin":true,"new_propertyset":true,"new_role":true,"new_snippet":true,"new_template":true,"new_tv":true,"new_user":true,"packages":true,"property_sets":true,"providers":true,"publish_document":true,"purge_deleted":true,"remove":true,"resource_duplicate":true,"resource_quick_create":true,"resource_quick_update":true,"resource_tree":true,"save":true,"save_category":true,"save_chunk":true,"save_context":true,"save_document":true,"save_plugin":true,"save_propertyset":true,"save_snippet":true,"save_template":true,"save_tv":true,"save_user":true,"search":true,"settings":true,"source_delete":true,"source_edit":true,"source_save":true,"source_view":true,"sources":true,"tree_show_element_ids":true,"tree_show_resource_ids":true,"undelete_document":true,"unpublish_document":true,"unlock_element_properties":true,"view":true,"view_category":true,"view_chunk":true,"view_context":true,"view_document":true,"view_element":true,"view_eventlog":true,"view_offline":true,"view_plugin":true,"view_propertyset":true,"view_role":true,"view_snippet":true,"view_sysinfo":true,"view_template":true,"view_tv":true,"view_user":true,"view_unpublished":true,"workspaces":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['11']= $xpdo->newObject(modAccessPolicy::class); -$policies['11']->fromArray([ - 'id' => 11, - 'name' => 'Context', - 'description' => 'A standard Context policy that you can apply when creating Context ACLs for basic read/write and view_unpublished access within a Context.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":true,"list":true,"view":true,"save":true,"remove":true,"copy":true,"view_unpublished":true}', - 'lexicon' => 'permissions', -], '', true, true); - -$policies['12']= $xpdo->newObject(modAccessPolicy::class); -$policies['12']->fromArray([ - 'id' => 12, - 'name' => 'Hidden Namespace', - 'description' => 'Hidden Namespace policy, will not show Namespace in lists.', - 'parent' => 0, - 'class' => '', - 'data' => '{"load":false,"list":false,"view":true}', - 'lexicon' => 'permissions', -], '', true, true); +function jsonifyPermissions(array $permissions = []) { + $data = []; + foreach ($permissions as $key => $permission) { + if (is_string($key) && is_bool($permission)) { + $data[$key] = $permission; + } else { + $data[$permission] = true; + } + } + return json_encode($data); +} + +$corePermissions = [ + modAccessPolicy::POLICY_RESOURCE => ['add_children', 'create', 'copy', 'delete', 'list', 'load', 'move', 'publish', 'remove', 'save', 'steal_lock', 'undelete', 'unpublish', 'view'], + modAccessPolicy::POLICY_ADMINISTRATOR => ['about','access_permissions','actions','change_password','change_profile','charsets','class_map','components','content_types','countries','create','credits','customize_forms','dashboards','database','database_truncate','delete_category','delete_chunk','delete_context','delete_document','delete_eventlog','delete_plugin','delete_propertyset','delete_role','delete_snippet','delete_template','delete_tv','delete_user','directory_chmod','directory_create','directory_list','directory_remove','directory_update','edit_category','edit_chunk','edit_context','edit_document','edit_locked','edit_plugin','edit_propertyset','edit_role','edit_snippet','edit_template','edit_tv','edit_user','element_tree','empty_cache','error_log_erase','error_log_view','events','export_static','file_create','file_list','file_manager','file_remove','file_tree','file_update','file_upload','file_unpack','file_view','flush_sessions','frames','help','home','import_static','language','languages','lexicons','list','load','logout','logs','menus','menu_reports','menu_security','menu_site','menu_support','menu_system','menu_tools','menu_trash','menu_user','messages','namespaces','new_category','new_chunk','new_context','new_document','new_document_in_root','new_plugin','new_propertyset','new_role','new_snippet','new_static_resource','new_symlink','new_template','new_tv','new_user','new_weblink','packages','policy_delete','policy_edit','policy_new','policy_save','policy_template_delete','policy_template_edit','policy_template_new','policy_template_save','policy_template_view','policy_view','property_sets','providers','publish_document','purge_deleted','remove','remove_locks','resource_duplicate','resourcegroup_delete','resourcegroup_edit','resourcegroup_new','resourcegroup_resource_edit','resourcegroup_resource_list','resourcegroup_save','resourcegroup_view','resource_quick_create','resource_quick_update','resource_tree','save','save_category','save_chunk','save_context','save_document','save_plugin','save_propertyset','save_role','save_snippet','save_template','save_tv','save_user','search','set_sudo','settings','sources','source_delete','source_edit','source_save','source_view','steal_locks','tree_show_element_ids','tree_show_resource_ids','undelete_document','unlock_element_properties','unpublish_document','usergroup_delete','usergroup_edit','usergroup_new','usergroup_save','usergroup_user_edit','usergroup_user_list','usergroup_view','view','view_category','view_chunk','view_context','view_document','view_element','view_eventlog','view_offline','view_plugin','view_propertyset','view_role','view_snippet','view_sysinfo','view_template','view_tv','view_unpublished','view_user','workspaces'], + modAccessPolicy::POLICY_LOAD_ONLY => ['load'], + modAccessPolicy::POLICY_LOAD_LIST_VIEW => ['load', 'list', 'view'], + modAccessPolicy::POLICY_OBJECT => ['load', 'list', 'view', 'save', 'remove'], + modAccessPolicy::POLICY_ELEMENT => ['add_children', 'create', 'delete', 'list', 'load', 'remove', 'save', 'view', 'copy'], + modAccessPolicy::POLICY_CONTENT_EDITOR => ['change_profile', 'class_map', 'countries', 'edit_document', 'frames', 'help', 'home', 'language', 'load', 'list', 'logout', 'menu_reports', 'menu_site', 'menu_support', 'menu_tools', 'menu_user', 'resource_duplicate', 'resource_tree', 'save_document', 'source_view', 'tree_show_resource_ids', 'view', 'view_document', 'view_template', 'new_document', 'delete_document'], + modAccessPolicy::POLICY_MEDIA_SOURCE_ADMIN => ['create', 'copy', 'load', 'list', 'save', 'remove', 'view'], + modAccessPolicy::POLICY_MEDIA_SOURCE_USER => ['load', 'list', 'view'], + modAccessPolicy::POLICY_DEVELOPER => ['about', 'change_password', 'change_profile', 'charsets', 'class_map', 'components', 'content_types', 'countries', 'create', 'credits', 'customize_forms', 'dashboards', 'database', 'delete_category', 'delete_chunk', 'delete_context', 'delete_document', 'delete_eventlog', 'delete_plugin', 'delete_propertyset', 'delete_snippet', 'delete_template', 'delete_tv', 'delete_role', 'delete_user', 'directory_chmod', 'directory_create', 'directory_list', 'directory_remove', 'directory_update', 'edit_category', 'edit_chunk', 'edit_context', 'edit_document', 'edit_locked', 'edit_plugin', 'edit_propertyset', 'edit_role', 'edit_snippet', 'edit_template', 'edit_tv', 'edit_user', 'element_tree', 'empty_cache', 'error_log_erase', 'error_log_view', 'export_static', 'file_create', 'file_list', 'file_manager', 'file_remove', 'file_tree', 'file_update', 'file_upload', 'file_unpack', 'file_view', 'frames', 'help', 'home', 'import_static', 'language', 'languages', 'lexicons', 'list', 'load', 'logout', 'logs', 'menu_reports', 'menu_site', 'menu_support', 'menu_system', 'menu_tools', 'menu_user', 'menus', 'messages', 'namespaces', 'new_category', 'new_chunk', 'new_context', 'new_document', 'new_static_resource', 'new_symlink', 'new_weblink', 'new_document_in_root', 'new_plugin', 'new_propertyset', 'new_role', 'new_snippet', 'new_template', 'new_tv', 'new_user', 'packages', 'property_sets', 'providers', 'publish_document', 'purge_deleted', 'remove', 'resource_duplicate', 'resource_quick_create', 'resource_quick_update', 'resource_tree', 'save', 'save_category', 'save_chunk', 'save_context', 'save_document', 'save_plugin', 'save_propertyset', 'save_snippet', 'save_template', 'save_tv', 'save_user', 'search', 'settings', 'source_delete', 'source_edit', 'source_save', 'source_view', 'sources', 'tree_show_element_ids', 'tree_show_resource_ids', 'undelete_document', 'unpublish_document', 'unlock_element_properties', 'view', 'view_category', 'view_chunk', 'view_context', 'view_document', 'view_element', 'view_eventlog', 'view_offline', 'view_plugin', 'view_propertyset', 'view_role', 'view_snippet', 'view_sysinfo', 'view_template', 'view_tv', 'view_user', 'view_unpublished', 'workspaces'], + modAccessPolicy::POLICY_CONTEXT => ['load', 'list', 'view', 'save', 'remove', 'copy', 'view_unpublished'], + modAccessPolicy::POLICY_HIDDEN_NAMESPACE => ['load' => false, 'list' => false, 'view' => true], +]; + +foreach (modAccessPolicy::getCorePolicies() as $index => $policyName) { + + $policyNameLowered = str_replace([',', ' '], ['', '_'], strtolower($policyName)); + + $policy = $xpdo->newObject(modAccessPolicy::class); + $policy->fromArray( + [ + 'id' => $index + 1, + 'name' => $policyName, + 'description' => sprintf('policy_%s_desc', $policyNameLowered), + 'parent' => 0, + 'class' => '', + 'data' => jsonifyPermissions($corePermissions[$policyName]), + 'lexicon' => 'permissions', + ], + '', + true, + true + ); + + $policies[] = $policy; +} return $policies; diff --git a/_build/data/transport.core.accesspolicytemplategroups.php b/_build/data/transport.core.accesspolicytemplategroups.php index c76adc2c406..f9852b6d970 100644 --- a/_build/data/transport.core.accesspolicytemplategroups.php +++ b/_build/data/transport.core.accesspolicytemplategroups.php @@ -7,56 +7,24 @@ * For complete copyright and license information, see the COPYRIGHT and LICENSE * files found in the top-level directory of this distribution. */ + use MODX\Revolution\modAccessPolicyTemplateGroup; $templateGroups = []; -/* administrator group templates */ -$templateGroups['1']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['1']->fromArray([ - 'id' => 1, - 'name' => 'Admin', - 'description' => 'All admin policy templates.', -]); - -/* Object group templates */ -$templateGroups['2']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['2']->fromArray([ - 'id' => 2, - 'name' => 'Object', - 'description' => 'All Object-based policy templates.', -]); - -/* Resource group templates */ -$templateGroups['3']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['3']->fromArray([ - 'id' => 3, - 'name' => 'Resource', - 'description' => 'All Resource-based policy templates.', -]); - -/* Element group templates */ -$templateGroups['4']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['4']->fromArray([ - 'id' => 4, - 'name' => 'Element', - 'description' => 'All Element-based policy templates.', -]); +$groups = modAccessPolicyTemplateGroup::getCoreGroups(); -/* Media Source group templates */ -$templateGroups['5']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['5']->fromArray([ - 'id' => 5, - 'name' => 'MediaSource', - 'description' => 'All Media Source-based policy templates.', -]); +foreach (modAccessPolicyTemplateGroup::getCoreGroups() as $index => $groupName) { + $group = $xpdo->newObject(modAccessPolicyTemplateGroup::class); + $group->fromArray( + [ + 'id' => $index + 1, + 'name' => $groupName, + 'description' => sprintf('policy_template_group_%s_desc', strtolower($groupName)), + ] + ); -/* Namespace group templates */ -$templateGroups['6']= $xpdo->newObject(modAccessPolicyTemplateGroup::class); -$templateGroups['6']->fromArray([ - 'id' => 6, - 'name' => 'Namespace', - 'description' => 'All Namespace based policy templates.', -]); + $templateGroups[] = $group; +} return $templateGroups; diff --git a/_build/data/transport.core.accesspolicytemplates.php b/_build/data/transport.core.accesspolicytemplates.php index 1e831314880..6ad27c74b88 100644 --- a/_build/data/transport.core.accesspolicytemplates.php +++ b/_build/data/transport.core.accesspolicytemplates.php @@ -7,99 +7,34 @@ * For complete copyright and license information, see the COPYRIGHT and LICENSE * files found in the top-level directory of this distribution. */ + use MODX\Revolution\modAccessPolicyTemplate; $templates = []; -/* administrator template/policy */ -$templates['1']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['1']->fromArray([ - 'id' => 1, - 'name' => 'AdministratorTemplate', - 'description' => 'Context administration policy template with all permissions.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.administrator.php'; -if (is_array($permissions)) { - $templates['1']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Administrator Policy Template.'); } - -/* resource template/policy */ -$templates['2']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['2']->fromArray([ - 'id' => 2, - 'name' => 'ResourceTemplate', - 'description' => 'Resource Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.resource.php'; -if (is_array($permissions)) { - $templates['2']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Resource Template Permissions.'); } +foreach (modAccessPolicyTemplate::getCoreTemplates() as $index => $templateName) { -/* object template and policies */ -$templates['3']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['3']->fromArray([ - 'id' => 3, - 'name' => 'ObjectTemplate', - 'description' => 'Object Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.object.php'; -if (is_array($permissions)) { - $templates['3']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Object Template Permissions.'); } + $templateNameLowered = str_replace('template', '', strtolower($templateName)); -/* element template/policy */ -$templates['4']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['4']->fromArray([ - 'id' => 4, - 'name' => 'ElementTemplate', - 'description' => 'Element Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.element.php'; -if (is_array($permissions)) { - $templates['4']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Element Template Permissions.'); } + $template = $xpdo->newObject(modAccessPolicyTemplate::class); + $template->fromArray( + [ + 'id' => $index + 1, + 'name' => $templateName, + 'description' => sprintf('policy_template_%s_desc', $templateNameLowered), + 'lexicon' => 'permissions', + ] + ); -/* media source template/policy */ -$templates['5']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['5']->fromArray([ - 'id' => 5, - 'name' => 'MediaSourceTemplate', - 'description' => 'Media Source Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.media_source.php'; -if (is_array($permissions)) { - $templates['5']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Media Source Template Permissions.'); } + $permissions = include __DIR__ . sprintf('/permissions/transport.policy.tpl.%s.php', $templateNameLowered); -/* context template policies */ -$templates['6']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['6']->fromArray([ - 'id' => 6, - 'name' => 'ContextTemplate', - 'description' => 'Context Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.context.php'; -if (is_array($permissions)) { - $templates['6']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Context Template Permissions.'); } + if (is_array($permissions)) { + $template->addMany($permissions); + } else { + $xpdo->log(xPDO::LOG_LEVEL_ERROR, sprintf('Could not load %s Policy Template.', $templateName)); + } -/* namespace template/policy */ -$templates['7']= $xpdo->newObject(modAccessPolicyTemplate::class); -$templates['7']->fromArray([ - 'id' => 7, - 'name' => 'NamespaceTemplate', - 'description' => 'Namespace Policy Template with all attributes.', - 'lexicon' => 'permissions', -]); -$permissions = include dirname(__FILE__).'/permissions/transport.policy.tpl.namespace.php'; -if (is_array($permissions)) { - $templates['7']->addMany($permissions); -} else { $xpdo->log(xPDO::LOG_LEVEL_ERROR,'Could not load Namespace Template Permissions.'); } + $templates[] = $template; +} return $templates; diff --git a/_build/data/transport.core.menus.php b/_build/data/transport.core.menus.php index d50ffb8e3f9..440e40583d1 100644 --- a/_build/data/transport.core.menus.php +++ b/_build/data/transport.core.menus.php @@ -42,6 +42,7 @@ 'parent' => 'topnav', 'permissions' => 'menu_site', 'action' => '', + 'icon' => '', ], '', true, true); $children = []; @@ -122,10 +123,11 @@ $topNavMenus[1]->fromArray([ 'menuindex' => 1, 'text' => 'media', - 'description' => 'media_desc', + 'description' => '', 'parent' => 'topnav', 'permissions' => 'file_manager', 'action' => '', + 'icon' => '', ], '', true, true); /* Media Browser */ @@ -163,6 +165,7 @@ 'parent' => 'topnav', 'permissions' => 'components', 'action' => '', + 'icon' => '', ], '', true, true); /* Installer */ @@ -189,6 +192,7 @@ 'parent' => 'topnav', 'permissions' => 'menu_tools', 'action' => '', + 'icon' => '', ], '', true, true); $children = []; diff --git a/_build/data/transport.core.system_settings.php b/_build/data/transport.core.system_settings.php index b7e32b7efbe..598d1e2b6f8 100644 --- a/_build/data/transport.core.system_settings.php +++ b/_build/data/transport.core.system_settings.php @@ -10,7 +10,7 @@ use MODX\Revolution\modSystemSetting; $settings = []; -$settings['access_category_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['access_category_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['access_category_enabled']->fromArray([ 'key' => 'access_category_enabled', 'value' => true, @@ -19,7 +19,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['access_context_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['access_context_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['access_context_enabled']->fromArray([ 'key' => 'access_context_enabled', 'value' => true, @@ -28,7 +28,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['access_resource_group_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['access_resource_group_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['access_resource_group_enabled']->fromArray([ 'key' => 'access_resource_group_enabled', 'value' => true, @@ -37,7 +37,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['allow_forward_across_contexts']= $xpdo->newObject(modSystemSetting::class); +$settings['allow_forward_across_contexts'] = $xpdo->newObject(modSystemSetting::class); $settings['allow_forward_across_contexts']->fromArray([ 'key' => 'allow_forward_across_contexts', 'value' => false, @@ -46,7 +46,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['allow_manager_login_forgot_password']= $xpdo->newObject(modSystemSetting::class); +$settings['allow_manager_login_forgot_password'] = $xpdo->newObject(modSystemSetting::class); $settings['allow_manager_login_forgot_password']->fromArray([ 'key' => 'allow_manager_login_forgot_password', 'value' => true, @@ -55,7 +55,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['allow_multiple_emails']= $xpdo->newObject(modSystemSetting::class); +$settings['allow_multiple_emails'] = $xpdo->newObject(modSystemSetting::class); $settings['allow_multiple_emails']->fromArray([ 'key' => 'allow_multiple_emails', 'value' => true, @@ -64,7 +64,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['allow_tags_in_post']= $xpdo->newObject(modSystemSetting::class); +$settings['allow_tags_in_post'] = $xpdo->newObject(modSystemSetting::class); $settings['allow_tags_in_post']->fromArray([ 'key' => 'allow_tags_in_post', 'value' => false, @@ -73,7 +73,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['archive_with']= $xpdo->newObject(modSystemSetting::class); +$settings['archive_with'] = $xpdo->newObject(modSystemSetting::class); $settings['archive_with']->fromArray([ 'key' => 'archive_with', 'value' => false, @@ -82,7 +82,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['auto_menuindex']= $xpdo->newObject(modSystemSetting::class); +$settings['auto_menuindex'] = $xpdo->newObject(modSystemSetting::class); $settings['auto_menuindex']->fromArray([ 'key' => 'auto_menuindex', 'value' => true, @@ -91,7 +91,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['auto_check_pkg_updates']= $xpdo->newObject(modSystemSetting::class); +$settings['auto_check_pkg_updates'] = $xpdo->newObject(modSystemSetting::class); $settings['auto_check_pkg_updates']->fromArray([ 'key' => 'auto_check_pkg_updates', 'value' => true, @@ -100,7 +100,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['auto_check_pkg_updates_cache_expire']= $xpdo->newObject(modSystemSetting::class); +$settings['auto_check_pkg_updates_cache_expire'] = $xpdo->newObject(modSystemSetting::class); $settings['auto_check_pkg_updates_cache_expire']->fromArray([ 'key' => 'auto_check_pkg_updates_cache_expire', 'value' => 15, @@ -109,7 +109,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['automatic_alias']= $xpdo->newObject(modSystemSetting::class); +$settings['automatic_alias'] = $xpdo->newObject(modSystemSetting::class); $settings['automatic_alias']->fromArray([ 'key' => 'automatic_alias', 'value' => true, @@ -118,7 +118,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['automatic_template_assignment']= $xpdo->newObject(modSystemSetting::class); +$settings['automatic_template_assignment'] = $xpdo->newObject(modSystemSetting::class); $settings['automatic_template_assignment']->fromArray([ 'key' => 'automatic_template_assignment', 'value' => 'sibling', @@ -127,16 +127,16 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['base_help_url']= $xpdo->newObject(modSystemSetting::class); +$settings['base_help_url'] = $xpdo->newObject(modSystemSetting::class); $settings['base_help_url']->fromArray([ 'key' => 'base_help_url', - 'value' => '//docs.modx.com/display/revolution20/', + 'value' => '//docs.modx.com/help/', 'xtype' => 'textfield', 'namespace' => 'core', 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['blocked_minutes']= $xpdo->newObject(modSystemSetting::class); +$settings['blocked_minutes'] = $xpdo->newObject(modSystemSetting::class); $settings['blocked_minutes']->fromArray([ 'key' => 'blocked_minutes', 'value' => 60, @@ -145,7 +145,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['cache_alias_map']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_alias_map'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_alias_map']->fromArray([ 'key' => 'cache_alias_map', 'value' => true, @@ -154,7 +154,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['use_context_resource_table']= $xpdo->newObject(modSystemSetting::class); +$settings['use_context_resource_table'] = $xpdo->newObject(modSystemSetting::class); $settings['use_context_resource_table']->fromArray([ 'key' => 'use_context_resource_table', 'value' => true, @@ -163,7 +163,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_context_settings']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_context_settings'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_context_settings']->fromArray([ 'key' => 'cache_context_settings', 'value' => true, @@ -172,7 +172,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_db']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_db'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_db']->fromArray([ 'key' => 'cache_db', 'value' => false, @@ -181,7 +181,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_db_expires']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_db_expires'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_db_expires']->fromArray([ 'key' => 'cache_db_expires', 'value' => 0, @@ -190,7 +190,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_db_session']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_db_session'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_db_session']->fromArray([ 'key' => 'cache_db_session', 'value' => false, @@ -199,7 +199,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_db_session_lifetime']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_db_session_lifetime'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_db_session_lifetime']->fromArray([ 'key' => 'cache_db_session_lifetime', 'value' => '', @@ -208,7 +208,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_default']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_default'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_default']->fromArray([ 'key' => 'cache_default', 'value' => true, @@ -217,7 +217,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_expires']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_expires'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_expires']->fromArray([ 'key' => 'cache_expires', 'value' => 0, @@ -226,7 +226,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_format']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_format'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_format']->fromArray([ 'key' => 'cache_format', 'value' => 0, @@ -235,7 +235,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_handler']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_handler'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_handler']->fromArray([ 'key' => 'cache_handler', 'value' => 'xPDO\Cache\xPDOFileCache', @@ -244,7 +244,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_lang_js']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_lang_js'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_lang_js']->fromArray([ 'key' => 'cache_lang_js', 'value' => true, @@ -253,7 +253,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_lexicon_topics']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_lexicon_topics'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_lexicon_topics']->fromArray([ 'key' => 'cache_lexicon_topics', 'value' => true, @@ -262,7 +262,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_noncore_lexicon_topics']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_noncore_lexicon_topics'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_noncore_lexicon_topics']->fromArray([ 'key' => 'cache_noncore_lexicon_topics', 'value' => true, @@ -271,7 +271,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_resource']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_resource'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_resource']->fromArray([ 'key' => 'cache_resource', 'value' => true, @@ -280,7 +280,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_resource_expires']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_resource_expires'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_resource_expires']->fromArray([ 'key' => 'cache_resource_expires', 'value' => 0, @@ -289,7 +289,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_resource_clear_partial']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_resource_clear_partial'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_resource_clear_partial']->fromArray([ 'key' => 'cache_resource_clear_partial', 'value' => false, @@ -298,7 +298,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['cache_scripts']= $xpdo->newObject(modSystemSetting::class); +$settings['cache_scripts'] = $xpdo->newObject(modSystemSetting::class); $settings['cache_scripts']->fromArray([ 'key' => 'cache_scripts', 'value' => true, @@ -307,7 +307,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['clear_cache_refresh_trees']= $xpdo->newObject(modSystemSetting::class); +$settings['clear_cache_refresh_trees'] = $xpdo->newObject(modSystemSetting::class); $settings['clear_cache_refresh_trees']->fromArray([ 'key' => 'clear_cache_refresh_trees', 'value' => false, @@ -316,7 +316,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['compress_css']= $xpdo->newObject(modSystemSetting::class); +$settings['compress_css'] = $xpdo->newObject(modSystemSetting::class); $settings['compress_css']->fromArray([ 'key' => 'compress_css', 'value' => true, @@ -325,7 +325,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['compress_js']= $xpdo->newObject(modSystemSetting::class); +$settings['compress_js'] = $xpdo->newObject(modSystemSetting::class); $settings['compress_js']->fromArray([ 'key' => 'compress_js', 'value' => true, @@ -334,7 +334,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['confirm_navigation']= $xpdo->newObject(modSystemSetting::class); +$settings['confirm_navigation'] = $xpdo->newObject(modSystemSetting::class); $settings['confirm_navigation']->fromArray([ 'key' => 'confirm_navigation', 'value' => true, @@ -343,7 +343,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['container_suffix']= $xpdo->newObject(modSystemSetting::class); +$settings['container_suffix'] = $xpdo->newObject(modSystemSetting::class); $settings['container_suffix']->fromArray([ 'key' => 'container_suffix', 'value' => '/', @@ -352,7 +352,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['context_tree_sort']= $xpdo->newObject(modSystemSetting::class); +$settings['context_tree_sort'] = $xpdo->newObject(modSystemSetting::class); $settings['context_tree_sort']->fromArray([ 'key' => 'context_tree_sort', 'value' => true, @@ -361,7 +361,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['context_tree_sortby']= $xpdo->newObject(modSystemSetting::class); +$settings['context_tree_sortby'] = $xpdo->newObject(modSystemSetting::class); $settings['context_tree_sortby']->fromArray([ 'key' => 'context_tree_sortby', 'value' => 'rank', @@ -370,7 +370,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['context_tree_sortdir']= $xpdo->newObject(modSystemSetting::class); +$settings['context_tree_sortdir'] = $xpdo->newObject(modSystemSetting::class); $settings['context_tree_sortdir']->fromArray([ 'key' => 'context_tree_sortdir', 'value' => 'ASC', @@ -379,7 +379,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['cultureKey']= $xpdo->newObject(modSystemSetting::class); +$settings['cultureKey'] = $xpdo->newObject(modSystemSetting::class); $settings['cultureKey']->fromArray([ 'key' => 'cultureKey', 'value' => 'en', @@ -388,7 +388,7 @@ 'area' => 'language', 'editedon' => null, ], '', true, true); -$settings['date_timezone']= $xpdo->newObject(modSystemSetting::class); +$settings['date_timezone'] = $xpdo->newObject(modSystemSetting::class); $settings['date_timezone']->fromArray([ 'key' => 'date_timezone', 'value' => '', @@ -397,7 +397,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['debug']= $xpdo->newObject(modSystemSetting::class); +$settings['debug'] = $xpdo->newObject(modSystemSetting::class); $settings['debug']->fromArray([ 'key' => 'debug', 'value' => '', @@ -406,7 +406,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['default_duplicate_publish_option']= $xpdo->newObject(modSystemSetting::class); +$settings['default_duplicate_publish_option'] = $xpdo->newObject(modSystemSetting::class); $settings['default_duplicate_publish_option']->fromArray([ 'key' => 'default_duplicate_publish_option', 'value' => 'preserve', @@ -415,7 +415,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['default_media_source']= $xpdo->newObject(modSystemSetting::class); +$settings['default_media_source'] = $xpdo->newObject(modSystemSetting::class); $settings['default_media_source']->fromArray([ 'key' => 'default_media_source', 'value' => 1, @@ -424,7 +424,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['default_media_source_type']= $xpdo->newObject(modSystemSetting::class); +$settings['default_media_source_type'] = $xpdo->newObject(modSystemSetting::class); $settings['default_media_source_type']->fromArray([ 'key' => 'default_media_source_type', 'value' => MODX\Revolution\Sources\modFileMediaSource::class, @@ -433,7 +433,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['default_per_page']= $xpdo->newObject(modSystemSetting::class); +$settings['default_per_page'] = $xpdo->newObject(modSystemSetting::class); $settings['default_per_page']->fromArray([ 'key' => 'default_per_page', 'value' => '20', @@ -442,7 +442,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['default_context']= $xpdo->newObject(modSystemSetting::class); +$settings['default_context'] = $xpdo->newObject(modSystemSetting::class); $settings['default_context']->fromArray([ 'key' => 'default_context', 'value' => 'web', @@ -451,7 +451,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['default_template']= $xpdo->newObject(modSystemSetting::class); +$settings['default_template'] = $xpdo->newObject(modSystemSetting::class); $settings['default_template']->fromArray([ 'key' => 'default_template', 'value' => 1, @@ -460,7 +460,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['default_content_type']= $xpdo->newObject(modSystemSetting::class); +$settings['default_content_type'] = $xpdo->newObject(modSystemSetting::class); $settings['default_content_type']->fromArray([ 'key' => 'default_content_type', 'value' => 1, @@ -469,7 +469,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['emailsender']= $xpdo->newObject(modSystemSetting::class); +$settings['emailsender'] = $xpdo->newObject(modSystemSetting::class); $settings['emailsender']->fromArray([ 'key' => 'emailsender', 'value' => 'email@example.com', @@ -478,7 +478,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['enable_dragdrop']= $xpdo->newObject(modSystemSetting::class); +$settings['enable_dragdrop'] = $xpdo->newObject(modSystemSetting::class); $settings['enable_dragdrop']->fromArray([ 'key' => 'enable_dragdrop', 'value' => true, @@ -487,7 +487,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['error_page']= $xpdo->newObject(modSystemSetting::class); +$settings['error_page'] = $xpdo->newObject(modSystemSetting::class); $settings['error_page']->fromArray([ 'key' => 'error_page', 'value' => 1, @@ -496,7 +496,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['failed_login_attempts']= $xpdo->newObject(modSystemSetting::class); +$settings['failed_login_attempts'] = $xpdo->newObject(modSystemSetting::class); $settings['failed_login_attempts']->fromArray([ 'key' => 'failed_login_attempts', 'value' => 5, @@ -505,7 +505,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['feed_modx_news']= $xpdo->newObject(modSystemSetting::class); +$settings['feed_modx_news'] = $xpdo->newObject(modSystemSetting::class); $settings['feed_modx_news']->fromArray([ 'key' => 'feed_modx_news', 'value' => 'https://feeds.feedburner.com/modx-announce', @@ -514,7 +514,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['feed_modx_news_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['feed_modx_news_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['feed_modx_news_enabled']->fromArray([ 'key' => 'feed_modx_news_enabled', 'value' => true, @@ -523,7 +523,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['feed_modx_security']= $xpdo->newObject(modSystemSetting::class); +$settings['feed_modx_security'] = $xpdo->newObject(modSystemSetting::class); $settings['feed_modx_security']->fromArray([ 'key' => 'feed_modx_security', 'value' => 'https://forums.modx.com/board.xml?board=294', @@ -532,7 +532,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['feed_modx_security_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['feed_modx_security_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['feed_modx_security_enabled']->fromArray([ 'key' => 'feed_modx_security_enabled', 'value' => true, @@ -541,7 +541,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['form_customization_use_all_groups']= $xpdo->newObject(modSystemSetting::class); +$settings['form_customization_use_all_groups'] = $xpdo->newObject(modSystemSetting::class); $settings['form_customization_use_all_groups']->fromArray([ 'key' => 'form_customization_use_all_groups', 'value' => false, @@ -550,7 +550,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['forward_merge_excludes']= $xpdo->newObject(modSystemSetting::class); +$settings['forward_merge_excludes'] = $xpdo->newObject(modSystemSetting::class); $settings['forward_merge_excludes']->fromArray([ 'key' => 'forward_merge_excludes', 'value' => 'type,published,class_key', @@ -559,7 +559,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_lowercase_only']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_lowercase_only'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_lowercase_only']->fromArray([ 'key' => 'friendly_alias_lowercase_only', 'value' => true, @@ -568,7 +568,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_max_length']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_max_length'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_max_length']->fromArray([ 'key' => 'friendly_alias_max_length', 'value' => 0, @@ -577,7 +577,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_realtime']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_realtime'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_realtime']->fromArray([ 'key' => 'friendly_alias_realtime', 'value' => false, @@ -586,7 +586,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_restrict_chars']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_restrict_chars'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_restrict_chars']->fromArray([ 'key' => 'friendly_alias_restrict_chars', 'value' => 'pattern', @@ -595,7 +595,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_restrict_chars_pattern']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_restrict_chars_pattern'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_restrict_chars_pattern']->fromArray([ 'key' => 'friendly_alias_restrict_chars_pattern', 'value' => '/[\0\x0B\t\n\r\f\a&=+%#<>"~:`@\?\[\]\{\}\|\^\'\\\\]/', @@ -604,7 +604,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_strip_element_tags']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_strip_element_tags'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_strip_element_tags']->fromArray([ 'key' => 'friendly_alias_strip_element_tags', 'value' => true, @@ -613,7 +613,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_translit']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_translit'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_translit']->fromArray([ 'key' => 'friendly_alias_translit', 'value' => 'none', @@ -622,7 +622,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_translit_class']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_translit_class'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_translit_class']->fromArray([ 'key' => 'friendly_alias_translit_class', 'value' => 'translit.modTransliterate', @@ -631,7 +631,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_translit_class_path']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_translit_class_path'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_translit_class_path']->fromArray([ 'key' => 'friendly_alias_translit_class_path', 'value' => '{core_path}components/', @@ -640,7 +640,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_trim_chars']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_trim_chars'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_trim_chars']->fromArray([ 'key' => 'friendly_alias_trim_chars', 'value' => '/.-_', @@ -649,7 +649,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_word_delimiter']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_word_delimiter'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_word_delimiter']->fromArray([ 'key' => 'friendly_alias_word_delimiter', 'value' => '-', @@ -658,7 +658,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_alias_word_delimiters']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_alias_word_delimiters'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_alias_word_delimiters']->fromArray([ 'key' => 'friendly_alias_word_delimiters', 'value' => '-_', @@ -667,7 +667,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_urls']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_urls'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_urls']->fromArray([ 'key' => 'friendly_urls', 'value' => false, @@ -676,7 +676,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['friendly_urls_strict']= $xpdo->newObject(modSystemSetting::class); +$settings['friendly_urls_strict'] = $xpdo->newObject(modSystemSetting::class); $settings['friendly_urls_strict']->fromArray([ 'key' => 'friendly_urls_strict', 'value' => false, @@ -685,7 +685,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['use_frozen_parent_uris']= $xpdo->newObject(modSystemSetting::class); +$settings['use_frozen_parent_uris'] = $xpdo->newObject(modSystemSetting::class); $settings['use_frozen_parent_uris']->fromArray([ 'key' => 'use_frozen_parent_uris', 'value' => false, @@ -694,7 +694,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['global_duplicate_uri_check']= $xpdo->newObject(modSystemSetting::class); +$settings['global_duplicate_uri_check'] = $xpdo->newObject(modSystemSetting::class); $settings['global_duplicate_uri_check']->fromArray([ 'key' => 'global_duplicate_uri_check', 'value' => false, @@ -703,7 +703,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['hidemenu_default']= $xpdo->newObject(modSystemSetting::class); +$settings['hidemenu_default'] = $xpdo->newObject(modSystemSetting::class); $settings['hidemenu_default']->fromArray([ 'key' => 'hidemenu_default', 'value' => false, @@ -712,7 +712,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['inline_help']= $xpdo->newObject(modSystemSetting::class); +$settings['inline_help'] = $xpdo->newObject(modSystemSetting::class); $settings['inline_help']->fromArray([ 'key' => 'inline_help', 'value' => 1, @@ -721,7 +721,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['locale']= $xpdo->newObject(modSystemSetting::class); +$settings['locale'] = $xpdo->newObject(modSystemSetting::class); $settings['locale']->fromArray([ 'key' => 'locale', 'value' => '', @@ -730,7 +730,7 @@ 'area' => 'language', 'editedon' => null, ], '', true, true); -$settings['log_level']= $xpdo->newObject(modSystemSetting::class); +$settings['log_level'] = $xpdo->newObject(modSystemSetting::class); $settings['log_level']->fromArray([ 'key' => 'log_level', 'value' => 1, @@ -739,7 +739,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['log_target']= $xpdo->newObject(modSystemSetting::class); +$settings['log_target'] = $xpdo->newObject(modSystemSetting::class); $settings['log_target']->fromArray([ 'key' => 'log_target', 'value' => 'FILE', @@ -748,7 +748,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['log_deprecated']= $xpdo->newObject(modSystemSetting::class); +$settings['log_deprecated'] = $xpdo->newObject(modSystemSetting::class); $settings['log_deprecated']->fromArray([ 'key' => 'log_deprecated', 'value' => true, @@ -757,7 +757,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['link_tag_scheme']= $xpdo->newObject(modSystemSetting::class); +$settings['link_tag_scheme'] = $xpdo->newObject(modSystemSetting::class); $settings['link_tag_scheme']->fromArray([ 'key' => 'link_tag_scheme', 'value' => -1, @@ -766,7 +766,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['lock_ttl']= $xpdo->newObject(modSystemSetting::class); +$settings['lock_ttl'] = $xpdo->newObject(modSystemSetting::class); $settings['lock_ttl']->fromArray([ 'key' => 'lock_ttl', 'value' => 360, @@ -775,7 +775,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['mail_charset']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_charset'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_charset']->fromArray([ 'key' => 'mail_charset', 'value' => 'UTF-8', @@ -784,7 +784,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_encoding']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_encoding'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_encoding']->fromArray([ 'key' => 'mail_encoding', 'value' => '8bit', @@ -793,7 +793,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_use_smtp']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_use_smtp'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_use_smtp']->fromArray([ 'key' => 'mail_use_smtp', 'value' => false, @@ -802,7 +802,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_auth']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_auth'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_auth']->fromArray([ 'key' => 'mail_smtp_auth', 'value' => false, @@ -811,7 +811,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_helo']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_helo'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_helo']->fromArray([ 'key' => 'mail_smtp_helo', 'value' => '', @@ -820,7 +820,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_hosts']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_hosts'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_hosts']->fromArray([ 'key' => 'mail_smtp_hosts', 'value' => 'localhost', @@ -829,7 +829,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_keepalive']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_keepalive'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_keepalive']->fromArray([ 'key' => 'mail_smtp_keepalive', 'value' => false, @@ -838,7 +838,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_pass']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_pass'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_pass']->fromArray([ 'key' => 'mail_smtp_pass', 'value' => '', @@ -847,7 +847,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_port']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_port'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_port']->fromArray([ 'key' => 'mail_smtp_port', 'value' => 587, @@ -856,7 +856,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_prefix']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_prefix'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_prefix']->fromArray([ 'key' => 'mail_smtp_prefix', 'value' => '', @@ -865,7 +865,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_single_to']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_single_to'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_single_to']->fromArray([ 'key' => 'mail_smtp_single_to', 'value' => false, @@ -874,7 +874,16 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_timeout']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_autotls'] = $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_autotls']->fromArray([ + 'key' => 'mail_smtp_autotls', + 'value' => true, + 'xtype' => 'combo-boolean', + 'namespace' => 'core', + 'area' => 'mail', + 'editedon' => null, +], '', true, true); +$settings['mail_smtp_timeout'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_timeout']->fromArray([ 'key' => 'mail_smtp_timeout', 'value' => 10, @@ -883,7 +892,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['mail_smtp_user']= $xpdo->newObject(modSystemSetting::class); +$settings['mail_smtp_user'] = $xpdo->newObject(modSystemSetting::class); $settings['mail_smtp_user']->fromArray([ 'key' => 'mail_smtp_user', 'value' => '', @@ -892,7 +901,7 @@ 'area' => 'mail', 'editedon' => null, ], '', true, true); -$settings['manager_date_format']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_date_format'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_date_format']->fromArray([ 'key' => 'manager_date_format', 'value' => 'Y-m-d', @@ -901,7 +910,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_favicon_url']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_favicon_url'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_favicon_url']->fromArray([ 'key' => 'manager_favicon_url', 'value' => 'favicon.ico', @@ -910,7 +919,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_time_format']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_time_format'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_time_format']->fromArray([ 'key' => 'manager_time_format', 'value' => 'H:i', @@ -919,7 +928,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_direction']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_direction'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_direction']->fromArray([ 'key' => 'manager_direction', 'value' => 'ltr', @@ -928,7 +937,7 @@ 'area' => 'language', 'editedon' => null, ], '', true, true); -$settings['manager_login_url_alternate']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_login_url_alternate'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_login_url_alternate']->fromArray([ 'key' => 'manager_login_url_alternate', 'value' => '', @@ -937,7 +946,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['manager_tooltip_enable']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_tooltip_enable'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_tooltip_enable']->fromArray([ 'namespace' => 'core', 'key' => 'manager_tooltip_enable', @@ -946,7 +955,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_tooltip_delay']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_tooltip_delay'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_tooltip_delay']->fromArray([ 'key' => 'manager_tooltip_delay', 'value' => 2300, @@ -955,7 +964,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['login_background_image']= $xpdo->newObject(modSystemSetting::class); +$settings['login_background_image'] = $xpdo->newObject(modSystemSetting::class); $settings['login_background_image']->fromArray([ 'key' => 'login_background_image', 'value' => '', @@ -964,7 +973,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['login_logo']= $xpdo->newObject(modSystemSetting::class); +$settings['login_logo'] = $xpdo->newObject(modSystemSetting::class); $settings['login_logo']->fromArray([ 'key' => 'login_logo', 'value' => '', @@ -973,7 +982,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['login_help_button']= $xpdo->newObject(modSystemSetting::class); +$settings['login_help_button'] = $xpdo->newObject(modSystemSetting::class); $settings['login_help_button']->fromArray([ 'key' => 'login_help_button', 'value' => '', @@ -982,7 +991,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['manager_theme']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_theme'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_theme']->fromArray([ 'key' => 'manager_theme', 'value' => 'default', @@ -991,7 +1000,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_logo']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_logo'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_logo']->fromArray([ 'key' => 'manager_logo', 'value' => '', @@ -1000,7 +1009,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['manager_week_start']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_week_start'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_week_start']->fromArray([ 'key' => 'manager_week_start', 'value' => 0, @@ -1009,7 +1018,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['modx_browser_tree_hide_files']= $xpdo->newObject(modSystemSetting::class); +$settings['modx_browser_tree_hide_files'] = $xpdo->newObject(modSystemSetting::class); $settings['modx_browser_tree_hide_files']->fromArray([ 'key' => 'modx_browser_tree_hide_files', 'value' => true, @@ -1018,7 +1027,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['modx_browser_tree_hide_tooltips']= $xpdo->newObject(modSystemSetting::class); +$settings['modx_browser_tree_hide_tooltips'] = $xpdo->newObject(modSystemSetting::class); $settings['modx_browser_tree_hide_tooltips']->fromArray([ 'key' => 'modx_browser_tree_hide_tooltips', 'value' => true, @@ -1027,7 +1036,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['modx_browser_default_sort']= $xpdo->newObject(modSystemSetting::class); +$settings['modx_browser_default_sort'] = $xpdo->newObject(modSystemSetting::class); $settings['modx_browser_default_sort']->fromArray([ 'key' => 'modx_browser_default_sort', 'value' => 'name', @@ -1036,7 +1045,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['modx_browser_default_viewmode']= $xpdo->newObject(modSystemSetting::class); +$settings['modx_browser_default_viewmode'] = $xpdo->newObject(modSystemSetting::class); $settings['modx_browser_default_viewmode']->fromArray([ 'key' => 'modx_browser_default_viewmode', 'value' => 'grid', @@ -1045,7 +1054,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['modx_charset']= $xpdo->newObject(modSystemSetting::class); +$settings['modx_charset'] = $xpdo->newObject(modSystemSetting::class); $settings['modx_charset']->fromArray([ 'key' => 'modx_charset', 'value' => 'UTF-8', @@ -1054,16 +1063,16 @@ 'area' => 'language', 'editedon' => null, ], '', true, true); -$settings['principal_targets']= $xpdo->newObject(modSystemSetting::class); +$settings['principal_targets'] = $xpdo->newObject(modSystemSetting::class); $settings['principal_targets']->fromArray([ 'key' => 'principal_targets', - 'value' => 'modAccessContext,modAccessResourceGroup,modAccessCategory,sources.modAccessMediaSource,modAccessNamespace', + 'value' => 'MODX\\Revolution\\modAccessContext,MODX\\Revolution\\modAccessResourceGroup,MODX\\Revolution\\modAccessCategory,MODX\\Revolution\\Sources\\modAccessMediaSource,MODX\\Revolution\\modAccessNamespace', 'xtype' => 'textfield', 'namespace' => 'core', 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['proxy_auth_type']= $xpdo->newObject(modSystemSetting::class); +$settings['proxy_auth_type'] = $xpdo->newObject(modSystemSetting::class); $settings['proxy_auth_type']->fromArray([ 'key' => 'proxy_auth_type', 'value' => 'BASIC', @@ -1072,7 +1081,7 @@ 'area' => 'proxy', 'editedon' => null, ], '', true, true); -$settings['proxy_host']= $xpdo->newObject(modSystemSetting::class); +$settings['proxy_host'] = $xpdo->newObject(modSystemSetting::class); $settings['proxy_host']->fromArray([ 'key' => 'proxy_host', 'value' => '', @@ -1081,7 +1090,7 @@ 'area' => 'proxy', 'editedon' => null, ], '', true, true); -$settings['proxy_password']= $xpdo->newObject(modSystemSetting::class); +$settings['proxy_password'] = $xpdo->newObject(modSystemSetting::class); $settings['proxy_password']->fromArray([ 'key' => 'proxy_password', 'value' => '', @@ -1090,7 +1099,7 @@ 'area' => 'proxy', 'editedon' => null, ], '', true, true); -$settings['proxy_port']= $xpdo->newObject(modSystemSetting::class); +$settings['proxy_port'] = $xpdo->newObject(modSystemSetting::class); $settings['proxy_port']->fromArray([ 'key' => 'proxy_port', 'value' => '', @@ -1099,7 +1108,7 @@ 'area' => 'proxy', 'editedon' => null, ], '', true, true); -$settings['proxy_username']= $xpdo->newObject(modSystemSetting::class); +$settings['proxy_username'] = $xpdo->newObject(modSystemSetting::class); $settings['proxy_username']->fromArray([ 'key' => 'proxy_username', 'value' => '', @@ -1108,7 +1117,7 @@ 'area' => 'proxy', 'editedon' => null, ], '', true, true); -$settings['password_generated_length']= $xpdo->newObject(modSystemSetting::class); +$settings['password_generated_length'] = $xpdo->newObject(modSystemSetting::class); $settings['password_generated_length']->fromArray([ 'key' => 'password_generated_length', 'value' => 10, @@ -1117,7 +1126,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['password_min_length']= $xpdo->newObject(modSystemSetting::class); +$settings['password_min_length'] = $xpdo->newObject(modSystemSetting::class); $settings['password_min_length']->fromArray([ 'key' => 'password_min_length', 'value' => 8, @@ -1127,7 +1136,7 @@ 'editedon' => null, ], '', true, true); -$settings['phpthumb_allow_src_above_docroot']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_allow_src_above_docroot'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_allow_src_above_docroot']->fromArray([ 'key' => 'phpthumb_allow_src_above_docroot', 'value' => false, @@ -1136,7 +1145,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_cache_maxage']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_cache_maxage'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_cache_maxage']->fromArray([ 'key' => 'phpthumb_cache_maxage', 'value' => 30, // 30 days @@ -1145,7 +1154,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_cache_maxsize']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_cache_maxsize'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_cache_maxsize']->fromArray([ 'key' => 'phpthumb_cache_maxsize', 'value' => 100, // 100MB @@ -1154,7 +1163,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_cache_maxfiles']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_cache_maxfiles'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_cache_maxfiles']->fromArray([ 'key' => 'phpthumb_cache_maxfiles', 'value' => 10000, // 10k files @@ -1163,7 +1172,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_cache_source_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_cache_source_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_cache_source_enabled']->fromArray([ 'key' => 'phpthumb_cache_source_enabled', 'value' => false, @@ -1172,7 +1181,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_document_root']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_document_root'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_document_root']->fromArray([ 'key' => 'phpthumb_document_root', 'value' => '', @@ -1181,7 +1190,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_error_bgcolor']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_error_bgcolor'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_error_bgcolor']->fromArray([ 'key' => 'phpthumb_error_bgcolor', 'value' => 'CCCCFF', @@ -1190,7 +1199,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_error_textcolor']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_error_textcolor'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_error_textcolor']->fromArray([ 'key' => 'phpthumb_error_textcolor', 'value' => 'FF0000', @@ -1199,7 +1208,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_error_fontsize']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_error_fontsize'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_error_fontsize']->fromArray([ 'key' => 'phpthumb_error_fontsize', 'value' => 1, @@ -1208,7 +1217,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_far']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_far'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_far']->fromArray([ 'key' => 'phpthumb_far', 'value' => 'C', @@ -1217,7 +1226,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_imagemagick_path']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_imagemagick_path'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_imagemagick_path']->fromArray([ 'key' => 'phpthumb_imagemagick_path', 'value' => '', @@ -1226,7 +1235,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nohotlink_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nohotlink_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nohotlink_enabled']->fromArray([ 'key' => 'phpthumb_nohotlink_enabled', 'value' => true, @@ -1235,7 +1244,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nohotlink_erase_image']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nohotlink_erase_image'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nohotlink_erase_image']->fromArray([ 'key' => 'phpthumb_nohotlink_erase_image', 'value' => true, @@ -1244,7 +1253,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nohotlink_valid_domains']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nohotlink_valid_domains'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nohotlink_valid_domains']->fromArray([ 'key' => 'phpthumb_nohotlink_valid_domains', 'value' => '{http_host}', @@ -1253,7 +1262,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nohotlink_text_message']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nohotlink_text_message'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nohotlink_text_message']->fromArray([ 'key' => 'phpthumb_nohotlink_text_message', 'value' => 'Off-server thumbnailing is not allowed', @@ -1262,7 +1271,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_enabled']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_enabled'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_enabled']->fromArray([ 'key' => 'phpthumb_nooffsitelink_enabled', 'value' => false, @@ -1271,7 +1280,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_erase_image']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_erase_image'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_erase_image']->fromArray([ 'key' => 'phpthumb_nooffsitelink_erase_image', 'value' => true, @@ -1280,7 +1289,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_require_refer']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_require_refer'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_require_refer']->fromArray([ 'key' => 'phpthumb_nooffsitelink_require_refer', 'value' => false, @@ -1289,7 +1298,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_text_message']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_text_message'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_text_message']->fromArray([ 'key' => 'phpthumb_nooffsitelink_text_message', 'value' => 'Off-server linking is not allowed', @@ -1298,7 +1307,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_valid_domains']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_valid_domains'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_valid_domains']->fromArray([ 'key' => 'phpthumb_nooffsitelink_valid_domains', 'value' => '{http_host}', @@ -1307,7 +1316,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_nooffsitelink_watermark_src']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_nooffsitelink_watermark_src'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_nooffsitelink_watermark_src']->fromArray([ 'key' => 'phpthumb_nooffsitelink_watermark_src', 'value' => '', @@ -1316,7 +1325,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['phpthumb_zoomcrop']= $xpdo->newObject(modSystemSetting::class); +$settings['phpthumb_zoomcrop'] = $xpdo->newObject(modSystemSetting::class); $settings['phpthumb_zoomcrop']->fromArray([ 'key' => 'phpthumb_zoomcrop', 'value' => '0', @@ -1325,7 +1334,7 @@ 'area' => 'phpthumb', 'editedon' => null, ], '', true, true); -$settings['publish_default']= $xpdo->newObject(modSystemSetting::class); +$settings['publish_default'] = $xpdo->newObject(modSystemSetting::class); $settings['publish_default']->fromArray([ 'key' => 'publish_default', 'value' => false, @@ -1334,7 +1343,25 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['request_controller']= $xpdo->newObject(modSystemSetting::class); +$settings['quick_search_in_content'] = $xpdo->newObject(modSystemSetting::class); +$settings['quick_search_in_content']->fromArray([ + 'key' => 'quick_search_in_content', + 'value' => true, + 'xtype' => 'combo-boolean', + 'namespace' => 'core', + 'area' => 'manager', + 'editedon' => null, +], '', true, true); +$settings['quick_search_result_max'] = $xpdo->newObject(modSystemSetting::class); +$settings['quick_search_result_max']->fromArray([ + 'key' => 'quick_search_result_max', + 'value' => 10, + 'xtype' => 'numberfield', + 'namespace' => 'core', + 'area' => 'manager', + 'editedon' => null, +], '', true, true); +$settings['request_controller'] = $xpdo->newObject(modSystemSetting::class); $settings['request_controller']->fromArray([ 'key' => 'request_controller', 'value' => 'index.php', @@ -1343,7 +1370,7 @@ 'area' => 'gateway', 'editedon' => null, ], '', true, true); -$settings['request_method_strict']= $xpdo->newObject(modSystemSetting::class); +$settings['request_method_strict'] = $xpdo->newObject(modSystemSetting::class); $settings['request_method_strict']->fromArray([ 'key' => 'request_method_strict', 'value' => false, @@ -1352,7 +1379,7 @@ 'area' => 'gateway', 'editedon' => null, ], '', true, true); -$settings['request_param_alias']= $xpdo->newObject(modSystemSetting::class); +$settings['request_param_alias'] = $xpdo->newObject(modSystemSetting::class); $settings['request_param_alias']->fromArray([ 'key' => 'request_param_alias', 'value' => 'q', @@ -1361,7 +1388,7 @@ 'area' => 'gateway', 'editedon' => null, ], '', true, true); -$settings['request_param_id']= $xpdo->newObject(modSystemSetting::class); +$settings['request_param_id'] = $xpdo->newObject(modSystemSetting::class); $settings['request_param_id']->fromArray([ 'key' => 'request_param_id', 'value' => 'id', @@ -1370,7 +1397,7 @@ 'area' => 'gateway', 'editedon' => null, ], '', true, true); -$settings['resource_tree_node_name']= $xpdo->newObject(modSystemSetting::class); +$settings['resource_tree_node_name'] = $xpdo->newObject(modSystemSetting::class); $settings['resource_tree_node_name']->fromArray([ 'key' => 'resource_tree_node_name', 'value' => 'pagetitle', @@ -1379,7 +1406,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['resource_tree_node_name_fallback']= $xpdo->newObject(modSystemSetting::class); +$settings['resource_tree_node_name_fallback'] = $xpdo->newObject(modSystemSetting::class); $settings['resource_tree_node_name_fallback']->fromArray([ 'key' => 'resource_tree_node_name_fallback', 'value' => 'alias', @@ -1388,7 +1415,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['resource_tree_node_tooltip']= $xpdo->newObject(modSystemSetting::class); +$settings['resource_tree_node_tooltip'] = $xpdo->newObject(modSystemSetting::class); $settings['resource_tree_node_tooltip']->fromArray([ 'key' => 'resource_tree_node_tooltip', 'value' => '', @@ -1397,7 +1424,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['richtext_default']= $xpdo->newObject(modSystemSetting::class); +$settings['richtext_default'] = $xpdo->newObject(modSystemSetting::class); $settings['richtext_default']->fromArray([ 'key' => 'richtext_default', 'value' => true, @@ -1406,7 +1433,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['search_default']= $xpdo->newObject(modSystemSetting::class); +$settings['search_default'] = $xpdo->newObject(modSystemSetting::class); $settings['search_default']->fromArray([ 'key' => 'search_default', 'value' => true, @@ -1415,7 +1442,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['server_offset_time']= $xpdo->newObject(modSystemSetting::class); +$settings['server_offset_time'] = $xpdo->newObject(modSystemSetting::class); $settings['server_offset_time']->fromArray([ 'key' => 'server_offset_time', 'value' => 0, @@ -1424,7 +1451,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['session_cookie_domain']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_domain'] = $xpdo->newObject(modSystemSetting::class); $settings['session_cookie_domain']->fromArray([ 'key' => 'session_cookie_domain', 'value' => '', @@ -1433,7 +1460,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['default_username']= $xpdo->newObject(modSystemSetting::class); +$settings['default_username'] = $xpdo->newObject(modSystemSetting::class); $settings['default_username']->fromArray([ 'key' => 'default_username', 'value' => '(anonymous)', @@ -1442,7 +1469,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['anonymous_sessions']= $xpdo->newObject(modSystemSetting::class); +$settings['anonymous_sessions'] = $xpdo->newObject(modSystemSetting::class); $settings['anonymous_sessions']->fromArray([ 'key' => 'anonymous_sessions', 'value' => true, @@ -1451,7 +1478,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_cookie_lifetime']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_lifetime'] = $xpdo->newObject(modSystemSetting::class); $settings['session_cookie_lifetime']->fromArray([ 'key' => 'session_cookie_lifetime', 'value' => 604800, @@ -1460,7 +1487,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_cookie_path']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_path'] = $xpdo->newObject(modSystemSetting::class); $settings['session_cookie_path']->fromArray([ 'key' => 'session_cookie_path', 'value' => '', @@ -1469,7 +1496,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_cookie_secure']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_secure'] = $xpdo->newObject(modSystemSetting::class); $settings['session_cookie_secure']->fromArray([ 'key' => 'session_cookie_secure', 'value' => false, @@ -1478,7 +1505,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_cookie_httponly']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_httponly'] = $xpdo->newObject(modSystemSetting::class); $settings['session_cookie_httponly']->fromArray([ 'key' => 'session_cookie_httponly', 'value' => true, @@ -1487,7 +1514,18 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_gc_maxlifetime']= $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_samesite'] = $xpdo->newObject(modSystemSetting::class); +$settings['session_cookie_samesite']->fromArray(array ( + 'key' => 'session_cookie_samesite', + 'name' => 'setting_session_cookie_samesite', + 'description' => 'setting_session_cookie_samesite_desc', + 'value' => '', + 'xtype' => 'textfield', + 'namespace' => 'core', + 'area' => 'session', + 'editedon' => null, +), '', true, true); +$settings['session_gc_maxlifetime'] = $xpdo->newObject(modSystemSetting::class); $settings['session_gc_maxlifetime']->fromArray([ 'key' => 'session_gc_maxlifetime', 'value' => '604800', @@ -1496,7 +1534,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_handler_class']= $xpdo->newObject(modSystemSetting::class); +$settings['session_handler_class'] = $xpdo->newObject(modSystemSetting::class); $settings['session_handler_class']->fromArray([ 'key' => 'session_handler_class', 'value' => modSessionHandler::class, @@ -1505,7 +1543,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['session_name']= $xpdo->newObject(modSystemSetting::class); +$settings['session_name'] = $xpdo->newObject(modSystemSetting::class); $settings['session_name']->fromArray([ 'key' => 'session_name', 'value' => '', @@ -1514,7 +1552,7 @@ 'area' => 'session', 'editedon' => null, ], '', true, true); -$settings['set_header']= $xpdo->newObject(modSystemSetting::class); +$settings['set_header'] = $xpdo->newObject(modSystemSetting::class); $settings['set_header']->fromArray([ 'key' => 'set_header', 'value' => true, @@ -1523,7 +1561,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['send_poweredby_header']= $xpdo->newObject(modSystemSetting::class); +$settings['send_poweredby_header'] = $xpdo->newObject(modSystemSetting::class); $settings['send_poweredby_header']->fromArray([ 'key' => 'send_poweredby_header', 'value' => false, @@ -1532,7 +1570,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['show_tv_categories_header']= $xpdo->newObject(modSystemSetting::class); +$settings['show_tv_categories_header'] = $xpdo->newObject(modSystemSetting::class); $settings['show_tv_categories_header']->fromArray([ 'key' => 'show_tv_categories_header', 'value' => true, @@ -1541,7 +1579,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['site_name']= $xpdo->newObject(modSystemSetting::class); +$settings['site_name'] = $xpdo->newObject(modSystemSetting::class); $settings['site_name']->fromArray([ 'key' => 'site_name', 'value' => 'MODX Revolution', @@ -1550,7 +1588,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['site_start']= $xpdo->newObject(modSystemSetting::class); +$settings['site_start'] = $xpdo->newObject(modSystemSetting::class); $settings['site_start']->fromArray([ 'key' => 'site_start', 'value' => 1, @@ -1559,7 +1597,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['site_status']= $xpdo->newObject(modSystemSetting::class); +$settings['site_status'] = $xpdo->newObject(modSystemSetting::class); $settings['site_status']->fromArray([ 'key' => 'site_status', 'value' => true, @@ -1568,16 +1606,16 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['site_unavailable_message']= $xpdo->newObject(modSystemSetting::class); +$settings['site_unavailable_message'] = $xpdo->newObject(modSystemSetting::class); $settings['site_unavailable_message']->fromArray([ 'key' => 'site_unavailable_message', - 'value' => 'The site is currently unavailable', + 'value' => '[[%site_unavailable_message]]', 'xtype' => 'textfield', 'namespace' => 'core', 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['site_unavailable_page']= $xpdo->newObject(modSystemSetting::class); +$settings['site_unavailable_page'] = $xpdo->newObject(modSystemSetting::class); $settings['site_unavailable_page']->fromArray([ 'key' => 'site_unavailable_page', 'value' => 0, @@ -1586,7 +1624,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['static_elements_automate_templates']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_automate_templates'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_automate_templates']->fromArray([ 'key' => 'static_elements_automate_templates', 'value' => false, @@ -1595,7 +1633,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_automate_tvs']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_automate_tvs'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_automate_tvs']->fromArray([ 'key' => 'static_elements_automate_tvs', 'value' => false, @@ -1604,7 +1642,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_automate_chunks']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_automate_chunks'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_automate_chunks']->fromArray([ 'key' => 'static_elements_automate_chunks', 'value' => false, @@ -1613,7 +1651,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_automate_snippets']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_automate_snippets'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_automate_snippets']->fromArray([ 'key' => 'static_elements_automate_snippets', 'value' => false, @@ -1622,7 +1660,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_automate_plugins']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_automate_plugins'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_automate_plugins']->fromArray([ 'key' => 'static_elements_automate_plugins', 'value' => false, @@ -1631,7 +1669,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_default_mediasource']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_default_mediasource'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_default_mediasource']->fromArray([ 'key' => 'static_elements_default_mediasource', 'value' => 0, @@ -1640,7 +1678,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_default_category']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_default_category'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_default_category']->fromArray([ 'key' => 'static_elements_default_category', 'value' => 0, @@ -1649,7 +1687,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['static_elements_basepath']= $xpdo->newObject(modSystemSetting::class); +$settings['static_elements_basepath'] = $xpdo->newObject(modSystemSetting::class); $settings['static_elements_basepath']->fromArray([ 'key' => 'static_elements_basepath', 'value' => '', @@ -1658,7 +1696,7 @@ 'area' => 'static_elements', 'editedon' => null, ], '', true, true); -$settings['symlink_merge_fields']= $xpdo->newObject(modSystemSetting::class); +$settings['symlink_merge_fields'] = $xpdo->newObject(modSystemSetting::class); $settings['symlink_merge_fields']->fromArray([ 'key' => 'symlink_merge_fields', 'value' => true, @@ -1667,7 +1705,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['syncsite_default']= $xpdo->newObject(modSystemSetting::class); +$settings['syncsite_default'] = $xpdo->newObject(modSystemSetting::class); $settings['syncsite_default']->fromArray([ 'key' => 'syncsite_default', 'value' => true, @@ -1676,7 +1714,7 @@ 'area' => 'caching', 'editedon' => null, ], '', true, true); -$settings['topmenu_show_descriptions']= $xpdo->newObject(modSystemSetting::class); +$settings['topmenu_show_descriptions'] = $xpdo->newObject(modSystemSetting::class); $settings['topmenu_show_descriptions']->fromArray([ 'key' => 'topmenu_show_descriptions', 'value' => true, @@ -1685,7 +1723,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['tree_default_sort']= $xpdo->newObject(modSystemSetting::class); +$settings['tree_default_sort'] = $xpdo->newObject(modSystemSetting::class); $settings['tree_default_sort']->fromArray([ 'key' => 'tree_default_sort', 'value' => 'menuindex', @@ -1694,7 +1732,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['tree_root_id']= $xpdo->newObject(modSystemSetting::class); +$settings['tree_root_id'] = $xpdo->newObject(modSystemSetting::class); $settings['tree_root_id']->fromArray([ 'key' => 'tree_root_id', 'value' => 0, @@ -1703,7 +1741,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['tvs_below_content']= $xpdo->newObject(modSystemSetting::class); +$settings['tvs_below_content'] = $xpdo->newObject(modSystemSetting::class); $settings['tvs_below_content']->fromArray([ 'key' => 'tvs_below_content', 'value' => false, @@ -1712,7 +1750,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['unauthorized_page']= $xpdo->newObject(modSystemSetting::class); +$settings['unauthorized_page'] = $xpdo->newObject(modSystemSetting::class); $settings['unauthorized_page']->fromArray([ 'key' => 'unauthorized_page', 'value' => 1, @@ -1721,7 +1759,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['upload_files']= $xpdo->newObject(modSystemSetting::class); +$settings['upload_files'] = $xpdo->newObject(modSystemSetting::class); $settings['upload_files']->fromArray([ 'key' => 'upload_files', 'value' => 'txt,html,htm,xml,js,js.map,css,scss,less,css.map,zip,gz,rar,z,tgz,tar,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,tiff,svg,svgz,gif,psd,ico,bmp,webp,odt,ods,odp,odb,odg,odf,md,ttf,woff,woff2,eot', @@ -1730,7 +1768,16 @@ 'area' => 'file', 'editedon' => null, ], '', true, true); -$settings['upload_images']= $xpdo->newObject(modSystemSetting::class); +$settings['upload_file_exists'] = $xpdo->newObject(modSystemSetting::class); +$settings['upload_file_exists']->fromArray([ + 'key' => 'upload_file_exists', + 'value' => true, + 'xtype' => 'combo-boolean', + 'namespace' => 'core', + 'area' => 'file', + 'editedon' => null, +], '', true, true); +$settings['upload_images'] = $xpdo->newObject(modSystemSetting::class); $settings['upload_images']->fromArray([ 'key' => 'upload_images', 'value' => 'jpg,jpeg,png,gif,psd,ico,bmp,tiff,svg,svgz,webp', @@ -1739,7 +1786,7 @@ 'area' => 'file', 'editedon' => null, ], '', true, true); -$settings['upload_maxsize']= $xpdo->newObject(modSystemSetting::class); +$settings['upload_maxsize'] = $xpdo->newObject(modSystemSetting::class); $settings['upload_maxsize']->fromArray([ 'key' => 'upload_maxsize', 'value' => 1048576, @@ -1748,7 +1795,7 @@ 'area' => 'file', 'editedon' => null, ], '', true, true); -$settings['upload_media']= $xpdo->newObject(modSystemSetting::class); +$settings['upload_media'] = $xpdo->newObject(modSystemSetting::class); $settings['upload_media']->fromArray([ 'key' => 'upload_media', 'value' => 'mp3,wav,au,wmv,avi,mpg,mpeg', @@ -1757,7 +1804,16 @@ 'area' => 'file', 'editedon' => null, ], '', true, true); -$settings['use_alias_path']= $xpdo->newObject(modSystemSetting::class); +$settings['upload_translit'] = $xpdo->newObject(modSystemSetting::class); +$settings['upload_translit']->fromArray([ + 'key' => 'upload_translit', + 'value' => true, + 'xtype' => 'combo-boolean', + 'namespace' => 'core', + 'area' => 'file', + 'editedon' => null, +], '', true, true); +$settings['use_alias_path'] = $xpdo->newObject(modSystemSetting::class); $settings['use_alias_path']->fromArray([ 'key' => 'use_alias_path', 'value' => false, @@ -1766,7 +1822,7 @@ 'area' => 'furls', 'editedon' => null, ], '', true, true); -$settings['use_editor']= $xpdo->newObject(modSystemSetting::class); +$settings['use_editor'] = $xpdo->newObject(modSystemSetting::class); $settings['use_editor']->fromArray([ 'key' => 'use_editor', 'value' => true, @@ -1775,7 +1831,7 @@ 'area' => 'editor', 'editedon' => null, ], '', true, true); -$settings['use_multibyte']= $xpdo->newObject(modSystemSetting::class); +$settings['use_multibyte'] = $xpdo->newObject(modSystemSetting::class); $settings['use_multibyte']->fromArray([ 'key' => 'use_multibyte', 'value' => false, @@ -1784,7 +1840,7 @@ 'area' => 'language', 'editedon' => null, ], '', true, true); -$settings['use_weblink_target']= $xpdo->newObject(modSystemSetting::class); +$settings['use_weblink_target'] = $xpdo->newObject(modSystemSetting::class); $settings['use_weblink_target']->fromArray([ 'key' => 'use_weblink_target', 'value' => false, @@ -1793,7 +1849,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['welcome_screen']= $xpdo->newObject(modSystemSetting::class); +$settings['welcome_screen'] = $xpdo->newObject(modSystemSetting::class); $settings['welcome_screen']->fromArray([ 'key' => 'welcome_screen', 'value' => true, @@ -1802,16 +1858,16 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['welcome_screen_url']= $xpdo->newObject(modSystemSetting::class); +$settings['welcome_screen_url'] = $xpdo->newObject(modSystemSetting::class); $settings['welcome_screen_url']->fromArray([ 'key' => 'welcome_screen_url', - 'value' => '//misc.modx.com/revolution/welcome.27.html ', + 'value' => '//misc.modx.com/revolution/welcome.30.html ', 'xtype' => 'textfield', 'namespace' => 'core', 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['welcome_action']= $xpdo->newObject(modSystemSetting::class); +$settings['welcome_action'] = $xpdo->newObject(modSystemSetting::class); $settings['welcome_action']->fromArray([ 'key' => 'welcome_action', 'value' => 'welcome', @@ -1820,7 +1876,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['welcome_namespace']= $xpdo->newObject(modSystemSetting::class); +$settings['welcome_namespace'] = $xpdo->newObject(modSystemSetting::class); $settings['welcome_namespace']->fromArray([ 'key' => 'welcome_namespace', 'value' => 'core', @@ -1829,7 +1885,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['which_editor']= $xpdo->newObject(modSystemSetting::class); +$settings['which_editor'] = $xpdo->newObject(modSystemSetting::class); $settings['which_editor']->fromArray([ 'key' => 'which_editor', 'value' => '', @@ -1838,7 +1894,7 @@ 'area' => 'editor', 'editedon' => null, ], '', true, true); -$settings['which_element_editor']= $xpdo->newObject(modSystemSetting::class); +$settings['which_element_editor'] = $xpdo->newObject(modSystemSetting::class); $settings['which_element_editor']->fromArray([ 'key' => 'which_element_editor', 'value' => '', @@ -1847,7 +1903,7 @@ 'area' => 'editor', 'editedon' => null, ], '', true, true); -$settings['xhtml_urls']= $xpdo->newObject(modSystemSetting::class); +$settings['xhtml_urls'] = $xpdo->newObject(modSystemSetting::class); $settings['xhtml_urls']->fromArray([ 'key' => 'xhtml_urls', 'value' => true, @@ -1856,7 +1912,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['enable_gravatar']= $xpdo->newObject(modSystemSetting::class); +$settings['enable_gravatar'] = $xpdo->newObject(modSystemSetting::class); $settings['enable_gravatar']->fromArray([ 'key' => 'enable_gravatar', 'value' => false, @@ -1865,7 +1921,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['mgr_tree_icon_context']= $xpdo->newObject(modSystemSetting::class); +$settings['mgr_tree_icon_context'] = $xpdo->newObject(modSystemSetting::class); $settings['mgr_tree_icon_context']->fromArray([ 'key' => 'mgr_tree_icon_context', 'value' => 'tree-context', @@ -1874,7 +1930,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['mgr_source_icon']= $xpdo->newObject(modSystemSetting::class); +$settings['mgr_source_icon'] = $xpdo->newObject(modSystemSetting::class); $settings['mgr_source_icon']->fromArray([ 'key' => 'mgr_source_icon', 'value' => 'icon-folder-open-o', @@ -1883,7 +1939,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['main_nav_parent']= $xpdo->newObject(modSystemSetting::class); +$settings['main_nav_parent'] = $xpdo->newObject(modSystemSetting::class); $settings['main_nav_parent']->fromArray([ 'key' => 'main_nav_parent', 'value' => 'topnav', @@ -1892,7 +1948,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['user_nav_parent']= $xpdo->newObject(modSystemSetting::class); +$settings['user_nav_parent'] = $xpdo->newObject(modSystemSetting::class); $settings['user_nav_parent']->fromArray([ 'key' => 'user_nav_parent', 'value' => 'usernav', @@ -1901,7 +1957,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['auto_isfolder']= $xpdo->newObject(modSystemSetting::class); +$settings['auto_isfolder'] = $xpdo->newObject(modSystemSetting::class); $settings['auto_isfolder']->fromArray([ 'key' => 'auto_isfolder', 'value' => true, @@ -1910,7 +1966,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['manager_use_fullname']= $xpdo->newObject(modSystemSetting::class); +$settings['manager_use_fullname'] = $xpdo->newObject(modSystemSetting::class); $settings['manager_use_fullname']->fromArray([ 'key' => 'manager_use_fullname', 'value' => false, @@ -1919,7 +1975,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['parser_recurse_uncacheable']= $xpdo->newObject(modSystemSetting::class); +$settings['parser_recurse_uncacheable'] = $xpdo->newObject(modSystemSetting::class); $settings['parser_recurse_uncacheable']->fromArray([ 'key' => 'parser_recurse_uncacheable', 'value' => true, @@ -1928,7 +1984,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['preserve_menuindex']= $xpdo->newObject(modSystemSetting::class); +$settings['preserve_menuindex'] = $xpdo->newObject(modSystemSetting::class); $settings['preserve_menuindex']->fromArray([ 'key' => 'preserve_menuindex', 'value' => false, @@ -1937,7 +1993,7 @@ 'area' => 'manager', 'editedon' => null, ], '', true, true); -$settings['log_snippet_not_found']= $xpdo->newObject(modSystemSetting::class); +$settings['log_snippet_not_found'] = $xpdo->newObject(modSystemSetting::class); $settings['log_snippet_not_found']->fromArray([ 'key' => 'log_snippet_not_found', 'value' => true, @@ -1946,7 +2002,7 @@ 'area' => 'site', 'editedon' => null, ], '', true, true); -$settings['error_log_filename']= $xpdo->newObject(modSystemSetting::class); +$settings['error_log_filename'] = $xpdo->newObject(modSystemSetting::class); $settings['error_log_filename']->fromArray([ 'key' => 'error_log_filename', 'value' => 'error.log', @@ -1955,7 +2011,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['error_log_filepath']= $xpdo->newObject(modSystemSetting::class); +$settings['error_log_filepath'] = $xpdo->newObject(modSystemSetting::class); $settings['error_log_filepath']->fromArray([ 'key' => 'error_log_filepath', 'value' => '', @@ -1964,7 +2020,7 @@ 'area' => 'system', 'editedon' => null, ], '', true, true); -$settings['passwordless_activated']= $xpdo->newObject(modSystemSetting::class); +$settings['passwordless_activated'] = $xpdo->newObject(modSystemSetting::class); $settings['passwordless_activated']->fromArray([ 'key' => 'passwordless_activated', 'value' => true, @@ -1973,7 +2029,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['passwordless_expiration']= $xpdo->newObject(modSystemSetting::class); +$settings['passwordless_expiration'] = $xpdo->newObject(modSystemSetting::class); $settings['passwordless_expiration']->fromArray([ 'key' => 'passwordless_expiration', 'value' => '3600', @@ -1982,7 +2038,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['passwordless_activated']= $xpdo->newObject(modSystemSetting::class); +$settings['passwordless_activated'] = $xpdo->newObject(modSystemSetting::class); $settings['passwordless_activated']->fromArray([ 'key' => 'passwordless_activated', 'value' => false, @@ -1991,7 +2047,7 @@ 'area' => 'authentication', 'editedon' => null, ], '', true, true); -$settings['passwordless_expiration']= $xpdo->newObject(modSystemSetting::class); +$settings['passwordless_expiration'] = $xpdo->newObject(modSystemSetting::class); $settings['passwordless_expiration']->fromArray([ 'key' => 'passwordless_expiration', 'value' => '3600', diff --git a/_build/docs/themes/modx/chrome.xsl b/_build/docs/themes/modx/chrome.xsl index c207be0cb97..befa4bce312 100644 --- a/_build/docs/themes/modx/chrome.xsl +++ b/_build/docs/themes/modx/chrome.xsl @@ -30,11 +30,11 @@ - - - - - + + + + + @@ -44,4 +44,4 @@ - \ No newline at end of file + diff --git a/_build/docs/themes/modx/frames_table.xsl b/_build/docs/themes/modx/frames_table.xsl index e503e0e4b54..d2e094d13e2 100644 --- a/_build/docs/themes/modx/frames_table.xsl +++ b/_build/docs/themes/modx/frames_table.xsl @@ -13,8 +13,8 @@ - - + + @@ -37,7 +37,7 @@ ', tre = ''+tbe; - + function doInsert(el, o, returnElement, pos, sibling, append){ var newNode = pub.insertHtml(pos, Ext.getDom(el), createHtml(o)); return returnElement ? Ext.get(newNode, true) : newNode; } - + function createHtml(o){ var b = '', attr, @@ -397,7 +397,7 @@ Ext.DomHelper = function(){ } } }; - + if (emptyTags.test(o.tag)) { b += '/>'; } else { @@ -434,7 +434,7 @@ Ext.DomHelper = function(){ return el; } - + function insertIntoTable(tag, where, el, html) { var node, before; @@ -465,31 +465,31 @@ Ext.DomHelper = function(){ return node; } - + function createContextualFragment(html){ var div = document.createElement("div"), fragment = document.createDocumentFragment(), i = 0, length, childNodes; - + div.innerHTML = html; childNodes = div.childNodes; length = childNodes.length; - + for (; i < length; i++) { fragment.appendChild(childNodes[i].cloneNode(true)); } - + return fragment; } - + pub = { - + markup : function(o){ return createHtml(o); }, - + applyStyles : function(el, styles){ if (styles) { var matches; @@ -499,7 +499,7 @@ Ext.DomHelper = function(){ styles = styles.call(); } if (typeof styles == "string") { - + cssRe.lastIndex = 0; while ((matches = cssRe.exec(styles))) { el.setStyle(matches[1], matches[2]); @@ -509,7 +509,7 @@ Ext.DomHelper = function(){ } } }, - + insertHtml : function(where, el, html){ var hash = {}, hashVal, @@ -520,7 +520,7 @@ Ext.DomHelper = function(){ rs; where = where.toLowerCase(); - + hash[beforebegin] = ['BeforeBegin', 'previousSibling']; hash[afterend] = ['AfterEnd', 'nextSibling']; @@ -528,7 +528,7 @@ Ext.DomHelper = function(){ if(tableRe.test(el.tagName) && (rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html))){ return rs; } - + hash[afterbegin] = ['AfterBegin', 'firstChild']; hash[beforeend] = ['BeforeEnd', 'lastChild']; if ((hashVal = hash[where])) { @@ -572,27 +572,27 @@ Ext.DomHelper = function(){ throw 'Illegal insertion point -> "' + where + '"'; }, - + insertBefore : function(el, o, returnElement){ return doInsert(el, o, returnElement, beforebegin); }, - + insertAfter : function(el, o, returnElement){ return doInsert(el, o, returnElement, afterend, 'nextSibling'); }, - + insertFirst : function(el, o, returnElement){ return doInsert(el, o, returnElement, afterbegin, 'firstChild'); }, - + append : function(el, o, returnElement){ return doInsert(el, o, returnElement, beforeend, '', true); }, - + overwrite : function(el, o, returnElement){ el = Ext.getDom(el); el.innerHTML = createHtml(o); @@ -624,19 +624,19 @@ Ext.Template = function(html){ html = buf.join(''); } - + me.html = html; - + if (me.compiled) { me.compile(); } }; Ext.Template.prototype = { - + re : /\{([\w\-]+)\}/g, - - + + applyTemplate : function(values){ var me = this; @@ -647,7 +647,7 @@ Ext.Template.prototype = { }); }, - + set : function(html, compile){ var me = this; me.html = html; @@ -655,7 +655,7 @@ Ext.Template.prototype = { return compile ? me.compile() : me; }, - + compile : function(){ var me = this, sep = Ext.isGecko ? "+" : ","; @@ -671,22 +671,22 @@ Ext.Template.prototype = { return me; }, - + insertFirst: function(el, values, returnElement){ return this.doInsert('afterBegin', el, values, returnElement); }, - + insertBefore: function(el, values, returnElement){ return this.doInsert('beforeBegin', el, values, returnElement); }, - + insertAfter : function(el, values, returnElement){ return this.doInsert('afterEnd', el, values, returnElement); }, - + append : function(el, values, returnElement){ return this.doInsert('beforeEnd', el, values, returnElement); }, @@ -697,7 +697,7 @@ Ext.Template.prototype = { return returnEl ? Ext.get(newNode, true) : newNode; }, - + overwrite : function(el, values, returnElement){ el = Ext.getDom(el); el.innerHTML = this.applyTemplate(values); @@ -715,28 +715,28 @@ Ext.Template.from = function(el, config){ Ext.DomQuery = function(){ - var cache = {}, - simpleCache = {}, + var cache = {}, + simpleCache = {}, valueCache = {}, nonSpace = /\S/, trimRe = /^\s+|\s+$/g, tplRe = /\{(\d+)\}/g, modeRe = /^(\s?[\/>+~]\s?|\s|$)/, tagTokenRe = /^(#)?([\w\-\*]+)/, - nthRe = /(\d*)n\+?(\d*)/, + nthRe = /(\d*)n\+?(\d*)/, nthRe2 = /\D/, - - - + + + isIE = window.ActiveXObject ? true : false, key = 30803; - - - - eval("var batch = 30803;"); - - + + + eval("var batch = 30803;"); + + + function child(parent, index){ var i = 0, n = parent.firstChild; @@ -751,31 +751,31 @@ Ext.DomQuery = function(){ return null; } - - function next(n){ + + function next(n){ while((n = n.nextSibling) && n.nodeType != 1); return n; } - + function prev(n){ while((n = n.previousSibling) && n.nodeType != 1); return n; } - - + + function children(parent){ var n = parent.firstChild, nodeIndex = -1, nextNode; while(n){ nextNode = n.nextSibling; - + if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){ parent.removeChild(n); }else{ - + n.nodeIndex = ++nodeIndex; } n = nextNode; @@ -784,8 +784,8 @@ Ext.DomQuery = function(){ } - - + + function byClassName(nodeSet, cls){ if(!cls){ return nodeSet; @@ -800,7 +800,7 @@ Ext.DomQuery = function(){ }; function attrValue(n, attr){ - + if(!n.tagName && typeof n.length != "undefined"){ n = n[0]; } @@ -819,22 +819,22 @@ Ext.DomQuery = function(){ }; - - - + + + function getNodes(ns, mode, tagName){ var result = [], ri = -1, cs; if(!ns){ return result; } tagName = tagName || "*"; - + if(typeof ns.getElementsByTagName != "undefined"){ ns = [ns]; } - - - + + + if(!mode){ for(var i = 0, ni; ni = ns[i]; i++){ cs = ni.getElementsByTagName(tagName); @@ -842,8 +842,8 @@ Ext.DomQuery = function(){ result[++ri] = ci; } } - - + + } else if(mode == "/" || mode == ">"){ var utag = tagName.toUpperCase(); for(var i = 0, ni, cn; ni = ns[i]; i++){ @@ -854,8 +854,8 @@ Ext.DomQuery = function(){ } } } - - + + }else if(mode == "+"){ var utag = tagName.toUpperCase(); for(var i = 0, n; n = ns[i]; i++){ @@ -864,8 +864,8 @@ Ext.DomQuery = function(){ result[++ri] = n; } } - - + + }else if(mode == "~"){ var utag = tagName.toUpperCase(); for(var i = 0, n; n = ns[i]; i++){ @@ -923,29 +923,29 @@ Ext.DomQuery = function(){ return result; } - - + + function byAttribute(cs, attr, value, op, custom){ - var result = [], - ri = -1, - useGetStyle = custom == "{", - fn = Ext.DomQuery.operators[op], + var result = [], + ri = -1, + useGetStyle = custom == "{", + fn = Ext.DomQuery.operators[op], a, xml, hasXml; - + for(var i = 0, ci; ci = cs[i]; i++){ - + if(ci.nodeType != 1){ continue; } - + if(!hasXml){ xml = Ext.DomQuery.isXml(ci); hasXml = true; } - - + + if(!xml){ if(useGetStyle){ a = Ext.DomQuery.getStyle(ci, attr); @@ -954,8 +954,8 @@ Ext.DomQuery = function(){ } else if (attr == "for"){ a = ci.htmlFor; } else if (attr == "href"){ - - + + a = ci.getAttribute("href", 2); } else{ a = ci.getAttribute(attr); @@ -975,7 +975,7 @@ Ext.DomQuery = function(){ } function nodupIEXml(cs){ - var d = ++key, + var d = ++key, r; cs[0].setAttribute("_nodup", d); r = [cs[0]]; @@ -1030,7 +1030,7 @@ Ext.DomQuery = function(){ r = []; for(var i = 0, len = c1.length; i < len; i++){ c1[i].setAttribute("_qdiff", d); - } + } for(var i = 0, len = c2.length; i < len; i++){ if(c2[i].getAttribute("_qdiff") != d){ r[r.length] = c2[i]; @@ -1051,10 +1051,10 @@ Ext.DomQuery = function(){ } if(isIE && typeof c1[0].selectSingleNode != "undefined"){ return quickDiffIEXml(c1, c2); - } + } for(var i = 0; i < len1; i++){ c1[i]._qdiff = d; - } + } for(var i = 0, len = c2.length; i < len; i++){ if(c2[i]._qdiff != d){ r[r.length] = c2[i]; @@ -1076,26 +1076,26 @@ Ext.DomQuery = function(){ getStyle : function(el, name){ return Ext.fly(el).getStyle(name); }, - + compile : function(path, type){ type = type || "select"; - + var fn = ["var f = function(root){\n var mode; ++batch; var n = root || document;\n"], - mode, + mode, lastPath, matchers = Ext.DomQuery.matchers, matchersLn = matchers.length, modeMatch, - + lmode = path.match(modeRe); - + if(lmode && lmode[1]){ fn[fn.length] = 'mode="'+lmode[1].replace(trimRe, "")+'";'; path = path.replace(lmode[1], ""); } - - + + while(path.substr(0, 1)=="/"){ path = path.substr(1); } @@ -1105,9 +1105,9 @@ Ext.DomQuery = function(){ var tokenMatch = path.match(tagTokenRe); if(type == "select"){ if(tokenMatch){ - + if(tokenMatch[1] == "#"){ - fn[fn.length] = 'n = quickId(n, mode, root, "'+tokenMatch[2]+'");'; + fn[fn.length] = 'n = quickId(n, mode, root, "'+tokenMatch[2]+'");'; }else{ fn[fn.length] = 'n = getNodes(n, mode, "'+tokenMatch[2]+'");'; } @@ -1115,7 +1115,7 @@ Ext.DomQuery = function(){ }else if(path.substr(0, 1) != '@'){ fn[fn.length] = 'n = getNodes(n, mode, "*");'; } - + }else{ if(tokenMatch){ if(tokenMatch[1] == "#"){ @@ -1140,7 +1140,7 @@ Ext.DomQuery = function(){ break; } } - + if(!matched){ throw 'Error parsing selector, parsing failed at "' + path + '"'; } @@ -1150,29 +1150,29 @@ Ext.DomQuery = function(){ path = path.replace(modeMatch[1], ""); } } - + fn[fn.length] = "return nodup(n);\n}"; - - + + eval(fn.join("")); return f; }, - + jsSelect: function(path, root, type){ - + root = root || document; - + if(typeof root == "string"){ root = document.getElementById(root); } var paths = path.split(","), results = []; - - - for(var i = 0, len = paths.length; i < len; i++){ + + + for(var i = 0, len = paths.length; i < len; i++){ var subPath = paths[i].replace(trimRe, ""); - + if(!cache[subPath]){ cache[subPath] = Ext.DomQuery.compile(subPath); if(!cache[subPath]){ @@ -1184,9 +1184,9 @@ Ext.DomQuery = function(){ results = results.concat(result); } } - - - + + + if(paths.length > 1){ return nodup(results); } @@ -1203,19 +1203,19 @@ Ext.DomQuery = function(){ var cs = root.querySelectorAll(path); return Ext.toArray(cs); } - catch (ex) {} - } + catch (ex) {} + } return Ext.DomQuery.jsSelect.call(this, path, root, type); } : function(path, root, type) { return Ext.DomQuery.jsSelect.call(this, path, root, type); }, - + selectNode : function(path, root){ return Ext.DomQuery.select(path, root)[0]; }, - + selectValue : function(path, root, defaultValue){ path = path.replace(trimRe, ""); if(!valueCache[path]){ @@ -1223,24 +1223,24 @@ Ext.DomQuery = function(){ } var n = valueCache[path](root), v; n = n[0] ? n[0] : n; - - - - - + + + + + if (typeof n.normalize == 'function') n.normalize(); - + v = (n && n.firstChild ? n.firstChild.nodeValue : null); return ((v === null||v === undefined||v==='') ? defaultValue : v); }, - + selectNumber : function(path, root, defaultValue){ var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); return parseFloat(v); }, - + is : function(el, ss){ if(typeof el == "string"){ el = document.getElementById(el); @@ -1250,7 +1250,7 @@ Ext.DomQuery = function(){ return isArray ? (result.length == el.length) : (result.length > 0); }, - + filter : function(els, ss, nonMatches){ ss = ss.replace(trimRe, ""); if(!simpleCache[ss]){ @@ -1260,7 +1260,7 @@ Ext.DomQuery = function(){ return nonMatches ? quickDiff(result, els) : result; }, - + matchers : [{ re: /^\.([\w\-]+)/, select: 'n = byClassName(n, " {1} ");' @@ -1542,15 +1542,15 @@ Ext.query = Ext.DomQuery.select; var task = new Ext.util.DelayedTask(function(){ alert(Ext.getDom('myInputField').value.length); }); -// Wait 500ms before calling our function. If the user presses another key +// Wait 500ms before calling our function. If the user presses another key // during that 500ms, it will be cancelled and we'll wait another 500ms. Ext.get('myInputField').on('keypress', function(){ - task.{@link #delay}(500); + task.{@link #delay}(500); }); - * + * *

Note that we are using a DelayedTask here to illustrate a point. The configuration * option buffer for {@link Ext.util.Observable#addListener addListener/on} will - * also setup a delayed task for you to buffer events.

+ * also setup a delayed task for you to buffer events.

* @constructor The parameters to this constructor serve as defaults and are not required. * @param {Function} fn (optional) The default function to call. * @param {Object} scope (optional) The default scope (The this reference) in which the @@ -1559,13 +1559,13 @@ Ext.get('myInputField').on('keypress', function(){ */ Ext.util.DelayedTask = function(fn, scope, args){ var me = this, - id, + id, call = function(){ clearInterval(id); id = null; fn.apply(scope, args || []); }; - + /** * Cancels any pending timeout and queues a new one * @param {Number} delay The milliseconds to delay @@ -2214,12 +2214,12 @@ el.un('click', this.handlerFn); return this; }, - + isBorderBox : function(){ return Ext.isBorderBox || Ext.isForcedBorderBox || noBoxAdjust[(this.dom.tagName || "").toLowerCase()]; }, - + remove : function(){ var me = this, dom = me.dom; @@ -2230,7 +2230,7 @@ el.un('click', this.handlerFn); } }, - + hover : function(overFn, outFn, scope, options){ var me = this; me.on('mouseenter', overFn, scope || me.dom, options); @@ -2238,17 +2238,17 @@ el.un('click', this.handlerFn); return me; }, - + contains : function(el){ return !el ? false : Ext.lib.Dom.isAncestor(this.dom, el.dom ? el.dom : el); }, - + getAttributeNS : function(ns, name){ return this.getAttribute(name, ns); }, - + getAttribute: (function(){ var test = document.createElement('table'), isBrokenOnTable = false, @@ -2306,7 +2306,7 @@ el.un('click', this.handlerFn); test = null; })(), - + update : function(html) { if (this.dom) { this.dom.innerHTML = html; @@ -2340,7 +2340,7 @@ El.get = function(el){ elm, id; if(!el){ return null; } - if (typeof el == "string") { + if (typeof el == "string") { if (!(elm = DOC.getElementById(el))) { return null; } @@ -2351,7 +2351,7 @@ El.get = function(el){ ex = El.addToCache(new El(elm)); } return ex; - } else if (el.tagName) { + } else if (el.tagName) { if(!(id = el.id)){ id = Ext.id(el); } @@ -2364,10 +2364,10 @@ El.get = function(el){ return ex; } else if (el instanceof El) { if(el != docEl){ - - - + + + if (Ext.isIE && (el.id == undefined || el.id == '')) { el.dom = el.dom; } else { @@ -2380,7 +2380,7 @@ El.get = function(el){ } else if(Ext.isArray(el)) { return El.select(el); } else if(el == DOC) { - + if(!docEl){ var f = function(){}; f.prototype = El.prototype; @@ -2436,23 +2436,23 @@ function garbageCollect(){ } el = o.el; d = el.dom; - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + if(!d || !d.parentNode || (!d.offsetParent && !DOC.getElementById(eid))){ if(Ext.enableListenerCollection){ Ext.EventManager.removeAll(d); @@ -2460,7 +2460,7 @@ function garbageCollect(){ delete EC[eid]; } } - + if (Ext.isIE) { var t = {}; for (eid in EC) { @@ -2520,14 +2520,14 @@ Ext.Element.addMethods(function(){ PREVIOUSSIBLING = 'previousSibling', DQ = Ext.DomQuery, GET = Ext.get; - + return { - + findParent : function(simpleSelector, maxDepth, returnEl){ var p = this.dom, - b = document.body, - depth = 0, - stopEl; + b = document.body, + depth = 0, + stopEl; if(Ext.isGecko && Object.prototype.toString.call(p) == '[object XULElement]') { return null; } @@ -2545,66 +2545,66 @@ Ext.Element.addMethods(function(){ } return null; }, - - + + findParentNode : function(simpleSelector, maxDepth, returnEl){ var p = Ext.fly(this.dom.parentNode, '_internal'); return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null; }, - - + + up : function(simpleSelector, maxDepth){ return this.findParentNode(simpleSelector, maxDepth, true); }, - - + + select : function(selector){ return Ext.Element.select(selector, this.dom); }, - - + + query : function(selector){ return DQ.select(selector, this.dom); }, - - + + child : function(selector, returnDom){ var n = DQ.selectNode(selector, this.dom); return returnDom ? n : GET(n); }, - - + + down : function(selector, returnDom){ var n = DQ.selectNode(" > " + selector, this.dom); return returnDom ? n : GET(n); }, - - + + parent : function(selector, returnDom){ return this.matchNode(PARENTNODE, PARENTNODE, selector, returnDom); }, - - + + next : function(selector, returnDom){ return this.matchNode(NEXTSIBLING, NEXTSIBLING, selector, returnDom); }, - - + + prev : function(selector, returnDom){ return this.matchNode(PREVIOUSSIBLING, PREVIOUSSIBLING, selector, returnDom); }, - - - + + + first : function(selector, returnDom){ return this.matchNode(NEXTSIBLING, 'firstChild', selector, returnDom); }, - - + + last : function(selector, returnDom){ return this.matchNode(PREVIOUSSIBLING, 'lastChild', selector, returnDom); }, - + matchNode : function(dir, start, selector, returnDom){ var n = this.dom[start]; while(n){ @@ -2614,7 +2614,7 @@ Ext.Element.addMethods(function(){ n = n[dir]; } return null; - } + } }; }()); Ext.Element.addMethods( @@ -2622,85 +2622,85 @@ function() { var GETDOM = Ext.getDom, GET = Ext.get, DH = Ext.DomHelper; - + return { - - appendChild: function(el){ - return GET(el).appendTo(this); + + appendChild: function(el){ + return GET(el).appendTo(this); }, - - - appendTo: function(el){ - GETDOM(el).appendChild(this.dom); + + + appendTo: function(el){ + GETDOM(el).appendChild(this.dom); return this; }, - - - insertBefore: function(el){ + + + insertBefore: function(el){ (el = GETDOM(el)).parentNode.insertBefore(this.dom, el); return this; }, - - + + insertAfter: function(el){ (el = GETDOM(el)).parentNode.insertBefore(this.dom, el.nextSibling); return this; }, - - + + insertFirst: function(el, returnDom){ el = el || {}; - if(el.nodeType || el.dom || typeof el == 'string'){ + if(el.nodeType || el.dom || typeof el == 'string'){ el = GETDOM(el); this.dom.insertBefore(el, this.dom.firstChild); return !returnDom ? GET(el) : el; - }else{ + }else{ return this.createChild(el, this.dom.firstChild, returnDom); } }, - - + + replace: function(el){ el = GET(el); this.insertBefore(el); el.remove(); return this; }, - - + + replaceWith: function(el){ var me = this; - + if(el.nodeType || el.dom || typeof el == 'string'){ el = GETDOM(el); me.dom.parentNode.insertBefore(el, me.dom); }else{ el = DH.insertBefore(me.dom, el); } - + delete Ext.elCache[me.id]; - Ext.removeNode(me.dom); + Ext.removeNode(me.dom); me.id = Ext.id(me.dom = el); - Ext.Element.addToCache(me.isFlyweight ? new Ext.Element(me.dom) : me); + Ext.Element.addToCache(me.isFlyweight ? new Ext.Element(me.dom) : me); return me; }, - - + + createChild: function(config, insertBefore, returnDom){ config = config || {tag:'div'}; - return insertBefore ? - DH.insertBefore(insertBefore, config, returnDom !== true) : + return insertBefore ? + DH.insertBefore(insertBefore, config, returnDom !== true) : DH[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true); }, - - - wrap: function(config, returnDom){ + + + wrap: function(config, returnDom){ var newEl = DH.insertBefore(this.dom, config || {tag: "div"}, !returnDom); newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom); return newEl; }, - - + + insertHtml : function(where, html, returnEl){ var el = DH.insertHtml(where, this.dom, html); return returnEl ? Ext.get(el) : el; @@ -2708,7 +2708,7 @@ function() { }; }()); Ext.Element.addMethods(function(){ - + var supports = Ext.supports, propCache = {}, camelRe = /(-[a-z])/gi, @@ -2733,14 +2733,14 @@ Ext.Element.addMethods(function(){ OVERFLOWX = 'overflow-x', OVERFLOWY = 'overflow-y', ORIGINALCLIP = 'originalClip', - + borders = {l: BORDER + LEFT + WIDTH, r: BORDER + RIGHT + WIDTH, t: BORDER + TOP + WIDTH, b: BORDER + BOTTOM + WIDTH}, paddings = {l: PADDING + LEFT, r: PADDING + RIGHT, t: PADDING + TOP, b: PADDING + BOTTOM}, margins = {l: MARGIN + LEFT, r: MARGIN + RIGHT, t: MARGIN + TOP, b: MARGIN + BOTTOM}, data = Ext.Element.data; - + function camelFn(m, a) { return a.charAt(1).toUpperCase(); } @@ -2750,7 +2750,7 @@ Ext.Element.addMethods(function(){ } return { - + adjustWidth : function(width) { var me = this; var isNum = (typeof width == "number"); @@ -2760,7 +2760,7 @@ Ext.Element.addMethods(function(){ return (isNum && width < 0) ? 0 : width; }, - + adjustHeight : function(height) { var me = this; var isNum = (typeof height == "number"); @@ -2771,14 +2771,14 @@ Ext.Element.addMethods(function(){ }, - + addClass : function(className){ var me = this, i, len, v, cls = []; - + if (!Ext.isArray(className)) { if (typeof className == 'string' && !this.hasClass(className)) { me.dom.className += " " + className; @@ -2798,7 +2798,7 @@ Ext.Element.addMethods(function(){ return me; }, - + removeClass : function(className){ var me = this, i, @@ -2826,7 +2826,7 @@ Ext.Element.addMethods(function(){ return me; }, - + radioClass : function(className){ var cn = this.dom.parentNode.childNodes, v, @@ -2842,17 +2842,17 @@ Ext.Element.addMethods(function(){ return this.addClass(className); }, - + toggleClass : function(className){ return this.hasClass(className) ? this.removeClass(className) : this.addClass(className); }, - + hasClass : function(className){ return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1; }, - + replaceClass : function(oldClassName, newClassName){ return this.removeClass(oldClassName).addClass(newClassName); }, @@ -2861,7 +2861,7 @@ Ext.Element.addMethods(function(){ return this.getStyle(style) == val; }, - + getStyle : function(){ return view && view.getComputedStyle ? function(prop){ @@ -2877,16 +2877,16 @@ Ext.Element.addMethods(function(){ prop = chkCache(prop); out = (v = el.style[prop]) ? v : (cs = view.getComputedStyle(el, "")) ? cs[prop] : null; - - - + + + if(prop == 'marginRight' && out != '0px' && !supports.correctRightMargin){ display = el.style.display; el.style.display = 'inline-block'; out = view.getComputedStyle(el, '').marginRight; el.style.display = display; } - + if(prop == 'backgroundColor' && out == 'rgba(0, 0, 0, 0)' && !supports.correctTransparentColor){ out = 'transparent'; } @@ -2914,7 +2914,7 @@ Ext.Element.addMethods(function(){ }; }(), - + getColor : function(attr, defaultValue, prefix){ var v = this.getStyle(attr), color = (typeof prefix != 'undefined') ? prefix : '#', @@ -2935,10 +2935,10 @@ Ext.Element.addMethods(function(){ return(color.length > 5 ? color.toLowerCase() : defaultValue); }, - + setStyle : function(prop, value){ var tmp, style; - + if (typeof prop != 'object') { tmp = {}; tmp[prop] = value; @@ -2953,7 +2953,7 @@ Ext.Element.addMethods(function(){ return this; }, - + setOpacity : function(opacity, animate){ var me = this, s = me.dom.style; @@ -2974,7 +2974,7 @@ Ext.Element.addMethods(function(){ return me; }, - + clearOpacity : function(){ var style = this.dom.style; if(Ext.isIE9m){ @@ -2987,7 +2987,7 @@ Ext.Element.addMethods(function(){ return this; }, - + getHeight : function(contentHeight){ var me = this, dom = me.dom, @@ -2998,7 +2998,7 @@ Ext.Element.addMethods(function(){ return h < 0 ? 0 : h; }, - + getWidth : function(contentWidth){ var me = this, dom = me.dom, @@ -3008,7 +3008,7 @@ Ext.Element.addMethods(function(){ return w < 0 ? 0 : w; }, - + setWidth : function(width, animate){ var me = this; width = me.adjustWidth(width); @@ -3018,7 +3018,7 @@ Ext.Element.addMethods(function(){ return me; }, - + setHeight : function(height, animate){ var me = this; height = me.adjustHeight(height); @@ -3028,17 +3028,17 @@ Ext.Element.addMethods(function(){ return me; }, - + getBorderWidth : function(side){ return this.addStyles(side, borders); }, - + getPadding : function(side){ return this.addStyles(side, paddings); }, - + clip : function(){ var me = this, dom = me.dom; @@ -3057,7 +3057,7 @@ Ext.Element.addMethods(function(){ return me; }, - + unclip : function(){ var me = this, dom = me.dom; @@ -3078,7 +3078,7 @@ Ext.Element.addMethods(function(){ return me; }, - + addStyles : function(sides, styles){ var ttlSize = 0, sidesArr = sides.match(wordsRe), @@ -3114,63 +3114,63 @@ var D = Ext.lib.Dom, ZINDEX = "z-index"; Ext.Element.addMethods({ - + getX : function(){ return D.getX(this.dom); }, - + getY : function(){ return D.getY(this.dom); }, - + getXY : function(){ return D.getXY(this.dom); }, - + getOffsetsTo : function(el){ var o = this.getXY(), e = Ext.fly(el, '_internal').getXY(); return [o[0]-e[0],o[1]-e[1]]; }, - - setX : function(x, animate){ + + setX : function(x, animate){ return this.setXY([x, this.getY()], this.animTest(arguments, animate, 1)); }, - - setY : function(y, animate){ + + setY : function(y, animate){ return this.setXY([this.getX(), y], this.animTest(arguments, animate, 1)); }, - + setLeft : function(left){ this.setStyle(LEFT, this.addUnits(left)); return this; }, - + setTop : function(top){ this.setStyle(TOP, this.addUnits(top)); return this; }, - + setRight : function(right){ this.setStyle(RIGHT, this.addUnits(right)); return this; }, - + setBottom : function(bottom){ this.setStyle(BOTTOM, this.addUnits(bottom)); return this; }, - + setXY : function(pos, animate){ var me = this; if(!animate || !me.anim){ @@ -3181,44 +3181,44 @@ Ext.Element.addMethods({ return me; }, - + setLocation : function(x, y, animate){ return this.setXY([x, y], this.animTest(arguments, animate, 2)); }, - + moveTo : function(x, y, animate){ - return this.setXY([x, y], this.animTest(arguments, animate, 2)); - }, - - + return this.setXY([x, y], this.animTest(arguments, animate, 2)); + }, + + getLeft : function(local){ return !local ? this.getX() : parseInt(this.getStyle(LEFT), 10) || 0; }, - + getRight : function(local){ var me = this; return !local ? me.getX() + me.getWidth() : (me.getLeft(true) + me.getWidth()) || 0; }, - + getTop : function(local) { return !local ? this.getY() : parseInt(this.getStyle(TOP), 10) || 0; }, - + getBottom : function(local){ var me = this; return !local ? me.getY() + me.getHeight() : (me.getTop(true) + me.getHeight()) || 0; }, - + position : function(pos, zIndex, x, y){ var me = this; - - if(!pos && me.isStyle(POSITION, STATIC)){ - me.setStyle(POSITION, RELATIVE); + + if(!pos && me.isStyle(POSITION, STATIC)){ + me.setStyle(POSITION, RELATIVE); } else if(pos) { me.setStyle(POSITION, pos); } @@ -3228,7 +3228,7 @@ Ext.Element.addMethods({ if(x || y) me.setXY([x || false, y || false]); }, - + clearPositioning : function(value){ value = value || ''; this.setStyle({ @@ -3242,7 +3242,7 @@ Ext.Element.addMethods({ return this; }, - + getPositioning : function(){ var l = this.getStyle(LEFT); var t = this.getStyle(TOP); @@ -3255,26 +3255,26 @@ Ext.Element.addMethods({ "z-index" : this.getStyle(ZINDEX) }; }, - - + + setPositioning : function(pc){ var me = this, style = me.dom.style; - + me.setStyle(pc); - + if(pc.right == AUTO){ style.right = ""; } if(pc.bottom == AUTO){ style.bottom = ""; } - + return me; - }, - - - translatePoints : function(x, y){ + }, + + + translatePoints : function(x, y){ y = isNaN(x[1]) ? y : x[1]; x = isNaN(x[0]) ? x : x[0]; var me = this, @@ -3282,34 +3282,34 @@ Ext.Element.addMethods({ o = me.getXY(), l = parseInt(me.getStyle(LEFT), 10), t = parseInt(me.getStyle(TOP), 10); - + l = !isNaN(l) ? l : (relative ? 0 : me.dom.offsetLeft); - t = !isNaN(t) ? t : (relative ? 0 : me.dom.offsetTop); + t = !isNaN(t) ? t : (relative ? 0 : me.dom.offsetTop); - return {left: (x - o[0] + l), top: (y - o[1] + t)}; + return {left: (x - o[0] + l), top: (y - o[1] + t)}; }, - + animTest : function(args, animate, i) { return !!animate && this.preanim ? this.preanim(args, i) : false; } }); })(); Ext.Element.addMethods({ - + isScrollable : function(){ var dom = this.dom; return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth; }, - + scrollTo : function(side, value){ this.dom["scroll" + (/top/i.test(side) ? "Top" : "Left")] = value; return this; }, - + getScroll : function(){ - var d = this.dom, + var d = this.dom, doc = document, body = doc.body, docElement = doc.documentElement, @@ -3319,7 +3319,7 @@ Ext.Element.addMethods({ if(d == doc || d == body){ if(Ext.isIE && Ext.isStrict){ - l = docElement.scrollLeft; + l = docElement.scrollLeft; t = docElement.scrollTop; }else{ l = window.pageXOffset; @@ -3376,23 +3376,23 @@ Ext.Element.addMethods(function(){ }; return { - + originalDisplay : "", visibilityMode : 1, - + setVisibilityMode : function(visMode){ data(this.dom, VISMODE, visMode); return this; }, - + animate : function(args, duration, onComplete, easing, animType){ this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType); return this; }, - + anim : function(args, opt, animType, defaultDur, defaultEase, cb){ animType = animType || 'run'; opt = opt || {}; @@ -3412,21 +3412,21 @@ Ext.Element.addMethods(function(){ return anim; }, - + preanim : function(a, i){ return !a[i] ? false : (typeof a[i] == 'object' ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]}); }, - + isVisible : function() { var me = this, dom = me.dom, visible = data(dom, ISVISIBLE); - if(typeof visible == 'boolean'){ + if(typeof visible == 'boolean'){ return visible; } - + visible = !me.isStyle(VISIBILITY, HIDDEN) && !me.isStyle(DISPLAY, NONE) && !((getVisMode(dom) == El.ASCLASS) && me.hasClass(me.visibilityCls || El.visibilityCls)); @@ -3435,14 +3435,14 @@ Ext.Element.addMethods(function(){ return visible; }, - + setVisible : function(visible, animate){ var me = this, isDisplay, isVisibility, isOffsets, isNosize, dom = me.dom, visMode = getVisMode(dom); - + if (typeof animate == 'string'){ switch (animate) { case DISPLAY: @@ -3491,7 +3491,7 @@ Ext.Element.addMethods(function(){ dom.style.visibility = visible ? "visible" : HIDDEN; } }else{ - + if(visible){ me.setOpacity(.01); me.setVisible(true); @@ -3505,25 +3505,25 @@ Ext.Element.addMethods(function(){ visible || me.setVisible(false).setOpacity(1); }); } - data(dom, ISVISIBLE, visible); + data(dom, ISVISIBLE, visible); return me; }, - + hasMetrics : function(){ var dom = this.dom; return this.isVisible() || (getVisMode(dom) == El.VISIBILITY); }, - + toggle : function(animate){ var me = this; me.setVisible(!me.isVisible(), me.preanim(arguments, 0)); return me; }, - + setDisplayed : function(value) { if(typeof value == "boolean"){ value = value ? getDisplay(this.dom) : NONE; @@ -3532,21 +3532,21 @@ Ext.Element.addMethods(function(){ return this; }, - + fixDisplay : function(){ var me = this; if(me.isStyle(DISPLAY, NONE)){ me.setStyle(VISIBILITY, HIDDEN); - me.setStyle(DISPLAY, getDisplay(this.dom)); - if(me.isStyle(DISPLAY, NONE)){ + me.setStyle(DISPLAY, getDisplay(this.dom)); + if(me.isStyle(DISPLAY, NONE)){ me.setStyle(DISPLAY, "block"); } } }, - + hide : function(animate){ - + if (typeof animate == 'string'){ this.setVisible(false, animate); return this; @@ -3555,9 +3555,9 @@ Ext.Element.addMethods(function(){ return this; }, - + show : function(animate){ - + if (typeof animate == 'string'){ this.setVisible(true, animate); return this; @@ -3567,7 +3567,7 @@ Ext.Element.addMethods(function(){ } }; }());(function(){ - + var NULL = null, UNDEFINED = undefined, TRUE = true, @@ -3588,7 +3588,7 @@ Ext.Element.addMethods(function(){ MOTION = "motion", POSITION = "position", EASEOUT = "easeOut", - + flyEl = new Ext.Element.Flyweight(), queues = {}, getObject = function(o){ @@ -3599,7 +3599,7 @@ Ext.Element.addMethods(function(){ flyEl.id = Ext.id(dom); return flyEl; }, - + getQueue = function(id){ if(!queues[id]){ queues[id] = []; @@ -3609,78 +3609,78 @@ Ext.Element.addMethods(function(){ setQueue = function(id, value){ queues[id] = value; }; - + Ext.enableFx = TRUE; Ext.Fx = { - - - + + + switchStatements : function(key, fn, argHash){ return fn.apply(this, argHash[key]); }, - - - slideIn : function(anchor, o){ + + + slideIn : function(anchor, o){ o = getObject(o); var me = this, dom = me.dom, st = dom.style, xy, r, - b, - wrap, + b, + wrap, after, st, - args, + args, pt, bw, bh; - + anchor = anchor || "t"; - me.queueFx(o, function(){ + me.queueFx(o, function(){ xy = fly(dom).getXY(); - - fly(dom).fixDisplay(); - - - r = fly(dom).getFxRestore(); + + fly(dom).fixDisplay(); + + + r = fly(dom).getFxRestore(); b = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: dom.offsetWidth, height: dom.offsetHeight}; b.right = b.x + b.width; b.bottom = b.y + b.height; - - - fly(dom).setWidth(b.width).setHeight(b.height); - - + + + fly(dom).setWidth(b.width).setHeight(b.height); + + wrap = fly(dom).fxWrap(r.pos, o, HIDDEN); - + st.visibility = VISIBLE; st.position = ABSOLUTE; - - + + function after(){ fly(dom).fxUnwrap(wrap, r.pos, o); st.width = r.width; st.height = r.height; fly(dom).afterFx(o); } - - - pt = {to: [b.x, b.y]}; + + + pt = {to: [b.x, b.y]}; bw = {to: b.width}; bh = {to: b.height}; - - function argCalc(wrap, style, ww, wh, sXY, sXYval, s1, s2, w, h, p){ + + function argCalc(wrap, style, ww, wh, sXY, sXYval, s1, s2, w, h, p){ var ret = {}; fly(wrap).setWidth(ww).setHeight(wh); if(fly(wrap)[sXY]){ - fly(wrap)[sXY](sXYval); + fly(wrap)[sXY](sXYval); } - style[s1] = style[s2] = "0"; + style[s1] = style[s2] = "0"; if(w){ ret.width = w; } @@ -3703,7 +3703,7 @@ Ext.Fx = { br : [wrap, st, 0, 0, SETXY, [b.right, b.bottom], LEFT, TOP, bw, bh, pt], tr : [wrap, st, 0, 0, SETX, b.x + b.width, LEFT, BOTTOM, bw, bh, pt] }); - + st.visibility = VISIBLE; fly(wrap).show(); @@ -3711,13 +3711,13 @@ Ext.Fx = { o, MOTION, .5, - EASEOUT, + EASEOUT, after); }); return me; }, - - + + slideOut : function(anchor, o){ o = getObject(o); var me = this, @@ -3728,51 +3728,51 @@ Ext.Fx = { r, b, a, - zero = {to: 0}; - + zero = {to: 0}; + anchor = anchor || "t"; me.queueFx(o, function(){ - - - r = fly(dom).getFxRestore(); + + + r = fly(dom).getFxRestore(); b = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: dom.offsetWidth, height: dom.offsetHeight}; b.right = b.x + b.width; b.bottom = b.y + b.height; - - + + fly(dom).setWidth(b.width).setHeight(b.height); - + wrap = fly(dom).fxWrap(r.pos, o, VISIBLE); - + st.visibility = VISIBLE; st.position = ABSOLUTE; - fly(wrap).setWidth(b.width).setHeight(b.height); + fly(wrap).setWidth(b.width).setHeight(b.height); function after(){ - o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); + o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); fly(dom).fxUnwrap(wrap, r.pos, o); st.width = r.width; st.height = r.height; fly(dom).afterFx(o); - } - - function argCalc(style, s1, s2, p1, v1, p2, v2, p3, v3){ + } + + function argCalc(style, s1, s2, p1, v1, p2, v2, p3, v3){ var ret = {}; - + style[s1] = style[s2] = "0"; - ret[p1] = v1; + ret[p1] = v1; if(p2){ - ret[p2] = v2; + ret[p2] = v2; } if(p3){ ret[p3] = v3; } - + return ret; }; - + a = fly(dom).switchStatements(anchor.toLowerCase(), argCalc, { t : [st, LEFT, BOTTOM, HEIGHT, zero], l : [st, RIGHT, TOP, WIDTH, zero], @@ -3783,18 +3783,18 @@ Ext.Fx = { br : [st, LEFT, TOP, WIDTH, zero, HEIGHT, zero, POINTS, {to : [b.x + b.width, b.bottom]}], tr : [st, LEFT, BOTTOM, WIDTH, zero, HEIGHT, zero, POINTS, {to : [b.right, b.y]}] }); - + arguments.callee.anim = fly(wrap).fxanim(a, o, MOTION, .5, - EASEOUT, + EASEOUT, after); }); return me; }, - + puff : function(o){ o = getObject(o); var me = this, @@ -3810,18 +3810,18 @@ Ext.Fx = { fly(dom).clearOpacity(); fly(dom).show(); - - r = fly(dom).getFxRestore(); - + + r = fly(dom).getFxRestore(); + function after(){ - o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); - fly(dom).clearOpacity(); + o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); + fly(dom).clearOpacity(); fly(dom).setPositioning(r.pos); st.width = r.width; st.height = r.height; st.fontSize = ''; fly(dom).afterFx(o); - } + } arguments.callee.anim = fly(dom).fxanim({ width : {to : fly(dom).adjustWidth(width * 2)}, @@ -3839,7 +3839,7 @@ Ext.Fx = { return me; }, - + switchOff : function(o){ o = getObject(o); var me = this, @@ -3851,34 +3851,34 @@ Ext.Fx = { fly(dom).clearOpacity(); fly(dom).clip(); - + r = fly(dom).getFxRestore(); - + function after(){ - o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); + o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); fly(dom).clearOpacity(); fly(dom).setPositioning(r.pos); st.width = r.width; - st.height = r.height; + st.height = r.height; fly(dom).afterFx(o); }; - fly(dom).fxanim({opacity : {to : 0.3}}, - NULL, - NULL, - .1, - NULL, - function(){ + fly(dom).fxanim({opacity : {to : 0.3}}, + NULL, + NULL, + .1, + NULL, + function(){ fly(dom).clearOpacity(); - (function(){ + (function(){ fly(dom).fxanim({ height : {to : 1}, points : {by : [0, fly(dom).getHeight() * .5]} - }, - o, - MOTION, - 0.3, - 'easeIn', + }, + o, + MOTION, + 0.3, + 'easeIn', after); }).defer(100); }); @@ -3886,7 +3886,7 @@ Ext.Fx = { return me; }, - + highlight : function(color, o){ o = getObject(o); var me = this, @@ -3902,20 +3902,20 @@ Ext.Fx = { function after(){ dom.style[attr] = restore; fly(dom).afterFx(o); - } + } restore = dom.style[attr]; a[attr] = {from: color || "ffff9c", to: o.endColor || fly(dom).getColor(attr) || "ffffff"}; arguments.callee.anim = fly(dom).fxanim(a, o, 'color', 1, - 'easeIn', + 'easeIn', after); }); return me; }, - + frame : function(color, count, o){ o = getObject(o); var me = this, @@ -3927,7 +3927,7 @@ Ext.Fx = { color = color || '#C3DAF9'; if(color.length == 6){ color = '#' + color; - } + } count = count || 1; fly(dom).show(); @@ -3937,14 +3937,14 @@ Ext.Fx = { proxy = fly(document.body || document.documentElement).createChild({ style:{ position : ABSOLUTE, - 'z-index': 35000, + 'z-index': 35000, border : '0px solid ' + color } }); return proxy.queueFx({}, animFn); }; - - + + arguments.callee.anim = { isAnimated: true, stop: function() { @@ -3952,7 +3952,7 @@ Ext.Fx = { proxy.stopFx(); } }; - + function animFn(){ var scale = Ext.isBorderBox ? 2 : 1; active = proxy.anim({ @@ -3981,8 +3981,8 @@ Ext.Fx = { return me; }, - - pause : function(seconds){ + + pause : function(seconds){ var dom = this.dom, t; @@ -4001,13 +4001,13 @@ Ext.Fx = { return this; }, - + fadeIn : function(o){ o = getObject(o); var me = this, dom = me.dom, to = o.endOpacity || 1; - + me.queueFx(o, function(){ fly(dom).setOpacity(0); fly(dom).fixDisplay(); @@ -4023,27 +4023,27 @@ Ext.Fx = { return me; }, - + fadeOut : function(o){ o = getObject(o); var me = this, dom = me.dom, style = dom.style, - to = o.endOpacity || 0; - - me.queueFx(o, function(){ - arguments.callee.anim = fly(dom).fxanim({ + to = o.endOpacity || 0; + + me.queueFx(o, function(){ + arguments.callee.anim = fly(dom).fxanim({ opacity : {to : to}}, - o, - NULL, - .5, - EASEOUT, + o, + NULL, + .5, + EASEOUT, function(){ if(to == 0){ - Ext.Element.data(dom, 'visibilityMode') == Ext.Element.DISPLAY || o.useDisplay ? + Ext.Element.data(dom, 'visibilityMode') == Ext.Element.DISPLAY || o.useDisplay ? style.display = "none" : style.visibility = HIDDEN; - + fly(dom).clearOpacity(); } fly(dom).afterFx(o); @@ -4052,7 +4052,7 @@ Ext.Fx = { return me; }, - + scale : function(w, h, o){ this.shift(Ext.apply({}, o, { width: w, @@ -4061,33 +4061,33 @@ Ext.Fx = { return this; }, - + shift : function(o){ o = getObject(o); var dom = this.dom, a = {}; - + this.queueFx(o, function(){ for (var prop in o) { - if (o[prop] != UNDEFINED) { - a[prop] = {to : o[prop]}; + if (o[prop] != UNDEFINED) { + a[prop] = {to : o[prop]}; } - } - + } + a.width ? a.width.to = fly(dom).adjustWidth(o.width) : a; - a.height ? a.height.to = fly(dom).adjustWidth(o.height) : a; - + a.height ? a.height.to = fly(dom).adjustWidth(o.height) : a; + if (a.x || a.y || a.xy) { - a.points = a.xy || + a.points = a.xy || {to : [ a.x ? a.x.to : fly(dom).getX(), - a.y ? a.y.to : fly(dom).getY()]}; + a.y ? a.y.to : fly(dom).getY()]}; } arguments.callee.anim = fly(dom).fxanim(a, - o, - MOTION, - .35, - EASEOUT, + o, + MOTION, + .35, + EASEOUT, function(){ fly(dom).afterFx(o); }); @@ -4095,7 +4095,7 @@ Ext.Fx = { return this; }, - + ghost : function(anchor, o){ o = getObject(o); var me = this, @@ -4106,24 +4106,24 @@ Ext.Fx = { r, w, h; - + anchor = anchor || "b"; me.queueFx(o, function(){ - + r = fly(dom).getFxRestore(); w = fly(dom).getWidth(); h = fly(dom).getHeight(); - + function after(){ - o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); + o.useDisplay ? fly(dom).setDisplayed(FALSE) : fly(dom).hide(); fly(dom).clearOpacity(); fly(dom).setPositioning(r.pos); st.width = r.width; st.height = r.height; fly(dom).afterFx(o); } - + pt.by = fly(dom).switchStatements(anchor.toLowerCase(), function(v1,v2){ return [v1, v2];}, { t : [0, -h], l : [-w, 0], @@ -4132,9 +4132,9 @@ Ext.Fx = { tl : [-w, -h], bl : [-w, h], br : [w, h], - tr : [w, -h] + tr : [w, -h] }); - + arguments.callee.anim = fly(dom).fxanim(a, o, MOTION, @@ -4144,7 +4144,7 @@ Ext.Fx = { return me; }, - + syncFx : function(){ var me = this; me.fxDefaults = Ext.apply(me.fxDefaults || {}, { @@ -4155,7 +4155,7 @@ Ext.Fx = { return me; }, - + sequenceFx : function(){ var me = this; me.fxDefaults = Ext.apply(me.fxDefaults || {}, { @@ -4166,20 +4166,20 @@ Ext.Fx = { return me; }, - - nextFx : function(){ + + nextFx : function(){ var ef = getQueue(this.dom.id)[0]; if(ef){ ef.call(this); } }, - + hasActiveFx : function(){ return getQueue(this.dom.id)[0]; }, - + stopFx : function(finish){ var me = this, id = me.dom.id; @@ -4187,7 +4187,7 @@ Ext.Fx = { var cur = getQueue(id)[0]; if(cur && cur.anim){ if(cur.anim.isAnimated){ - setQueue(id, [cur]); + setQueue(id, [cur]); cur.anim.stop(finish !== undefined ? finish : TRUE); }else{ setQueue(id, []); @@ -4197,7 +4197,7 @@ Ext.Fx = { return me; }, - + beforeFx : function(o){ if(this.hasActiveFx() && !o.concurrent){ if(o.stopFx){ @@ -4209,13 +4209,13 @@ Ext.Fx = { return TRUE; }, - + hasFxBlock : function(){ var q = getQueue(this.dom.id); return q && q[0] && q[0].block; }, - + queueFx : function(o, fn){ var me = fly(this.dom); if(!me.hasFxBlock()){ @@ -4234,12 +4234,12 @@ Ext.Fx = { return me; }, - - fxWrap : function(pos, o, vis){ + + fxWrap : function(pos, o, vis){ var dom = this.dom, wrap, wrapXY; - if(!o.wrap || !(wrap = Ext.getDom(o.wrap))){ + if(!o.wrap || !(wrap = Ext.getDom(o.wrap))){ if(o.fixPosition){ wrapXY = fly(dom).getXY(); } @@ -4260,30 +4260,30 @@ Ext.Fx = { return wrap; }, - - fxUnwrap : function(wrap, pos, o){ + + fxUnwrap : function(wrap, pos, o){ var dom = this.dom; fly(dom).clearPositioning(); fly(dom).setPositioning(pos); if(!o.wrap){ var pn = fly(wrap).dom.parentNode; - pn.insertBefore(dom, wrap); + pn.insertBefore(dom, wrap); fly(wrap).remove(); } }, - + getFxRestore : function(){ var st = this.dom.style; return {pos: this.getPositioning(), width: st.width, height : st.height}; }, - + afterFx : function(o){ var dom = this.dom, id = dom.id; if(o.afterStyle){ - fly(dom).setStyle(o.afterStyle); + fly(dom).setStyle(o.afterStyle); } if(o.afterCls){ fly(dom).addClass(o.afterCls); @@ -4300,16 +4300,16 @@ Ext.Fx = { } }, - + fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){ animType = animType || 'run'; opt = opt || {}; var anim = Ext.lib.Anim[animType]( - this.dom, + this.dom, args, (opt.duration || defaultDur) || .35, (opt.easing || defaultEase) || EASEOUT, - cb, + cb, this ); opt.anim = anim; @@ -4326,7 +4326,7 @@ Ext.Element.addMethods(Ext.Fx); })(); Ext.CompositeElementLite = function(els, root){ - + this.elements = []; this.add(els, root); this.el = new Ext.Element.Flyweight(); @@ -4335,25 +4335,25 @@ Ext.CompositeElementLite = function(els, root){ Ext.CompositeElementLite.prototype = { isComposite: true, - + getElement : function(el){ - + var e = this.el; e.dom = el; e.id = el.id; return e; }, - + transformElement : function(el){ return Ext.getDom(el); }, - + getCount : function(){ return this.elements.length; }, - + add : function(els, root){ var me = this, elements = me.elements; @@ -4389,7 +4389,7 @@ Ext.CompositeElementLite.prototype = { } return me; }, - + item : function(index){ var me = this, el = me.elements[index], @@ -4401,7 +4401,7 @@ Ext.CompositeElementLite.prototype = { return out; }, - + addListener : function(eventName, handler, scope, opt){ var els = this.elements, len = els.length, @@ -4415,7 +4415,7 @@ Ext.CompositeElementLite.prototype = { } return this; }, - + each : function(fn, scope){ var me = this, els = me.elements, @@ -4434,7 +4434,7 @@ Ext.CompositeElementLite.prototype = { return me; }, - + fill : function(els){ var me = this; me.elements = []; @@ -4442,7 +4442,7 @@ Ext.CompositeElementLite.prototype = { return me; }, - + filter : function(selector){ var els = [], me = this, @@ -4456,17 +4456,17 @@ Ext.CompositeElementLite.prototype = { els[els.length] = me.transformElement(el); } }); - + me.elements = els; return me; }, - + indexOf : function(el){ return this.elements.indexOf(this.transformElement(el)); }, - + replaceElement : function(el, replacement, domReplace){ var index = !isNaN(el) ? el : this.indexOf(el), d; @@ -4482,7 +4482,7 @@ Ext.CompositeElementLite.prototype = { return this; }, - + clear : function(){ this.elements = []; } @@ -4538,37 +4538,37 @@ Ext.select = Ext.Element.select; GET = 'GET', WINDOW = window; - + Ext.data.Connection = function(config){ Ext.apply(this, config); this.addEvents( - + BEFOREREQUEST, - + REQUESTCOMPLETE, - + REQUESTEXCEPTION ); Ext.data.Connection.superclass.constructor.call(this); }; Ext.extend(Ext.data.Connection, Ext.util.Observable, { - - - - - + + + + + timeout : 30000, - + autoAbort:false, - + disableCaching: true, - + disableCachingParam: '_dc', - + request : function(o){ var me = this; if(me.fireEvent(BEFOREREQUEST, me, o)){ @@ -4639,19 +4639,19 @@ Ext.select = Ext.Element.select; } }, - + isLoading : function(transId){ return transId ? Ext.lib.Ajax.isCallInProgress(transId) : !! this.transId; }, - + abort : function(transId){ if(transId || this.isLoading()){ Ext.lib.Ajax.abort(transId || this.transId); } }, - + handleResponse : function(response){ this.transId = false; var options = response.argument.options; @@ -4665,7 +4665,7 @@ Ext.select = Ext.Element.select; } }, - + handleFailure : function(response, e){ this.transId = false; var options = response.argument.options; @@ -4679,7 +4679,7 @@ Ext.select = Ext.Element.select; } }, - + doFormUpload : function(o, ps, url){ var id = Ext.id(), doc = document, @@ -4696,17 +4696,17 @@ Ext.select = Ext.Element.select; action: form.action }; - + Ext.fly(frame).set({ id: id, name: id, cls: 'x-hidden', src: Ext.SSL_SECURE_URL - }); + }); doc.body.appendChild(frame); - + if(Ext.isIE){ document.frames[id].name = id; } @@ -4720,7 +4720,7 @@ Ext.select = Ext.Element.select; action: url || buf.action }); - + Ext.iterate(Ext.urlDecode(ps, false), function(k, v){ hd = doc.createElement('input'); Ext.fly(hd).set({ @@ -4734,7 +4734,7 @@ Ext.select = Ext.Element.select; function cb(){ var me = this, - + r = {responseText : '', responseXML : null, argument : o.argument}, @@ -4745,13 +4745,13 @@ Ext.select = Ext.Element.select; doc = frame.contentWindow.document || frame.contentDocument || WINDOW.frames[id].document; if(doc){ if(doc.body){ - if(/textarea/i.test((firstChild = doc.body.firstChild || {}).tagName)){ + if(/textarea/i.test((firstChild = doc.body.firstChild || {}).tagName)){ r.responseText = firstChild.value; }else{ r.responseText = doc.body.innerHTML; } } - + r.responseXML = doc.XMLDocument || doc; } } @@ -4788,26 +4788,26 @@ Ext.select = Ext.Element.select; Ext.Ajax = new Ext.data.Connection({ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + autoAbort : false, - + serializeForm : function(form){ return Ext.lib.Ajax.serializeForm(form); } @@ -4822,7 +4822,7 @@ Ext.util.JSON = new (function(){ if (useNative === null) { useNative = Ext.USE_NATIVE_JSON && window.JSON && JSON.toString() == '[object JSON]'; } - + return useNative; }; }(), @@ -4830,7 +4830,7 @@ Ext.util.JSON = new (function(){ return n < 10 ? "0" + n : n; }, doDecode = function(json){ - return json ? eval("(" + json + ")") : ""; + return json ? eval("(" + json + ")") : ""; }, doEncode = function(o){ if(!Ext.isDefined(o) || o === null){ @@ -4842,14 +4842,14 @@ Ext.util.JSON = new (function(){ }else if(Ext.isString(o)){ return encodeString(o); }else if(typeof o == "number"){ - + return isFinite(o) ? String(o) : "null"; }else if(Ext.isBoolean(o)){ return String(o); }else { var a = ["{"], b, i, v; for (i in o) { - + if(!o.getElementsByTagName){ if(!useHasOwn || o.hasOwnProperty(i)) { v = o[i]; @@ -4871,7 +4871,7 @@ Ext.util.JSON = new (function(){ } a.push("}"); return a.join(""); - } + } }, m = { "\b": '\\b', @@ -4918,7 +4918,7 @@ Ext.util.JSON = new (function(){ return a.join(""); }; - + this.encodeDate = function(o){ return '"' + o.getFullYear() + "-" + pad(o.getMonth() + 1) + "-" + @@ -4928,12 +4928,12 @@ Ext.util.JSON = new (function(){ pad(o.getSeconds()) + '"'; }; - + this.encode = function() { var ec; return function(o) { if (!ec) { - + ec = isNative() ? JSON.stringify : doEncode; } return ec(o); @@ -4941,12 +4941,12 @@ Ext.util.JSON = new (function(){ }(); - + this.decode = function() { var dc; return function(json) { if (!dc) { - + dc = isNative() ? JSON.parse : doDecode; } return dc(json); @@ -4971,7 +4971,7 @@ Ext.EventManager = function(){ DOMCONTENTLOADED = "DOMContentLoaded", COMPLETE = 'complete', propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/, - + specialElCache = []; function getId(el){ @@ -4983,7 +4983,7 @@ Ext.EventManager = function(){ if (el) { if (el.getElementById || el.navigator) { - + for(; i < len; ++i){ o = specialElCache[i]; if(o.el === el){ @@ -4992,7 +4992,7 @@ Ext.EventManager = function(){ } } if(!id){ - + id = Ext.id(el); specialElCache.push({ id: id, @@ -5013,7 +5013,7 @@ Ext.EventManager = function(){ return id; } - + function addListener(el, ename, fn, task, wrap, scope){ el = Ext.getDom(el); var id = getId(el), @@ -5023,13 +5023,13 @@ Ext.EventManager = function(){ wfn = E.on(el, ename, wrap); es[ename] = es[ename] || []; - + es[ename].push([fn, wrap, scope, wfn, task]); - - - + + + if(el.addEventListener && ename == "mousewheel"){ var args = ["DOMMouseScroll", wrap, false]; el.addEventListener.apply(el, args); @@ -5038,14 +5038,14 @@ Ext.EventManager = function(){ }); } - + if(el == DOC && ename == "mousedown"){ Ext.EventManager.stoppedMouseDownEvent.addListener(wrap); } } function doScrollChk(){ - + if(window != top){ return false; } @@ -5059,7 +5059,7 @@ Ext.EventManager = function(){ fireDocReady(); return true; } - + function checkReadyState(e){ if(Ext.isIE9m && doScrollChk()){ @@ -5091,7 +5091,7 @@ Ext.EventManager = function(){ function fireDocReady(e){ if(!docReadyState){ - docReadyState = true; + docReadyState = true; if(docReadyProcId){ clearTimeout(docReadyProcId); @@ -5099,7 +5099,7 @@ Ext.EventManager = function(){ if(DETECT_NATIVE) { DOC.removeEventListener(DOMCONTENTLOADED, fireDocReady, false); } - if(Ext.isIE9m && checkReadyState.bindIE){ + if(Ext.isIE9m && checkReadyState.bindIE){ DOC.detachEvent('onreadystatechange', checkReadyState); } E.un(WINDOW, "load", arguments.callee); @@ -5117,27 +5117,27 @@ Ext.EventManager = function(){ if (DETECT_NATIVE) { DOC.addEventListener(DOMCONTENTLOADED, fireDocReady, false); } - + if (Ext.isIE9m){ - - + + if(!checkReadyState()){ checkReadyState.bindIE = true; DOC.attachEvent('onreadystatechange', checkReadyState); } }else if(Ext.isOpera ){ - - + + (DOC.readyState == COMPLETE && checkStyleSheets()) || DOC.addEventListener(DOMCONTENTLOADED, OperaDOMContentLoaded, false); }else if (Ext.isWebKit){ - + checkReadyState(); } - + E.on(WINDOW, "load", fireDocReady); } @@ -5152,7 +5152,7 @@ Ext.EventManager = function(){ function createBuffered(h, o, task){ return function(e){ - + task.delay(o.buffer, h, null, [new Ext.EventObjectImpl(e)]); }; } @@ -5186,7 +5186,7 @@ Ext.EventManager = function(){ throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.'; } function h(e){ - + if(!Ext){ return; } @@ -5233,7 +5233,7 @@ Ext.EventManager = function(){ } var pub = { - + addListener : function(element, eventName, fn, scope, options){ if(typeof eventName == 'object'){ var o = eventName, e, val; @@ -5241,10 +5241,10 @@ Ext.EventManager = function(){ val = o[e]; if(!propRe.test(e)){ if(Ext.isFunction(val)){ - + listen(element, e, o, val, o.scope); }else{ - + listen(element, e, val); } } @@ -5254,7 +5254,7 @@ Ext.EventManager = function(){ } }, - + removeListener : function(el, eventName, fn, scope){ el = Ext.getDom(el); var id = getId(el), @@ -5263,7 +5263,7 @@ Ext.EventManager = function(){ for (i = 0, len = f.length; i < len; i++) { - + if (Ext.isArray(fnc = f[i]) && fnc[0] == fn && (!scope || fnc[2] == scope)) { if(fnc[4]) { fnc[4].cancel(); @@ -5278,12 +5278,12 @@ Ext.EventManager = function(){ wrap = fnc[1]; E.un(el, eventName, E.extAdapter ? fnc[3] : wrap); - + if(wrap && el.addEventListener && eventName == "mousewheel"){ el.removeEventListener("DOMMouseScroll", wrap, false); } - + if(wrap && el == DOC && eventName == "mousedown"){ Ext.EventManager.stoppedMouseDownEvent.removeListener(wrap); } @@ -5301,7 +5301,7 @@ Ext.EventManager = function(){ } }, - + removeAll : function(el){ el = Ext.getDom(el); var id = getId(el), @@ -5312,7 +5312,7 @@ Ext.EventManager = function(){ for(ename in es){ if(es.hasOwnProperty(ename)){ f = es[ename]; - + for (i = 0, len = f.length; i < len; i++) { fn = f[i]; if(fn[4]) { @@ -5327,12 +5327,12 @@ Ext.EventManager = function(){ wrap = fn[1]; E.un(el, ename, E.extAdapter ? fn[3] : wrap); - + if(el.addEventListener && wrap && ename == "mousewheel"){ el.removeEventListener("DOMMouseScroll", wrap, false); } - + if(wrap && el == DOC && ename == "mousedown"){ Ext.EventManager.stoppedMouseDownEvent.removeListener(wrap); } @@ -5356,14 +5356,14 @@ Ext.EventManager = function(){ return null; } }, - + removeFromSpecialCache: function(o) { var i = 0, len = specialElCache.length; - + for (; i < len; ++i) { if (specialElCache[i].el == o) { - specialElCache.splice(i, 1); + specialElCache.splice(i, 1); } } }, @@ -5399,7 +5399,7 @@ Ext.EventManager = function(){ delete Ext.elCache; delete Ext.Element._flyweights; - + var c, conn, tid, @@ -5412,9 +5412,9 @@ Ext.EventManager = function(){ } } }, - + onDocumentReady : function(fn, scope, options){ - if (Ext.isReady) { + if (Ext.isReady) { docReadyEvent || (docReadyEvent = new Ext.util.Event()); docReadyEvent.addListener(fn, scope, options); docReadyEvent.fire(); @@ -5429,12 +5429,12 @@ Ext.EventManager = function(){ } }, - + fireDocReady : fireDocReady }; - + pub.on = pub.addListener; - + pub.un = pub.removeListener; pub.stoppedMouseDownEvent = new Ext.util.Event(); @@ -5447,16 +5447,16 @@ Ext.onReady = Ext.EventManager.onDocumentReady; (function(){ var initExtCss = function() { - + var bd = document.body || document.getElementsByTagName('body')[0]; if (!bd) { return false; } var cls = []; - + if (Ext.isIE) { - + if (!Ext.isIE10p) { cls.push('ext-ie'); } @@ -5472,7 +5472,7 @@ Ext.onReady = Ext.EventManager.onDocumentReady; cls.push('ext-ie10'); } } - + if (Ext.isGecko) { if (Ext.isGecko2) { cls.push('ext-gecko2'); @@ -5480,11 +5480,11 @@ Ext.onReady = Ext.EventManager.onDocumentReady; cls.push('ext-gecko3'); } } - + if (Ext.isOpera) { cls.push('ext-opera'); } - + if (Ext.isWebKit) { cls.push('ext-webkit'); } @@ -5502,7 +5502,7 @@ Ext.onReady = Ext.EventManager.onDocumentReady; cls.push("ext-linux"); } - + if (Ext.isStrict || Ext.isBorderBox) { var p = bd.parentNode; if (p) { @@ -5515,8 +5515,8 @@ Ext.onReady = Ext.EventManager.onDocumentReady; Ext.fly(p, '_internal').addClass(((Ext.isStrict && Ext.isIE ) || (!Ext.enableForcedBoxModel && !Ext.isIE)) ? ' ext-strict' : ' ext-border-box'); } } - - + + if (Ext.enableForcedBoxModel && !Ext.isIE) { Ext.isForcedBorderBox = true; cls.push("ext-forced-border-box"); @@ -5533,15 +5533,15 @@ Ext.onReady = Ext.EventManager.onDocumentReady; (function(){ - + var supports = Ext.apply(Ext.supports, { - + correctRightMargin: true, - + correctTransparentColor: true, - + cssFloat: true }); @@ -5579,20 +5579,20 @@ Ext.onReady = Ext.EventManager.onDocumentReady; Ext.EventObject = function(){ var E = Ext.lib.Event, clickRe = /(dbl)?click/, - + safariKeys = { - 3 : 13, - 63234 : 37, - 63235 : 39, - 63232 : 38, - 63233 : 40, - 63276 : 33, - 63277 : 34, - 63272 : 46, - 63273 : 36, - 63275 : 35 - }, - + 3 : 13, + 63234 : 37, + 63235 : 39, + 63232 : 38, + 63233 : 40, + 63276 : 33, + 63277 : 34, + 63272 : 46, + 63273 : 36, + 63275 : 35 + }, + btnMap = Ext.isIE ? {1:0,4:1,2:2} : {0:0,1:1,2:2}; Ext.EventObjectImpl = function(e){ @@ -5602,30 +5602,30 @@ Ext.EventObject = function(){ }; Ext.EventObjectImpl.prototype = { - + setEvent : function(e){ var me = this; - if(e == me || (e && e.browserEvent)){ + if(e == me || (e && e.browserEvent)){ return e; } me.browserEvent = e; if(e){ - + me.button = e.button ? btnMap[e.button] : (e.which ? e.which - 1 : -1); if(clickRe.test(e.type) && me.button == -1){ me.button = 0; } me.type = e.type; me.shiftKey = e.shiftKey; - + me.ctrlKey = e.ctrlKey || e.metaKey || false; me.altKey = e.altKey; - + me.keyCode = e.keyCode; me.charCode = e.charCode; - + me.target = E.getTarget(e); - + me.xy = E.getXY(e); }else{ me.button = -1; @@ -5640,7 +5640,7 @@ Ext.EventObject = function(){ return me; }, - + stopEvent : function(){ var me = this; if(me.browserEvent){ @@ -5651,14 +5651,14 @@ Ext.EventObject = function(){ } }, - + preventDefault : function(){ if(this.browserEvent){ E.preventDefault(this.browserEvent); } }, - + stopPropagation : function(){ var me = this; if(me.browserEvent){ @@ -5669,59 +5669,59 @@ Ext.EventObject = function(){ } }, - + getCharCode : function(){ return this.charCode || this.keyCode; }, - + getKey : function(){ return this.normalizeKey(this.keyCode || this.charCode); }, - + normalizeKey: function(k){ return Ext.isSafari ? (safariKeys[k] || k) : k; }, - + getPageX : function(){ return this.xy[0]; }, - + getPageY : function(){ return this.xy[1]; }, - + getXY : function(){ return this.xy; }, - + getTarget : function(selector, maxDepth, returnEl){ return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : (returnEl ? Ext.get(this.target) : this.target); }, - + getRelatedTarget : function(){ return this.browserEvent ? E.getRelatedTarget(this.browserEvent) : null; }, - + getWheelDelta : function(){ var e = this.browserEvent; var delta = 0; - if(e.wheelDelta){ + if(e.wheelDelta){ delta = e.wheelDelta/120; - }else if(e.detail){ + }else if(e.detail){ delta = -e.detail/3; } return delta; }, - + within : function(el, related, allowEl){ if(el){ var t = this[related ? "getRelatedTarget" : "getTarget"](); @@ -5734,7 +5734,7 @@ Ext.EventObject = function(){ return new Ext.EventObjectImpl(); }(); Ext.Loader = Ext.apply({}, { - + load: function(fileList, callback, scope, preserveOrder) { var scope = scope || this, head = document.getElementsByTagName("head")[0], @@ -5742,19 +5742,19 @@ Ext.Loader = Ext.apply({}, { numFiles = fileList.length, loadedFiles = 0, me = this; - - + + var loadFileIndex = function(index) { head.appendChild( me.buildScriptTag(fileList[index], onFileLoaded) ); }; - - + + var onFileLoaded = function() { loadedFiles ++; - - + + if (numFiles == loadedFiles && typeof callback == 'function') { callback.call(scope); } else { @@ -5763,28 +5763,28 @@ Ext.Loader = Ext.apply({}, { } } }; - + if (preserveOrder === true) { loadFileIndex.call(this, 0); } else { - + Ext.each(fileList, function(file, index) { fragment.appendChild( this.buildScriptTag(file, onFileLoaded) - ); + ); }, this); - + head.appendChild(fragment); } }, - - + + buildScriptTag: function(filename, callback) { var script = document.createElement('script'); script.type = "text/javascript"; script.src = filename; - - + + if (script.readyState) { script.onreadystatechange = function() { if (script.readyState == "loaded" || script.readyState == "complete") { @@ -5794,16 +5794,16 @@ Ext.Loader = Ext.apply({}, { }; } else { script.onload = callback; - } - + } + return script; } }); Ext.ns("Ext.grid", "Ext.list", "Ext.dd", "Ext.tree", "Ext.form", "Ext.menu", - "Ext.state", "Ext.layout.boxOverflow", "Ext.app", "Ext.ux", "Ext.chart", "Ext.direct", "Ext.slider"); - + "Ext.state", "Ext.layout.boxOverflow", "Ext.app", "Ext.ux", "Ext.direct", "Ext.slider"); + Ext.apply(Ext, function(){ var E = Ext, @@ -5811,10 +5811,10 @@ Ext.apply(Ext, function(){ scrollWidth = null; return { - + emptyFn : function(){}, - + BLANK_IMAGE_URL : Ext.isIE6 || Ext.isIE7 || Ext.isAir ? 'http:/' + '/www.extjs.com/s.gif' : 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', @@ -5823,23 +5823,23 @@ Ext.apply(Ext, function(){ return Ext.extend(supr, fn(supr.prototype)); }, - + getDoc : function(){ return Ext.get(document); }, - + num : function(v, defaultValue){ v = Number(Ext.isEmpty(v) || Ext.isArray(v) || typeof v == 'boolean' || (typeof v == 'string' && v.trim().length == 0) ? NaN : v); return isNaN(v) ? defaultValue : v; }, - + value : function(v, defaultValue, allowBlank){ return Ext.isEmpty(v, allowBlank) ? defaultValue : v; }, - + escapeRe : function(s) { return s.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); }, @@ -5848,19 +5848,19 @@ Ext.apply(Ext, function(){ o[name] = o[name].createSequence(fn, scope); }, - + addBehaviors : function(o){ if(!Ext.isReady){ Ext.onReady(function(){ Ext.addBehaviors(o); }); } else { - var cache = {}, + var cache = {}, parts, b, s; for (b in o) { - if ((parts = b.split('@'))[1]) { + if ((parts = b.split('@'))[1]) { s = parts[0]; if(!cache[s]){ cache[s] = Ext.select(s); @@ -5872,28 +5872,28 @@ Ext.apply(Ext, function(){ } }, - + getScrollBarWidth: function(force){ if(!Ext.isReady){ return 0; } if(force === true || scrollWidth === null){ - + var div = Ext.getBody().createChild('
'), child = div.child('div', true); var w1 = child.offsetWidth; div.setStyle('overflow', (Ext.isWebKit || Ext.isGecko) ? 'auto' : 'scroll'); var w2 = child.offsetWidth; div.remove(); - + scrollWidth = w1 - w2 + 2; } return scrollWidth; }, - + combine : function(){ var as = arguments, l = as.length, r = []; for(var i = 0; i < l; i++){ @@ -5909,7 +5909,7 @@ Ext.apply(Ext, function(){ return r; }, - + copyTo : function(dest, source, names){ if(typeof names == 'string'){ names = names.split(/[,;\s]/); @@ -5922,7 +5922,7 @@ Ext.apply(Ext, function(){ return dest; }, - + destroy : function(){ Ext.each(arguments, function(arg){ if(arg){ @@ -5937,7 +5937,7 @@ Ext.apply(Ext, function(){ }, this); }, - + destroyMembers : function(o, arg1, arg2, etc){ for(var i = 1, a = arguments, len = a.length; i < len; i++) { Ext.destroy(o[a[i]]); @@ -5945,7 +5945,7 @@ Ext.apply(Ext, function(){ } }, - + clean : function(arr){ var ret = []; Ext.each(arr, function(v){ @@ -5956,7 +5956,7 @@ Ext.apply(Ext, function(){ return ret; }, - + unique : function(arr){ var ret = [], collect = {}; @@ -5970,7 +5970,7 @@ Ext.apply(Ext, function(){ return ret; }, - + flatten : function(arr){ var worker = []; function rFlatten(a) { @@ -5986,7 +5986,7 @@ Ext.apply(Ext, function(){ return rFlatten(arr); }, - + min : function(arr, comp){ var ret = arr[0]; comp = comp || function(a,b){ return a < b ? -1 : 1; }; @@ -5996,7 +5996,7 @@ Ext.apply(Ext, function(){ return ret; }, - + max : function(arr, comp){ var ret = arr[0]; comp = comp || function(a,b){ return a > b ? 1 : -1; }; @@ -6006,12 +6006,12 @@ Ext.apply(Ext, function(){ return ret; }, - + mean : function(arr){ return arr.length > 0 ? Ext.sum(arr) / arr.length : undefined; }, - + sum : function(arr){ var ret = 0; Ext.each(arr, function(v) { @@ -6020,7 +6020,7 @@ Ext.apply(Ext, function(){ return ret; }, - + partition : function(arr, truth){ var ret = [[],[]]; Ext.each(arr, function(v, i, a) { @@ -6029,7 +6029,7 @@ Ext.apply(Ext, function(){ return ret; }, - + invoke : function(arr, methodName){ var ret = [], args = Array.prototype.slice.call(arguments, 2); @@ -6043,7 +6043,7 @@ Ext.apply(Ext, function(){ return ret; }, - + pluck : function(arr, prop){ var ret = []; Ext.each(arr, function(v) { @@ -6052,7 +6052,7 @@ Ext.apply(Ext, function(){ return ret; }, - + zip : function(){ var parts = Ext.partition(arguments, function( val ){ return typeof val != 'function'; }), arrs = parts[0], @@ -6073,16 +6073,16 @@ Ext.apply(Ext, function(){ return ret; }, - + getCmp : function(id){ return Ext.ComponentMgr.get(id); }, - + useShims: E.isIE6 || (E.isMac && E.isGecko2), - - + + type : function(o){ if(o === undefined || o === null){ return false; @@ -6114,7 +6114,7 @@ Ext.apply(Ext, function(){ o[name] = o[name].createInterceptor(fn, scope); }, - + callback : function(cb, scope, args, delay){ if(typeof cb == 'function'){ if(delay){ @@ -6129,7 +6129,7 @@ Ext.apply(Ext, function(){ Ext.apply(Function.prototype, { - + createSequence : function(fcn, scope){ var method = this; return (typeof fcn != 'function') ? @@ -6146,12 +6146,12 @@ Ext.apply(Function.prototype, { Ext.applyIf(String, { - + escape : function(string) { return string.replace(/('|\\)/g, "\\$1"); }, - + leftPad : function (val, size, ch) { var result = String(val); if(!ch) { @@ -6184,7 +6184,7 @@ Date.prototype.getElapsed = function(date) { Ext.applyIf(Number.prototype, { - + constrain : function(min, max){ return Math.min(Math.max(this, min), max); } @@ -6227,7 +6227,7 @@ Ext.lib.Dom.getRegion = function(el) { return new Ext.lib.Region(t, r, b, l); } }, - + union : function(region) { var me = this, t = Math.min(me.top, region.top), @@ -6286,7 +6286,7 @@ function(){ beforeend = 'beforeend', confRe = /tag|children|cn|html$/i; - + function doInsert(el, o, returnElement, pos, sibling, append){ el = Ext.getDom(el); var newNode; @@ -6303,8 +6303,8 @@ function(){ return returnElement ? Ext.get(newNode, true) : newNode; } - - + + function createDom(o, parentNode){ var el, doc = document, @@ -6313,16 +6313,16 @@ function(){ val, cn; - if (Ext.isArray(o)) { - el = doc.createDocumentFragment(); + if (Ext.isArray(o)) { + el = doc.createDocumentFragment(); for (var i = 0, l = o.length; i < l; i++) { createDom(o[i], el); } - } else if (typeof o == 'string') { + } else if (typeof o == 'string') { el = doc.createTextNode(o); } else { el = doc.createElement( o.tag || 'div' ); - useSet = !!el.setAttribute; + useSet = !!el.setAttribute; for (var attr in o) { if(!confRe.test(attr)){ val = o[attr]; @@ -6352,47 +6352,47 @@ function(){ } pub = { - + createTemplate : function(o){ var html = Ext.DomHelper.createHtml(o); return new Ext.Template(html); }, - + useDom : false, - + insertBefore : function(el, o, returnElement){ return doInsert(el, o, returnElement, beforebegin); }, - + insertAfter : function(el, o, returnElement){ return doInsert(el, o, returnElement, afterend, 'nextSibling'); }, - + insertFirst : function(el, o, returnElement){ return doInsert(el, o, returnElement, afterbegin, 'firstChild'); }, - + append: function(el, o, returnElement){ return doInsert(el, o, returnElement, beforeend, '', true); }, - + createDom: createDom }; return pub; }()); Ext.apply(Ext.Template.prototype, { - + disableFormats : false, - - + + re : /\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, argsRe : /^\s*['"](.*)["']\s*$/, compileARe : /\\/g, @@ -6520,7 +6520,7 @@ sayHiToFriend('Brian'); // alerts "Hi, Brian" * If omitted, defaults to the scope in which the original function is called or the browser window. * @return {Function} The new function */ - createInterceptor: function(origFn, newFn, scope) { + createInterceptor: function(origFn, newFn, scope) { var method = origFn; if (!Ext.isFunction(newFn)) { return origFn; @@ -6634,7 +6634,7 @@ Ext.defer(function(){ * Create a combined function call sequence of the original function + the passed function. * The resulting function returns the results of the original function. * The passed fcn is called with the parameters of the original function. Example usage: - * + * var sayHi = function(name){ alert('Hi, ' + name); @@ -6669,7 +6669,7 @@ sayGoodbye('Fred'); // both alerts show }; /** - * Shorthand for {@link Ext.util.Functions#defer} + * Shorthand for {@link Ext.util.Functions#defer} * @param {Function} fn The function to defer. * @param {Number} millis The number of milliseconds for the setTimeout call (if less than or equal to 0 the function is executed immediately) * @param {Object} scope (optional) The scope (this reference) in which the function is executed. @@ -6685,7 +6685,7 @@ sayGoodbye('Fred'); // both alerts show Ext.defer = Ext.util.Functions.defer; /** - * Shorthand for {@link Ext.util.Functions#createInterceptor} + * Shorthand for {@link Ext.util.Functions#createInterceptor} * @param {Function} origFn The original function. * @param {Function} newFn The function to call before the original * @param {Object} scope (optional) The scope (this reference) in which the passed function is executed. @@ -6854,12 +6854,12 @@ Ext.apply(Ext.util.Observable.prototype, function(){ * access the required target more quickly.

*

Example:


 Ext.override(Ext.form.Field, {
-    
+
     initComponent : Ext.form.Field.prototype.initComponent.createSequence(function() {
         this.enableBubble('change');
     }),
 
-    
+
     getBubbleTarget : function() {
         if (!this.formPanel) {
             this.formPanel = this.findParentByType('form');
@@ -6875,7 +6875,7 @@ var myForm = new Ext.formPanel({
     }],
     listeners: {
         change: function() {
-            
+
             myForm.header.setStyle('color', 'red');
         }
     }
@@ -6933,9 +6933,9 @@ Ext.apply(Ext.EventManager, function(){
        unload = Ext.EventManager._unload,
        curWidth = 0,
        curHeight = 0,
-       
-       
-       
+
+
+
        useKeydown = Ext.isWebKit ?
                    Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1]) >= 525 :
                    !((Ext.isGecko && !Ext.isWindows) || Ext.isOpera);
@@ -6943,21 +6943,21 @@ Ext.apply(Ext.EventManager, function(){
    return {
        _unload: function(){
            Ext.EventManager.un(window, "resize", this.fireWindowResize, this);
-           unload.call(Ext.EventManager);    
+           unload.call(Ext.EventManager);
        },
-       
-       
+
+
        doResizeEvent: function(){
            var h = D.getViewHeight(),
                w = D.getViewWidth();
 
-            
+
             if(curHeight != h || curWidth != w){
                resizeEvent.fire(curWidth = w, curHeight = h);
             }
        },
 
-       
+
        onWindowResize : function(fn, scope, options){
            if(!resizeEvent){
                resizeEvent = new Ext.util.Event();
@@ -6967,14 +6967,14 @@ Ext.apply(Ext.EventManager, function(){
            resizeEvent.addListener(fn, scope, options);
        },
 
-       
+
        fireWindowResize : function(){
            if(resizeEvent){
                resizeTask.delay(100);
            }
        },
 
-       
+
        onTextResize : function(fn, scope, options){
            if(!textEvent){
                textEvent = new Ext.util.Event();
@@ -6992,33 +6992,33 @@ Ext.apply(Ext.EventManager, function(){
            textEvent.addListener(fn, scope, options);
        },
 
-       
+
        removeResizeListener : function(fn, scope){
            if(resizeEvent){
                resizeEvent.removeListener(fn, scope);
            }
        },
 
-       
+
        fireResize : function(){
            if(resizeEvent){
                resizeEvent.fire(D.getViewWidth(), D.getViewHeight());
            }
        },
 
-        
+
        textResizeInterval : 50,
 
-       
+
        ieDeferSrc : false,
-       
-       
+
+
        getKeyEvent : function(){
            return useKeydown ? 'keydown' : 'keypress';
        },
 
-       
-       
+
+
        useKeydown: useKeydown
    };
 }());
@@ -7027,189 +7027,189 @@ Ext.EventManager.on = Ext.EventManager.addListener;
 
 
 Ext.apply(Ext.EventObjectImpl.prototype, {
-   
+
    BACKSPACE: 8,
-   
+
    TAB: 9,
-   
+
    NUM_CENTER: 12,
-   
+
    ENTER: 13,
-   
+
    RETURN: 13,
-   
+
    SHIFT: 16,
-   
+
    CTRL: 17,
-   CONTROL : 17, 
-   
+   CONTROL : 17,
+
    ALT: 18,
-   
+
    PAUSE: 19,
-   
+
    CAPS_LOCK: 20,
-   
+
    ESC: 27,
-   
+
    SPACE: 32,
-   
+
    PAGE_UP: 33,
-   PAGEUP : 33, 
-   
+   PAGEUP : 33,
+
    PAGE_DOWN: 34,
-   PAGEDOWN : 34, 
-   
+   PAGEDOWN : 34,
+
    END: 35,
-   
+
    HOME: 36,
-   
+
    LEFT: 37,
-   
+
    UP: 38,
-   
+
    RIGHT: 39,
-   
+
    DOWN: 40,
-   
+
    PRINT_SCREEN: 44,
-   
+
    INSERT: 45,
-   
+
    DELETE: 46,
-   
+
    ZERO: 48,
-   
+
    ONE: 49,
-   
+
    TWO: 50,
-   
+
    THREE: 51,
-   
+
    FOUR: 52,
-   
+
    FIVE: 53,
-   
+
    SIX: 54,
-   
+
    SEVEN: 55,
-   
+
    EIGHT: 56,
-   
+
    NINE: 57,
-   
+
    A: 65,
-   
+
    B: 66,
-   
+
    C: 67,
-   
+
    D: 68,
-   
+
    E: 69,
-   
+
    F: 70,
-   
+
    G: 71,
-   
+
    H: 72,
-   
+
    I: 73,
-   
+
    J: 74,
-   
+
    K: 75,
-   
+
    L: 76,
-   
+
    M: 77,
-   
+
    N: 78,
-   
+
    O: 79,
-   
+
    P: 80,
-   
+
    Q: 81,
-   
+
    R: 82,
-   
+
    S: 83,
-   
+
    T: 84,
-   
+
    U: 85,
-   
+
    V: 86,
-   
+
    W: 87,
-   
+
    X: 88,
-   
+
    Y: 89,
-   
+
    Z: 90,
-   
+
    CONTEXT_MENU: 93,
-   
+
    NUM_ZERO: 96,
-   
+
    NUM_ONE: 97,
-   
+
    NUM_TWO: 98,
-   
+
    NUM_THREE: 99,
-   
+
    NUM_FOUR: 100,
-   
+
    NUM_FIVE: 101,
-   
+
    NUM_SIX: 102,
-   
+
    NUM_SEVEN: 103,
-   
+
    NUM_EIGHT: 104,
-   
+
    NUM_NINE: 105,
-   
+
    NUM_MULTIPLY: 106,
-   
+
    NUM_PLUS: 107,
-   
+
    NUM_MINUS: 109,
-   
+
    NUM_PERIOD: 110,
-   
+
    NUM_DIVISION: 111,
-   
+
    F1: 112,
-   
+
    F2: 113,
-   
+
    F3: 114,
-   
+
    F4: 115,
-   
+
    F5: 116,
-   
+
    F6: 117,
-   
+
    F7: 118,
-   
+
    F8: 119,
-   
+
    F9: 120,
-   
+
    F10: 121,
-   
+
    F11: 122,
-   
+
    F12: 123,
 
-   
+
    isNavKeyPress : function(){
        var me = this,
            k = this.normalizeKey(me.keyCode);
-       return (k >= 33 && k <= 40) ||  
+       return (k >= 33 && k <= 40) ||
        k == me.RETURN ||
        k == me.TAB ||
        k == me.ESC;
@@ -7219,22 +7219,22 @@ Ext.apply(Ext.EventObjectImpl.prototype, {
        var k = this.normalizeKey(this.keyCode);
        return (this.type == 'keypress' && this.ctrlKey) ||
        this.isNavKeyPress() ||
-       (k == this.BACKSPACE) || 
-       (k >= 16 && k <= 20) || 
-       (k >= 44 && k <= 46);   
+       (k == this.BACKSPACE) ||
+       (k >= 16 && k <= 20) ||
+       (k >= 44 && k <= 46);
    },
 
    getPoint : function(){
        return new Ext.lib.Point(this.xy[0], this.xy[1]);
    },
 
-   
+
    hasModifier : function(){
        return ((this.ctrlKey || this.altKey) || this.shiftKey);
    }
 });
 Ext.Element.addMethods({
-    
+
     swallowEvent : function(eventName, preventDefault) {
         var me = this;
         function fn(e) {
@@ -7243,7 +7243,7 @@ Ext.Element.addMethods({
                 e.preventDefault();
             }
         }
-        
+
         if (Ext.isArray(eventName)) {
             Ext.each(eventName, function(e) {
                  me.on(e, fn);
@@ -7254,14 +7254,14 @@ Ext.Element.addMethods({
         return me;
     },
 
-    
+
     relayEvent : function(eventName, observable) {
         this.on(eventName, function(e) {
             observable.fireEvent(eventName, e);
         });
     },
 
-    
+
     clean : function(forceReclean) {
         var me  = this,
             dom = me.dom,
@@ -7281,25 +7281,25 @@ Ext.Element.addMethods({
             }
             n = nx;
         }
-        
+
         Ext.Element.data(dom, 'isCleaned', true);
         return me;
     },
 
-    
+
     load : function() {
         var updateManager = this.getUpdater();
         updateManager.update.apply(updateManager, arguments);
-        
+
         return this;
     },
 
-    
+
     getUpdater : function() {
         return this.updateManager || (this.updateManager = new Ext.Updater(this));
     },
 
-    
+
     update : function(html, loadScripts, callback) {
         if (!this.dom) {
             return this;
@@ -7351,12 +7351,12 @@ Ext.Element.addMethods({
                     }
                 }
             }
-            
+
             el = DOC.getElementById(id);
             if (el) {
                 Ext.removeNode(el);
             }
-            
+
             if (typeof callback == 'function') {
                 callback();
             }
@@ -7365,14 +7365,14 @@ Ext.Element.addMethods({
         return this;
     },
 
-    
+
     removeAllListeners : function() {
         this.removeAnchor();
         Ext.EventManager.removeAll(this.dom);
         return this;
     },
 
-    
+
     createProxy : function(config, renderTo, matchBox) {
         config = (typeof config == 'object') ? config : {tag : "div", cls: config};
 
@@ -7380,7 +7380,7 @@ Ext.Element.addMethods({
             proxy = renderTo ? Ext.DomHelper.append(renderTo, config, true) :
                                Ext.DomHelper.insertBefore(me.dom, config, true);
 
-        if (matchBox && me.setBox && me.getBox) { 
+        if (matchBox && me.setBox && me.getBox) {
            proxy.setBox(me.getBox());
         }
         return proxy;
@@ -7390,18 +7390,18 @@ Ext.Element.addMethods({
 Ext.Element.prototype.getUpdateManager = Ext.Element.prototype.getUpdater;
 
 Ext.Element.addMethods({
-    
+
     getAnchorXY : function(anchor, local, s){
-        
-        
+
+
 		anchor = (anchor || "tl").toLowerCase();
         s = s || {};
-        
-        var me = this,        
+
+        var me = this,
         	vp = me.dom == document.body || me.dom == document,
         	w = s.width || vp ? Ext.lib.Dom.getViewWidth() : me.getWidth(),
-        	h = s.height || vp ? Ext.lib.Dom.getViewHeight() : me.getHeight(),         	        	
-        	xy,       	
+        	h = s.height || vp ? Ext.lib.Dom.getViewHeight() : me.getHeight(),
+        	xy,
         	r = Math.round,
         	o = me.getXY(),
         	scroll = me.getScroll(),
@@ -7413,18 +7413,18 @@ Ext.Element.addMethods({
 	        	l  : [0, r(h * 0.5)],
 	        	r  : [w, r(h * 0.5)],
 	        	b  : [r(w * 0.5), h],
-	        	tl : [0, 0],	
+	        	tl : [0, 0],
 	        	bl : [0, h],
 	        	br : [w, h],
 	        	tr : [w, 0]
         	};
-        
-        xy = hash[anchor];	
-        return [xy[0] + extraX, xy[1] + extraY]; 
+
+        xy = hash[anchor];
+        return [xy[0] + extraX, xy[1] + extraY];
     },
 
-    
-    anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){        
+
+    anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){
 	    var me = this,
             dom = me.dom,
             scroll = !Ext.isEmpty(monitorScroll),
@@ -7433,8 +7433,8 @@ Ext.Element.addMethods({
                 Ext.callback(callback, Ext.fly(dom));
             },
             anchor = this.getAnchor();
-            
-        
+
+
         this.removeAnchor();
         Ext.apply(anchor, {
             fn: action,
@@ -7442,20 +7442,20 @@ Ext.Element.addMethods({
         });
 
         Ext.EventManager.onWindowResize(action, null);
-        
+
         if(scroll){
             Ext.EventManager.on(window, 'scroll', action, null,
                 {buffer: !isNaN(monitorScroll) ? monitorScroll : 50});
         }
-        action.call(me); 
+        action.call(me);
         return me;
     },
-    
-    
+
+
     removeAnchor : function(){
         var me = this,
             anchor = this.getAnchor();
-            
+
         if(anchor && anchor.fn){
             Ext.EventManager.removeResizeListener(anchor.fn);
             if(anchor.scroll){
@@ -7465,8 +7465,8 @@ Ext.Element.addMethods({
         }
         return me;
     },
-    
-    
+
+
     getAnchor : function(){
         var data = Ext.Element.data,
             dom = this.dom;
@@ -7474,38 +7474,38 @@ Ext.Element.addMethods({
                 return;
             }
             var anchor = data(dom, '_anchor');
-            
+
         if(!anchor){
             anchor = data(dom, '_anchor', {});
         }
         return anchor;
     },
 
-    
-    getAlignToXY : function(el, p, o){	    
+
+    getAlignToXY : function(el, p, o){
         el = Ext.get(el);
-        
+
         if(!el || !el.dom){
             throw "Element.alignToXY with an element that doesn't exist";
         }
-        
+
         o = o || [0,0];
-        p = (!p || p == "?" ? "tl-bl?" : (!(/-/).test(p) && p !== "" ? "tl-" + p : p || "tl-bl")).toLowerCase();       
-                
+        p = (!p || p == "?" ? "tl-bl?" : (!(/-/).test(p) && p !== "" ? "tl-" + p : p || "tl-bl")).toLowerCase();
+
         var me = this,
         	d = me.dom,
         	a1,
         	a2,
         	x,
         	y,
-        	
+
         	w,
         	h,
         	r,
-        	dw = Ext.lib.Dom.getViewWidth() -10, 
-        	dh = Ext.lib.Dom.getViewHeight()-10, 
+        	dw = Ext.lib.Dom.getViewWidth() -10,
+        	dh = Ext.lib.Dom.getViewHeight()-10,
         	p1y,
-        	p1x,        	
+        	p1x,
         	p2y,
         	p2x,
         	swapY,
@@ -7515,41 +7515,41 @@ Ext.Element.addMethods({
         	docBody = doc.body,
         	scrollX = (docElement.scrollLeft || docBody.scrollLeft || 0)+5,
         	scrollY = (docElement.scrollTop || docBody.scrollTop || 0)+5,
-        	c = false, 
-        	p1 = "", 
+        	c = false,
+        	p1 = "",
         	p2 = "",
         	m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/);
-        
+
         if(!m){
            throw "Element.alignTo with an invalid alignment " + p;
         }
-        
-        p1 = m[1]; 
-        p2 = m[2]; 
+
+        p1 = m[1];
+        p2 = m[2];
         c = !!m[3];
 
-        
-        
+
+
         a1 = me.getAnchorXY(p1, true);
         a2 = el.getAnchorXY(p2, false);
 
         x = a2[0] - a1[0] + o[0];
         y = a2[1] - a1[1] + o[1];
 
-        if(c){    
+        if(c){
 	       w = me.getWidth();
            h = me.getHeight();
-           r = el.getRegion();       
-           
-           
-           
+           r = el.getRegion();
+
+
+
            p1y = p1.charAt(0);
            p1x = p1.charAt(p1.length-1);
            p2y = p2.charAt(0);
            p2x = p2.charAt(p2.length-1);
            swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t"));
-           swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r"));          
-           
+           swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r"));
+
 
            if (x + w > dw + scrollX) {
                 x = swapX ? r.left-w : dw+scrollX-w;
@@ -7567,20 +7567,20 @@ Ext.Element.addMethods({
         return [x,y];
     },
 
-    
+
     alignTo : function(element, position, offsets, animate){
 	    var me = this;
         return me.setXY(me.getAlignToXY(element, position, offsets),
           		        me.preanim && !!animate ? me.preanim(arguments, 3) : false);
     },
-    
-    
+
+
     adjustForConstraints : function(xy, parent, offsets){
         return this.getConstrainToXY(parent || document, false, offsets, xy) ||  xy;
     },
 
-    
-    getConstrainToXY : function(el, local, offsets, proposedXY){   
+
+    getConstrainToXY : function(el, local, offsets, proposedXY){
 	    var os = {top:0, left:0, bottom:0, right: 0};
 
         return function(el, local, offsets, proposedXY){
@@ -7614,13 +7614,13 @@ Ext.Element.addMethods({
                 xy = proposedXY || (!local ? this.getXY() : [this.getLeft(true), this.getTop(true)]),
                 x = xy[0], y = xy[1],
                 offset = this.getConstrainOffset(),
-                w = this.dom.offsetWidth + offset, 
+                w = this.dom.offsetWidth + offset,
                 h = this.dom.offsetHeight + offset;
 
-            
+
             var moved = false;
 
-            
+
             if((x + w) > vr){
                 x = vr - w;
                 moved = true;
@@ -7629,7 +7629,7 @@ Ext.Element.addMethods({
                 y = vb - h;
                 moved = true;
             }
-            
+
             if(x < vx){
                 x = vx;
                 moved = true;
@@ -7641,9 +7641,6 @@ Ext.Element.addMethods({
             return moved ? [x, y] : false;
         };
     }(),
-	    
-	    
-	        
 
 
 
@@ -7697,24 +7694,27 @@ Ext.Element.addMethods({
 
 
 
-    
+
+
+
+
     getConstrainOffset : function(){
         return 0;
     },
-    
-    
+
+
     getCenterXY : function(){
         return this.getAlignToXY(document, 'c-c');
     },
 
-    
+
     center : function(centerIn){
-        return this.alignTo(centerIn || document, 'c-c');        
-    }    
+        return this.alignTo(centerIn || document, 'c-c');
+    }
 });
 
 Ext.Element.addMethods({
-    
+
     select : function(selector, unique){
         return Ext.Element.select(selector, unique, this.dom);
     }
@@ -7723,15 +7723,15 @@ Ext.apply(Ext.Element.prototype, function() {
 	var GETDOM = Ext.getDom,
 		GET = Ext.get,
 		DH = Ext.DomHelper;
-	
-	return {	
-		
+
+	return {
+
 	    insertSibling: function(el, where, returnDom){
 	        var me = this,
 	        	rt,
                 isAfter = (where || 'before').toLowerCase() == 'after',
                 insertEl;
-	        	
+
 	        if(Ext.isArray(el)){
                 insertEl = me;
 	            Ext.each(el, function(e) {
@@ -7742,9 +7742,9 @@ Ext.apply(Ext.Element.prototype, function() {
 	            });
 	            return rt;
 	        }
-	                
+
 	        el = el || {};
-	       	
+
             if(el.nodeType || el.dom){
                 rt = me.dom.parentNode.insertBefore(GETDOM(el), isAfter ? me.dom.nextSibling : me.dom);
                 if (!returnDom) {
@@ -7753,7 +7753,7 @@ Ext.apply(Ext.Element.prototype, function() {
             }else{
                 if (isAfter && !me.dom.nextSibling) {
                     rt = DH.append(me.dom.parentNode, el, !returnDom);
-                } else {                    
+                } else {
                     rt = DH[isAfter ? 'insertAfter' : 'insertBefore'](me.dom, el, !returnDom);
                 }
             }
@@ -7769,13 +7769,13 @@ Ext.Element.addMethods(function(){
     var INTERNAL = "_internal",
         pxMatch = /(\d+\.?\d+)px/;
     return {
-        
+
         applyStyles : function(style){
             Ext.DomHelper.applyStyles(this.dom, style);
             return this;
         },
 
-        
+
         getStyles : function(){
             var ret = {};
             Ext.each(arguments, function(v) {
@@ -7785,10 +7785,10 @@ Ext.Element.addMethods(function(){
             return ret;
         },
 
-        
+
         setOverflow : function(v){
             var dom = this.dom;
-            if(v=='auto' && Ext.isMac && Ext.isGecko2){ 
+            if(v=='auto' && Ext.isMac && Ext.isGecko2){
                 dom.style.overflow = 'hidden';
                 (function(){dom.style.overflow = 'auto';}).defer(1);
             }else{
@@ -7796,18 +7796,18 @@ Ext.Element.addMethods(function(){
             }
         },
 
-       
+
         boxWrap : function(cls){
             cls = cls || 'x-box';
-            var el = Ext.get(this.insertHtml("beforeBegin", "
" + String.format(Ext.Element.boxMarkup, cls) + "
")); + var el = Ext.get(this.insertHtml("beforeBegin", "
" + String.format(Ext.Element.boxMarkup, cls) + "
")); Ext.DomQuery.selectNode('.' + cls + '-mc', el.dom).appendChild(this.dom); return el; }, - + setSize : function(width, height, animate){ var me = this; - if(typeof width == 'object'){ + if(typeof width == 'object'){ height = width.height; width = width.width; } @@ -7822,7 +7822,7 @@ Ext.Element.addMethods(function(){ return me; }, - + getComputedHeight : function(){ var me = this, h = Math.max(me.dom.offsetHeight, me.dom.clientHeight); @@ -7835,7 +7835,7 @@ Ext.Element.addMethods(function(){ return h; }, - + getComputedWidth : function(){ var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth); if(!w){ @@ -7847,12 +7847,12 @@ Ext.Element.addMethods(function(){ return w; }, - + getFrameWidth : function(sides, onlyContentBox){ return onlyContentBox && this.isBorderBox() ? 0 : (this.getPadding(sides) + this.getBorderWidth(sides)); }, - + addClassOnOver : function(className){ this.hover( function(){ @@ -7865,7 +7865,7 @@ Ext.Element.addMethods(function(){ return this; }, - + addClassOnFocus : function(className){ this.on("focus", function(){ Ext.fly(this, INTERNAL).addClass(className); @@ -7876,7 +7876,7 @@ Ext.Element.addMethods(function(){ return this; }, - + addClassOnClick : function(className){ var dom = this.dom; this.on("mousedown", function(){ @@ -7891,14 +7891,14 @@ Ext.Element.addMethods(function(){ return this; }, - + getViewSize : function(){ var doc = document, d = this.dom, isDoc = (d == doc || d == doc.body); - + if (isDoc) { var extdom = Ext.lib.Dom; return { @@ -7906,7 +7906,7 @@ Ext.Element.addMethods(function(){ height : extdom.getViewHeight() }; - + } else { return { width : d.clientWidth, @@ -7915,7 +7915,7 @@ Ext.Element.addMethods(function(){ } }, - + getStyleSize : function(){ var me = this, @@ -7925,7 +7925,7 @@ Ext.Element.addMethods(function(){ isDoc = (d == doc || d == doc.body), s = d.style; - + if (isDoc) { var extdom = Ext.lib.Dom; return { @@ -7933,30 +7933,30 @@ Ext.Element.addMethods(function(){ height : extdom.getViewHeight() }; } - + if(s.width && s.width != 'auto'){ w = parseFloat(s.width); if(me.isBorderBox()){ w -= me.getFrameWidth('lr'); } } - + if(s.height && s.height != 'auto'){ h = parseFloat(s.height); if(me.isBorderBox()){ h -= me.getFrameWidth('tb'); } } - + return {width: w || me.getWidth(true), height: h || me.getHeight(true)}; }, - + getSize : function(contentSize){ return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)}; }, - + repaint : function(){ var dom = this.dom; this.addClass("x-repaint"); @@ -7966,14 +7966,14 @@ Ext.Element.addMethods(function(){ return this; }, - + unselectable : function(){ this.dom.unselectable = "on"; return this.swallowEvent("selectstart", true). addClass("x-unselectable"); }, - + getMargins : function(side){ var me = this, key, @@ -7993,10 +7993,10 @@ Ext.Element.addMethods(function(){ }()); Ext.Element.addMethods({ - + setBox : function(box, adjust, animate){ var me = this, - w = box.width, + w = box.width, h = box.height; if((adjust && !me.autoBoxAdjust) && !me.isBorderBox()){ w -= (me.getBorderWidth("lr") + me.getPadding("lr")); @@ -8006,14 +8006,14 @@ Ext.Element.addMethods({ return me; }, - - getBox : function(contentBox, local) { + + getBox : function(contentBox, local) { var me = this, xy, left, top, getBorderWidth = me.getBorderWidth, - getPadding = me.getPadding, + getPadding = me.getPadding, l, r, t, @@ -8039,13 +8039,13 @@ Ext.Element.addMethods({ bx.bottom = bx.y + bx.height; return bx; }, - - + + move : function(direction, distance, animate){ - var me = this, + var me = this, xy = me.getXY(), x = xy[0], - y = xy[1], + y = xy[1], left = [x - distance, y], right = [x + distance, y], top = [x, y - distance], @@ -8058,16 +8058,16 @@ Ext.Element.addMethods({ t : top, top : top, up : top, - b : bottom, + b : bottom, bottom : bottom, - down : bottom + down : bottom }; - - direction = direction.toLowerCase(); + + direction = direction.toLowerCase(); me.moveTo(hash[direction][0], hash[direction][1], me.animTest.call(me, arguments, animate, 2)); }, - - + + setLeftTop : function(left, top){ var me = this, style = me.dom.style; @@ -8075,55 +8075,55 @@ Ext.Element.addMethods({ style.top = me.addUnits(top); return me; }, - - + + getRegion : function(){ return Ext.lib.Dom.getRegion(this.dom); }, - - + + setBounds : function(x, y, width, height, animate){ var me = this; if (!animate || !me.anim) { me.setSize(width, height); me.setLocation(x, y); } else { - me.anim({points: {to: [x, y]}, - width: {to: me.adjustWidth(width)}, + me.anim({points: {to: [x, y]}, + width: {to: me.adjustWidth(width)}, height: {to: me.adjustHeight(height)}}, - me.preanim(arguments, 4), + me.preanim(arguments, 4), 'motion'); } return me; }, - + setRegion : function(region, animate) { return this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.animTest.call(this, arguments, animate, 1)); } }); Ext.Element.addMethods({ - + scrollTo : function(side, value, animate) { - + var top = /top/i.test(side), me = this, dom = me.dom, prop; if (!animate || !me.anim) { - + prop = 'scroll' + (top ? 'Top' : 'Left'); dom[prop] = value; } else { - + prop = 'scroll' + (top ? 'Left' : 'Top'); me.anim({scroll: {to: top ? [dom[prop], value] : [value, dom[prop]]}}, me.preanim(arguments, 2), 'scroll'); } return me; }, - - + + scrollIntoView : function(container, hscroll) { var c = Ext.getDom(container) || Ext.getBody().dom, el = this.dom, @@ -8144,7 +8144,7 @@ Ext.Element.addMethods({ else if (b > cb) { c.scrollTop = b-ch; } - + c.scrollTop = c.scrollTop; if (hscroll !== false) { @@ -8159,12 +8159,12 @@ Ext.Element.addMethods({ return this; }, - + scrollChildIntoView : function(child, hscroll) { Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this, hscroll); }, - - + + scroll : function(direction, distance, animate) { if (!this.isScrollable()) { return false; @@ -8182,7 +8182,7 @@ Ext.Element.addMethods({ }; hash.d = hash.b; hash.u = hash.t; - + direction = direction.substr(0, 1); if ((v = hash[direction]) > -1) { scrolled = true; @@ -8202,15 +8202,15 @@ Ext.Element.addMethods( data = Ext.Element.data; return { - + isVisible : function(deep) { var vis = !this.isStyle(VISIBILITY, HIDDEN) && !this.isStyle(DISPLAY, NONE), p = this.dom.parentNode; - + if (deep !== true || !vis) { return vis; } - + while (p && !(/^body/i.test(p.tagName))) { if (!Ext.fly(p, '_isVisible').isVisible()) { return false; @@ -8220,23 +8220,23 @@ Ext.Element.addMethods( return true; }, - + isDisplayed : function() { return !this.isStyle(DISPLAY, NONE); }, - + enableDisplayMode : function(display) { this.setVisibilityMode(Ext.Element.DISPLAY); - + if (!Ext.isEmpty(display)) { data(this.dom, 'originalDisplay', display); } - + return this; }, - + mask : function(msg, msgCls) { var me = this, dom = me.dom, @@ -8260,7 +8260,7 @@ Ext.Element.addMethods( me.addClass(XMASKED); mask.setDisplayed(true); - + if (typeof msg == 'string') { var mm = dh.append(dom, {cls : EXTELMASKMSG, cn:{tag:'div'}}, true); data(dom, 'maskMsg', mm); @@ -8269,16 +8269,16 @@ Ext.Element.addMethods( mm.setDisplayed(true); mm.center(me); } - - + + if (Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && me.getStyle('height') == 'auto') { mask.setSize(undefined, me.getHeight()); } - + return mask; }, - + unmask : function() { var me = this, dom = me.dom, @@ -8290,24 +8290,24 @@ Ext.Element.addMethods( maskMsg.remove(); data(dom, 'maskMsg', undefined); } - + mask.remove(); data(dom, 'mask', undefined); me.removeClass([XMASKED, XMASKEDRELATIVE]); } }, - + isMasked : function() { var m = data(this.dom, 'mask'); return m && m.isVisible(); }, - + createShim : function() { var el = document.createElement('iframe'), shim; - + el.frameBorder = '0'; el.className = 'ext-shim'; el.src = Ext.SSL_SECURE_URL; @@ -8319,7 +8319,7 @@ Ext.Element.addMethods( }() ); Ext.Element.addMethods({ - + addKeyListener : function(key, fn, scope){ var config; if(typeof key != 'object' || Ext.isArray(key)){ @@ -8341,7 +8341,7 @@ Ext.Element.addMethods({ return new Ext.KeyMap(this, config); }, - + addKeyMap : function(config){ return new Ext.KeyMap(this, config); } @@ -8365,22 +8365,22 @@ Ext.apply(Ext.CompositeElementLite.prototype, { return this; }, - + first : function(){ return this.item(0); }, - + last : function(){ return this.item(this.getCount()-1); }, - + contains : function(el){ return this.indexOf(el) != -1; }, - + removeElement : function(keys, removeDom){ var me = this, els = this.elements, @@ -8408,22 +8408,22 @@ Ext.CompositeElement = Ext.extend(Ext.CompositeElementLite, { this.add(els, root); }, - + getElement : function(el){ - + return el; }, - + transformElement : function(el){ return Ext.get(el); } - - - + + + }); @@ -8448,12 +8448,12 @@ function() { UPDATE = "update", FAILURE = "failure"; - + function processSuccess(response){ var me = this; me.transaction = null; if (response.argument.form && response.argument.reset) { - try { + try { response.argument.form.reset(); } catch(e){} } @@ -8466,7 +8466,7 @@ function() { } } - + function updateComplete(response, type, success){ this.fireEvent(type || UPDATE, this.el, response); if(Ext.isFunction(response.argument.callback)){ @@ -8474,7 +8474,7 @@ function() { } } - + function processFailure(response){ updateComplete.call(this, response, FAILURE, !!(this.transaction = null)); } @@ -8486,76 +8486,76 @@ function() { if(!forceNew && el.updateManager){ return el.updateManager; } - + me.el = el; - + me.defaultUrl = null; me.addEvents( - + BEFOREUPDATE, - + UPDATE, - + FAILURE ); Ext.apply(me, Ext.Updater.defaults); - - - - - - - - + + + + + + + + me.transaction = null; - + me.refreshDelegate = me.refresh.createDelegate(me); - + me.updateDelegate = me.update.createDelegate(me); - + me.formUpdateDelegate = (me.formUpdate || function(){}).createDelegate(me); - + me.renderer = me.renderer || me.getDefaultRenderer(); Ext.Updater.superclass.constructor.call(me); }, - + setRenderer : function(renderer){ this.renderer = renderer; }, - + getRenderer : function(){ return this.renderer; }, - + getDefaultRenderer: function() { return new Ext.Updater.BasicRenderer(); }, - + setDefaultUrl : function(defaultUrl){ this.defaultUrl = defaultUrl; }, - + getEl : function(){ return this.el; }, - + update : function(url, params, callback, discardUrl){ var me = this, cfg, callerScope; if(me.fireEvent(BEFOREUPDATE, me.el, url, params) !== false){ - if(Ext.isObject(url)){ + if(Ext.isObject(url)){ cfg = url; url = cfg.url; params = params || cfg.params; @@ -8599,7 +8599,7 @@ function() { } }, - + formUpdate : function(form, url, reset, callback){ var me = this; if(me.fireEvent(BEFOREUPDATE, me.el, form, url) !== false){ @@ -8625,7 +8625,7 @@ function() { } }, - + startAutoRefresh : function(interval, url, params, callback, refreshNow){ var me = this; if(refreshNow){ @@ -8637,7 +8637,7 @@ function() { me.autoRefreshProcId = setInterval(me.update.createDelegate(me, [url || me.defaultUrl, params, callback, true]), interval * 1000); }, - + stopAutoRefresh : function(){ if(this.autoRefreshProcId){ clearInterval(this.autoRefreshProcId); @@ -8645,31 +8645,31 @@ function() { } }, - + isAutoRefreshing : function(){ return !!this.autoRefreshProcId; }, - + showLoading : function(){ if(this.showLoadIndicator){ this.el.dom.innerHTML = this.indicatorText; } }, - + abort : function(){ if(this.transaction){ Ext.Ajax.abort(this.transaction); } }, - + isUpdating : function(){ return this.transaction ? Ext.Ajax.isLoading(this.transaction) : false; }, - + refresh : function(callback){ if(this.defaultUrl){ this.update(this.defaultUrl, null, callback, true); @@ -8680,17 +8680,17 @@ function() { Ext.Updater.defaults = { - + timeout : 30, - + disableCaching : false, - + showLoadIndicator : true, - + indicatorText : '
Loading...
', - + loadScripts : false, - + sslBlankUrl : Ext.SSL_SECURE_URL }; @@ -8706,7 +8706,7 @@ Ext.Updater.updateElement = function(el, url, params, options){ Ext.Updater.BasicRenderer = function(){}; Ext.Updater.BasicRenderer.prototype = { - + render : function(el, response, updateManager, callback){ el.update(response.responseText, updateManager.loadScripts, callback); } @@ -8733,12 +8733,12 @@ function xf(format) { Date.formatCodeToRegex = function(character, currentGroup) { - + var p = Date.parseCodes[character]; if (p) { p = typeof p == 'function'? p() : p; - Date.parseCodes[character] = p; + Date.parseCodes[character] = p; } return p ? Ext.applyIf({ @@ -8746,7 +8746,7 @@ Date.formatCodeToRegex = function(character, currentGroup) { }, p) : { g:0, c:null, - s:Ext.escapeRe(character) + s:Ext.escapeRe(character) }; }; @@ -8754,11 +8754,11 @@ Date.formatCodeToRegex = function(character, currentGroup) { var $f = Date.formatCodeToRegex; Ext.apply(Date, { - + parseFunctions: { "M$": function(input, strict) { - - + + var re = new RegExp('\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/'); var r = (input || '').match(re); return r? new Date(((r[1] || '') + r[2]) * 1) : null; @@ -8766,41 +8766,41 @@ Ext.apply(Date, { }, parseRegexes: [], - + formatFunctions: { "M$": function() { - + return '\\/Date(' + this.getTime() + ')\\/'; } }, y2kYear : 50, - + MILLI : "ms", - + SECOND : "s", - + MINUTE : "mi", - + HOUR : "h", - + DAY : "d", - + MONTH : "mo", - + YEAR : "y", - + defaults: {}, - + dayNames : [ "Sunday", "Monday", @@ -8811,7 +8811,7 @@ Ext.apply(Date, { "Saturday" ], - + monthNames : [ "January", "February", @@ -8827,7 +8827,7 @@ Ext.apply(Date, { "December" ], - + monthNumbers : { Jan:0, Feb:1, @@ -8843,23 +8843,23 @@ Ext.apply(Date, { Dec:11 }, - + getShortMonthName : function(month) { return Date.monthNames[month].substring(0, 3); }, - + getShortDayName : function(day) { return Date.dayNames[day].substring(0, 3); }, - + getMonthNumber : function(name) { - + return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()]; }, - - + + formatContainsHourInfo : (function(){ var stripEscapeRe = /(\\.)/g, hourInfoRe = /([gGhHisucUOPZ]|M\$)/; @@ -8868,10 +8868,10 @@ Ext.apply(Date, { }; })(), - + formatCodes : { d: "String.leftPad(this.getDate(), 2, '0')", - D: "Date.getShortDayName(this.getDay())", + D: "Date.getShortDayName(this.getDay())", j: "this.getDate()", l: "Date.dayNames[this.getDay()]", N: "(this.getDay() ? this.getDay() : 7)", @@ -8881,7 +8881,7 @@ Ext.apply(Date, { W: "String.leftPad(this.getWeekOfYear(), 2, '0')", F: "Date.monthNames[this.getMonth()]", m: "String.leftPad(this.getMonth() + 1, 2, '0')", - M: "Date.getShortMonthName(this.getMonth())", + M: "Date.getShortMonthName(this.getMonth())", n: "(this.getMonth() + 1)", t: "this.getDaysInMonth()", L: "(this.isLeapYear() ? 1 : 0)", @@ -8902,27 +8902,27 @@ Ext.apply(Date, { T: "this.getTimezone()", Z: "(this.getTimezoneOffset() * -60)", - c: function() { + c: function() { for (var c = "Y-m-dTH:i:sP", code = [], i = 0, l = c.length; i < l; ++i) { var e = c.charAt(i); - code.push(e == "T" ? "'T'" : Date.getFormatCode(e)); + code.push(e == "T" ? "'T'" : Date.getFormatCode(e)); } return code.join(" + "); }, - + U: "Math.round(this.getTime() / 1000)" }, - + isValid : function(y, m, d, h, i, s, ms) { - + h = h || 0; i = i || 0; s = s || 0; ms = ms || 0; - + var dt = new Date(y < 100 ? 100 : y, m - 1, d, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0); return y == dt.getFullYear() && @@ -8934,7 +8934,7 @@ Ext.apply(Date, { ms == dt.getMilliseconds(); }, - + parseDate : function(input, format, strict) { var p = Date.parseFunctions; if (p[format] == null) { @@ -8943,20 +8943,20 @@ Ext.apply(Date, { return p[format](input, Ext.isDefined(strict) ? strict : Date.useStrict); }, - + getFormatCode : function(character) { var f = Date.formatCodes[character]; if (f) { f = typeof f == 'function'? f() : f; - Date.formatCodes[character] = f; + Date.formatCodes[character] = f; } - + return f || ("'" + String.escape(character) + "'"); }, - + createFormat : function(format) { var code = [], special = false, @@ -8976,62 +8976,62 @@ Ext.apply(Date, { Date.formatFunctions[format] = new Function("return " + code.join('+')); }, - + createParser : function() { var code = [ "var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,", "def = Date.defaults,", - "results = String(input).match(Date.parseRegexes[{0}]);", + "results = String(input).match(Date.parseRegexes[{0}]);", "if(results){", "{1}", - "if(u != null){", - "v = new Date(u * 1000);", + "if(u != null){", + "v = new Date(u * 1000);", "}else{", - - - + + + "dt = (new Date()).clearTime();", - + "y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));", "m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));", "d = Ext.num(d, Ext.num(def.d, dt.getDate()));", - + "h = Ext.num(h, Ext.num(def.h, dt.getHours()));", "i = Ext.num(i, Ext.num(def.i, dt.getMinutes()));", "s = Ext.num(s, Ext.num(def.s, dt.getSeconds()));", "ms = Ext.num(ms, Ext.num(def.ms, dt.getMilliseconds()));", "if(z >= 0 && y >= 0){", - - - - + + + + "v = new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);", - + "v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);", - "}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){", - "v = null;", + "}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){", + "v = null;", "}else{", - - + + "v = new Date(y < 100 ? 100 : y, m, d, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);", "}", "}", "}", "if(v){", - + "if(zz != null){", - + "v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);", "}else if(o){", - + "v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));", "}", "}", @@ -9070,7 +9070,7 @@ Ext.apply(Date, { } } } - + if (last) { calc.push(last); } @@ -9080,21 +9080,21 @@ Ext.apply(Date, { }; }(), - + parseCodes : { - + d: { g:1, c:"d = parseInt(results[{0}], 10);\n", - s:"(\\d{2})" + s:"(\\d{2})" }, j: { g:1, c:"d = parseInt(results[{0}], 10);\n", - s:"(\\d{1,2})" + s:"(\\d{1,2})" }, D: function() { - for (var a = [], i = 0; i < 7; a.push(Date.getShortDayName(i)), ++i); + for (var a = [], i = 0; i < 7; a.push(Date.getShortDayName(i)), ++i); return { g:0, c:null, @@ -9111,7 +9111,7 @@ Ext.apply(Date, { N: { g:0, c:null, - s:"[1-7]" + s:"[1-7]" }, S: { g:0, @@ -9121,27 +9121,27 @@ Ext.apply(Date, { w: { g:0, c:null, - s:"[0-6]" + s:"[0-6]" }, z: { g:1, c:"z = parseInt(results[{0}], 10);\n", - s:"(\\d{1,3})" + s:"(\\d{1,3})" }, W: { g:0, c:null, - s:"(?:\\d{2})" + s:"(?:\\d{2})" }, F: function() { return { g:1, - c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n", + c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n", s:"(" + Date.monthNames.join("|") + ")" }; }, M: function() { - for (var a = [], i = 0; i < 12; a.push(Date.getShortMonthName(i)), ++i); + for (var a = [], i = 0; i < 12; a.push(Date.getShortMonthName(i)), ++i); return Ext.applyIf({ s:"(" + a.join("|") + ")" }, $f("F")); @@ -9149,17 +9149,17 @@ Ext.apply(Date, { m: { g:1, c:"m = parseInt(results[{0}], 10) - 1;\n", - s:"(\\d{2})" + s:"(\\d{2})" }, n: { g:1, c:"m = parseInt(results[{0}], 10) - 1;\n", - s:"(\\d{1,2})" + s:"(\\d{1,2})" }, t: { g:0, c:null, - s:"(?:\\d{2})" + s:"(?:\\d{2})" }, L: { g:0, @@ -9172,20 +9172,20 @@ Ext.apply(Date, { Y: { g:1, c:"y = parseInt(results[{0}], 10);\n", - s:"(\\d{4})" + s:"(\\d{4})" }, y: { g:1, c:"var ty = parseInt(results[{0}], 10);\n" - + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", + + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", s:"(\\d{1,2})" }, - + a: function(){ return $f("A"); }, A: { - + calcLast: true, g:1, c:"if (/(am)/i.test(results[{0}])) {\n" @@ -9199,7 +9199,7 @@ Ext.apply(Date, { G: { g:1, c:"h = parseInt(results[{0}], 10);\n", - s:"(\\d{1,2})" + s:"(\\d{1,2})" }, h: function() { return $f("H"); @@ -9207,74 +9207,74 @@ Ext.apply(Date, { H: { g:1, c:"h = parseInt(results[{0}], 10);\n", - s:"(\\d{2})" + s:"(\\d{2})" }, i: { g:1, c:"i = parseInt(results[{0}], 10);\n", - s:"(\\d{2})" + s:"(\\d{2})" }, s: { g:1, c:"s = parseInt(results[{0}], 10);\n", - s:"(\\d{2})" + s:"(\\d{2})" }, u: { g:1, c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n", - s:"(\\d+)" + s:"(\\d+)" }, O: { g:1, c:[ "o = results[{0}];", - "var sn = o.substring(0,1),", - "hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),", - "mn = o.substring(3,5) % 60;", - "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" + "var sn = o.substring(0,1),", + "hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),", + "mn = o.substring(3,5) % 60;", + "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" ].join("\n"), - s: "([+\-]\\d{4})" + s: "([+\-]\\d{4})" }, P: { g:1, c:[ "o = results[{0}];", - "var sn = o.substring(0,1),", - "hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),", - "mn = o.substring(4,6) % 60;", - "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" + "var sn = o.substring(0,1),", + "hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),", + "mn = o.substring(4,6) % 60;", + "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n" ].join("\n"), - s: "([+\-]\\d{2}:\\d{2})" + s: "([+\-]\\d{2}:\\d{2})" }, T: { g:0, c:null, - s:"[A-Z]{1,4}" + s:"[A-Z]{1,4}" }, Z: { g:1, - c:"zz = results[{0}] * 1;\n" + c:"zz = results[{0}] * 1;\n" + "zz = (-43200 <= zz && zz <= 50400)? zz : null;\n", - s:"([+\-]?\\d{1,5})" + s:"([+\-]?\\d{1,5})" }, c: function() { var calc = [], arr = [ - $f("Y", 1), - $f("m", 2), - $f("d", 3), - $f("h", 4), - $f("i", 5), - $f("s", 6), - {c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"}, - {c:[ - "if(results[8]) {", + $f("Y", 1), + $f("m", 2), + $f("d", 3), + $f("h", 4), + $f("i", 5), + $f("s", 6), + {c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"}, + {c:[ + "if(results[8]) {", "if(results[8] == 'Z'){", - "zz = 0;", + "zz = 0;", "}else if (results[8].indexOf(':') > -1){", - $f("P", 8).c, + $f("P", 8).c, "}else{", - $f("O", 8).c, + $f("O", 8).c, "}", "}" ].join('\n')} @@ -9288,15 +9288,15 @@ Ext.apply(Date, { g:1, c:calc.join(""), s:[ - arr[0].s, - "(?:", "-", arr[1].s, - "(?:", "-", arr[2].s, + arr[0].s, + "(?:", "-", arr[1].s, + "(?:", "-", arr[2].s, "(?:", - "(?:T| )?", - arr[3].s, ":", arr[4].s, - "(?::", arr[5].s, ")?", - "(?:(?:\\.|,)(\\d+))?", - "(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?", + "(?:T| )?", + arr[3].s, ":", arr[4].s, + "(?::", arr[5].s, ")?", + "(?:(?:\\.|,)(\\d+))?", + "(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?", ")?", ")?", ")?" @@ -9306,7 +9306,7 @@ Ext.apply(Date, { U: { g:1, c:"u = parseInt(results[{0}], 10);\n", - s:"(-?\\d+)" + s:"(-?\\d+)" } } }); @@ -9314,7 +9314,7 @@ Ext.apply(Date, { }()); Ext.apply(Date.prototype, { - + dateFormat : function(format) { if (Date.formatFunctions[format] == null) { Date.createFormat(format); @@ -9322,24 +9322,24 @@ Ext.apply(Date.prototype, { return Date.formatFunctions[format].call(this); }, - + getTimezone : function() { - - - - - - - - - - - - + + + + + + + + + + + + return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, ""); }, - + getGMTOffset : function(colon) { return (this.getTimezoneOffset() > 0 ? "-" : "+") + String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset()) / 60), 2, "0") @@ -9347,7 +9347,7 @@ Ext.apply(Date.prototype, { + String.leftPad(Math.abs(this.getTimezoneOffset() % 60), 2, "0"); }, - + getDayOfYear: function() { var num = 0, d = this.clone(), @@ -9360,61 +9360,61 @@ Ext.apply(Date.prototype, { return num + this.getDate() - 1; }, - + getWeekOfYear : function() { - - var ms1d = 864e5, - ms7d = 7 * ms1d; - return function() { - var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d, - AWN = Math.floor(DC3 / 7), + var ms1d = 864e5, + ms7d = 7 * ms1d; + + return function() { + var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d, + AWN = Math.floor(DC3 / 7), Wyr = new Date(AWN * ms7d).getUTCFullYear(); return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1; }; }(), - + isLeapYear : function() { var year = this.getFullYear(); return !!((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year))); }, - + getFirstDayOfMonth : function() { var day = (this.getDay() - (this.getDate() - 1)) % 7; return (day < 0) ? (day + 7) : day; }, - + getLastDayOfMonth : function() { return this.getLastDateOfMonth().getDay(); }, - + getFirstDateOfMonth : function() { return new Date(this.getFullYear(), this.getMonth(), 1); }, - + getLastDateOfMonth : function() { return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()); }, - + getDaysInMonth: function() { var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - return function() { + return function() { var m = this.getMonth(); return m == 1 && this.isLeapYear() ? 29 : daysInMonth[m]; }; }(), - + getSuffix : function() { switch (this.getDate()) { case 1: @@ -9432,38 +9432,38 @@ Ext.apply(Date.prototype, { } }, - + clone : function() { return new Date(this.getTime()); }, - + isDST : function() { - - + + return new Date(this.getFullYear(), 0, 1).getTimezoneOffset() != this.getTimezoneOffset(); }, - + clearTime : function(clone) { if (clone) { return this.clone().clearTime(); } - + var d = this.getDate(); - + this.setHours(0); this.setMinutes(0); this.setSeconds(0); this.setMilliseconds(0); - if (this.getDate() != d) { - - + if (this.getDate() != d) { + + + - for (var hr = 1, c = this.add(Date.HOUR, hr); c.getDate() != d; hr++, c = this.add(Date.HOUR, hr)); this.setDate(d); @@ -9473,7 +9473,7 @@ Ext.apply(Date.prototype, { return this; }, - + add : function(interval, value) { var d = this.clone(); if (!interval || value === 0) return d; @@ -9509,7 +9509,7 @@ Ext.apply(Date.prototype, { return d; }, - + between : function(start, end) { var t = this.getTime(); return start.getTime() <= t && t <= end.getTime(); @@ -9527,8 +9527,8 @@ if (Ext.isSafari && (navigator.userAgent.match(/WebKit\/(\d+)/)[1] || NaN) < 420 _xMonth : Date.prototype.setMonth, _xDate : Date.prototype.setDate, - - + + setMonth : function(num) { if (num <= -1) { var n = Math.ceil(-num), @@ -9543,12 +9543,12 @@ if (Ext.isSafari && (navigator.userAgent.match(/WebKit\/(\d+)/)[1] || NaN) < 420 } }, - - - + + + setDate : function(d) { - - + + return this.setTime(this.getTime() - (this.getDate() - d) * 864e5); } }); @@ -9564,13 +9564,13 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){ this.keys = []; this.length = 0; this.addEvents( - + 'clear', - + 'add', - + 'replace', - + 'remove', 'sort' ); @@ -9583,10 +9583,10 @@ Ext.util.MixedCollection = function(allowFunctions, keyFn){ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { - + allowFunctions : false, - + add : function(key, o){ if(arguments.length == 1){ o = arguments[0]; @@ -9606,12 +9606,12 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return o; }, - + getKey : function(o){ return o.id; }, - + replace : function(key, o){ if(arguments.length == 1){ o = arguments[0]; @@ -9628,7 +9628,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return o; }, - + addAll : function(objs){ if(arguments.length > 1 || Ext.isArray(objs)){ var args = arguments.length > 1 ? arguments : objs; @@ -9644,9 +9644,9 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { } }, - + each : function(fn, scope){ - var items = [].concat(this.items); + var items = [].concat(this.items); for(var i = 0, len = items.length; i < len; i++){ if(fn.call(scope || items[i], items[i], i, len) === false){ break; @@ -9654,14 +9654,14 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { } }, - + eachKey : function(fn, scope){ for(var i = 0, len = this.keys.length; i < len; i++){ fn.call(scope || window, this.keys[i], this.items[i], i, len); } }, - + find : function(fn, scope){ for(var i = 0, len = this.items.length; i < len; i++){ if(fn.call(scope || window, this.items[i], this.keys[i])){ @@ -9671,7 +9671,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return null; }, - + insert : function(index, key, o){ if(arguments.length == 2){ o = arguments[1]; @@ -9695,12 +9695,12 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return o; }, - + remove : function(o){ return this.removeAt(this.indexOf(o)); }, - + removeAt : function(index){ if(index < this.length && index >= 0){ this.length--; @@ -9717,54 +9717,54 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return false; }, - + removeKey : function(key){ return this.removeAt(this.indexOfKey(key)); }, - + getCount : function(){ return this.length; }, - + indexOf : function(o){ return this.items.indexOf(o); }, - + indexOfKey : function(key){ return this.keys.indexOf(key); }, - + item : function(key){ var mk = this.map[key], item = mk !== undefined ? mk : (typeof key == 'number') ? this.items[key] : undefined; - return typeof item != 'function' || this.allowFunctions ? item : null; + return typeof item != 'function' || this.allowFunctions ? item : null; }, - + itemAt : function(index){ return this.items[index]; }, - + key : function(key){ return this.map[key]; }, - + contains : function(o){ return this.indexOf(o) != -1; }, - + containsKey : function(key){ return typeof this.map[key] != 'undefined'; }, - + clear : function(){ this.length = 0; this.items = []; @@ -9773,32 +9773,32 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { this.fireEvent('clear'); }, - + first : function(){ return this.items[0]; }, - + last : function(){ return this.items[this.length-1]; }, - + _sort : function(property, dir, fn){ var i, len, dsc = String(dir).toUpperCase() == 'DESC' ? -1 : 1, - + c = [], keys = this.keys, items = this.items; - + fn = fn || function(a, b) { return a - b; }; - + for(i = 0, len = items.length; i < len; i++){ c[c.length] = { key : keys[i], @@ -9807,7 +9807,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { }; } - + c.sort(function(a, b){ var v = fn(a[property], b[property]) * dsc; if(v === 0){ @@ -9816,7 +9816,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return v; }); - + for(i = 0, len = c.length; i < len; i++){ items[i] = c[i].value; keys[i] = c[i].key; @@ -9825,12 +9825,12 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { this.fireEvent('sort', this); }, - + sort : function(dir, fn){ this._sort('value', dir, fn); }, - + reorder: function(mapping) { this.suspendEvents(); @@ -9841,7 +9841,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { remaining = [], oldIndex; - + for (oldIndex in mapping) { order[mapping[oldIndex]] = items[oldIndex]; } @@ -9865,7 +9865,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { this.fireEvent('sort', this); }, - + keySort : function(dir, fn){ this._sort('key', dir, fn || function(a, b){ var v1 = String(a).toUpperCase(), v2 = String(b).toUpperCase(); @@ -9873,7 +9873,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { }); }, - + getRange : function(start, end){ var items = this.items; if(items.length < 1){ @@ -9894,7 +9894,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return r; }, - + filter : function(property, value, anyMatch, caseSensitive){ if(Ext.isEmpty(value, false)){ return this.clone(); @@ -9905,7 +9905,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { }); }, - + filterBy : function(fn, scope){ var r = new Ext.util.MixedCollection(); r.getKey = this.getKey; @@ -9918,7 +9918,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return r; }, - + findIndex : function(property, value, start, anyMatch, caseSensitive){ if(Ext.isEmpty(value, false)){ return -1; @@ -9929,7 +9929,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { }, null, start); }, - + findIndexBy : function(fn, scope, start){ var k = this.keys, it = this.items; for(var i = (start||0), len = it.length; i < len; i++){ @@ -9940,9 +9940,9 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return -1; }, - + createValueMatcher : function(value, anyMatch, caseSensitive, exactMatch) { - if (!value.exec) { + if (!value.exec) { var er = Ext.escapeRe; value = String(value); @@ -9959,7 +9959,7 @@ Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, { return value; }, - + clone : function(){ var r = new Ext.util.MixedCollection(); var k = this.keys, it = this.items; @@ -9975,58 +9975,58 @@ Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item Ext.AbstractManager = Ext.extend(Object, { typeName: 'type', - + constructor: function(config) { Ext.apply(this, config || {}); - - + + this.all = new Ext.util.MixedCollection(); - + this.types = {}; }, - - + + get : function(id){ return this.all.get(id); }, - - + + register: function(item) { this.all.add(item); }, - - + + unregister: function(item) { - this.all.remove(item); + this.all.remove(item); }, - - + + registerType : function(type, cls){ this.types[type] = cls; cls[this.typeName] = type; }, - - + + isRegistered : function(type){ - return this.types[type] !== undefined; + return this.types[type] !== undefined; }, - - + + create: function(config, defaultType) { var type = config[this.typeName] || config.type || defaultType, Constructor = this.types[type]; - + if (Constructor == undefined) { throw new Error(String.format("The '{0}' type has not been registered with this manager", type)); } - + return new Constructor(config); }, - - + + onAvailable : function(id, fn, scope){ var all = this.all; - + all.on("add", function(index, o){ if (o.id == id) { fn.call(scope || o, o); @@ -10042,7 +10042,7 @@ Ext.util.Format = function() { nl2brRe = /\r?\n/g; return { - + ellipsis : function(value, len, word) { if (value && value.length > len) { if (word) { @@ -10060,12 +10060,12 @@ Ext.util.Format = function() { return value; }, - + undef : function(value) { return value !== undefined ? value : ""; }, - + defaultValue : function(value, defaultValue) { if (!defaultValue && defaultValue !== 0) { defaultValue = ''; @@ -10073,42 +10073,42 @@ Ext.util.Format = function() { return value !== undefined && value !== '' ? value : defaultValue; }, - + htmlEncode : function(value) { return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/").replace(/</g, "<").replace(/"/g, '"').replace(/&/g, "&"); }, - + trim : function(value) { return String(value).replace(trimRe, ""); }, - + substr : function(value, start, length) { return String(value).substr(start, length); }, - + lowercase : function(value) { return String(value).toLowerCase(); }, - + uppercase : function(value) { return String(value).toUpperCase(); }, - + capitalize : function(value) { return !value ? value : value.charAt(0).toUpperCase() + value.substr(1).toLowerCase(); }, - + call : function(value, fn) { if (arguments.length > 2) { var args = Array.prototype.slice.call(arguments, 2); @@ -10119,7 +10119,7 @@ Ext.util.Format = function() { } }, - + usMoney : function(v) { v = (Math.round((v-0)*100))/100; v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v); @@ -10138,7 +10138,7 @@ Ext.util.Format = function() { return "$" + v; }, - + date : function(v, format) { if (!v) { return ""; @@ -10149,24 +10149,24 @@ Ext.util.Format = function() { return v.dateFormat(format || "m/d/Y"); }, - + dateRenderer : function(format) { return function(v) { return Ext.util.Format.date(v, format); }; }, - + stripTags : function(v) { return !v ? v : String(v).replace(stripTagsRE, ""); }, - + stripScripts : function(v) { return !v ? v : String(v).replace(stripScriptsRe, ""); }, - + fileSize : function(size) { if (size < 1024) { return size + " bytes"; @@ -10177,10 +10177,10 @@ Ext.util.Format = function() { } }, - + math : function(){ var fns = {}; - + return function(v, a){ if (!fns[a]) { fns[a] = new Function('v', 'return v ' + a + ';'); @@ -10189,7 +10189,7 @@ Ext.util.Format = function() { }; }(), - + round : function(value, precision) { var result = Number(value); if (typeof precision == 'number') { @@ -10199,7 +10199,7 @@ Ext.util.Format = function() { return result; }, - + number: function(v, format) { if (!format) { return v; @@ -10237,9 +10237,9 @@ Ext.util.Format = function() { psplit = fnum.split('.'); if (hasComma) { - var cnum = psplit[0], - parr = [], - j = cnum.length, + var cnum = psplit[0], + parr = [], + j = cnum.length, m = Math.floor(j / 3), n = cnum.length % 3 || 3, i; @@ -10248,7 +10248,7 @@ Ext.util.Format = function() { if (i != 0) { n = 3; } - + parr[parr.length] = cnum.substr(i, n); m -= 1; } @@ -10265,19 +10265,19 @@ Ext.util.Format = function() { return (neg ? '-' : '') + format.replace(/[\d,?\.?]+/, fnum); }, - + numberRenderer : function(format) { return function(v) { return Ext.util.Format.number(v, format); }; }, - + plural : function(v, s, p) { return v +' ' + (v == 1 ? s : (p ? p : s+'s')); }, - + nl2br : function(v) { return Ext.isEmpty(v) ? '' : v.replace(nl2brRe, '
'); } @@ -10350,12 +10350,12 @@ Ext.XTemplate = function(){ me.tpls = tpls; }; Ext.extend(Ext.XTemplate, Ext.Template, { - + re : /\{([\w\-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g, - + codeRe : /\{\[((?:\\\]|.|\n)*?)\]\}/g, - + applySubTemplate : function(id, values, parent, xindex, xcount){ var me = this, len, @@ -10378,7 +10378,7 @@ Ext.extend(Ext.XTemplate, Ext.Template, { return t.compiled.call(me, vs, parent, xindex, xcount); }, - + compileTpl : function(tpl){ var fm = Ext.util.Format, useF = this.disableFormats !== true, @@ -10417,11 +10417,11 @@ Ext.extend(Ext.XTemplate, Ext.Template, { } function codeFn(m, code){ - + return "'" + sep + '(' + code.replace(/\\'/g, "'") + ')' + sep + "'"; } - + if(Ext.isGecko){ body = "tpl.compiled = function(values, parent, xindex, xcount){ return '" + tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn) + @@ -10436,17 +10436,17 @@ Ext.extend(Ext.XTemplate, Ext.Template, { return this; }, - + applyTemplate : function(values){ return this.master.compiled.call(this, values, {}, 1, 1); }, - + compile : function(){return this;} - - - + + + }); @@ -10466,7 +10466,7 @@ Ext.util.CSS = function(){ var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); }; return { - + createStyleSheet : function(cssText, id){ var ss; var head = doc.getElementsByTagName("head")[0]; @@ -10492,7 +10492,7 @@ Ext.util.CSS = function(){ return ss; }, - + removeStyleSheet : function(id){ var existing = doc.getElementById(id); if(existing){ @@ -10500,7 +10500,7 @@ Ext.util.CSS = function(){ } }, - + swapStyleSheet : function(id, url){ this.removeStyleSheet(id); var ss = doc.createElement("link"); @@ -10510,13 +10510,13 @@ Ext.util.CSS = function(){ ss.setAttribute("href", url); doc.getElementsByTagName("head")[0].appendChild(ss); }, - - + + refreshCache : function(){ return this.getRules(true); }, - + cacheStyleSheet : function(ss){ if(!rules){ rules = {}; @@ -10528,8 +10528,8 @@ Ext.util.CSS = function(){ } }catch(e){} }, - - + + getRules : function(refreshCache){ if(rules === null || refreshCache){ rules = {}; @@ -10537,13 +10537,13 @@ Ext.util.CSS = function(){ for(var i =0, len = ds.length; i < len; i++){ try{ this.cacheStyleSheet(ds[i]); - }catch(e){} + }catch(e){} } } return rules; }, - - + + getRule : function(selector, refreshCache){ var rs = this.getRules(refreshCache); if(!Ext.isArray(selector)){ @@ -10556,9 +10556,9 @@ Ext.util.CSS = function(){ } return null; }, - - - + + + updateRule : function(selector, property, value){ if(!Ext.isArray(selector)){ var rule = this.getRule(selector); @@ -10575,10 +10575,10 @@ Ext.util.CSS = function(){ } return false; } - }; + }; }(); Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { - + constructor : function(el, config){ this.el = Ext.get(el); this.el.unselectable(); @@ -10586,11 +10586,11 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { Ext.apply(this, config); this.addEvents( - + "mousedown", - + "click", - + "mouseup" ); @@ -10599,21 +10599,21 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.enable(); } - + if(this.handler){ this.on("click", this.handler, this.scope || this); } - Ext.util.ClickRepeater.superclass.constructor.call(this); + Ext.util.ClickRepeater.superclass.constructor.call(this); }, - + interval : 20, delay: 250, preventDefault : true, stopDefault : false, timer : 0, - + enable: function(){ if(this.disabled){ this.el.on('mousedown', this.handleMouseDown, this); @@ -10627,7 +10627,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.disabled = false; }, - + disable: function( force){ if(force || !this.disabled){ clearTimeout(this.timer); @@ -10640,7 +10640,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.disabled = true; }, - + setDisabled: function(disabled){ this[disabled ? 'disable' : 'enable'](); }, @@ -10654,7 +10654,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { } }, - + destroy : function() { this.disable(true); Ext.destroy(this.el); @@ -10669,7 +10669,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.fireEvent("click", this, e); }, - + handleMouseDown : function(e){ clearTimeout(this.timer); this.el.blur(); @@ -10684,14 +10684,14 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.fireEvent("mousedown", this, e); this.fireEvent("click", this, e); - + if (this.accelerate) { this.delay = 400; } this.timer = this.click.defer(this.delay || this.interval, this, [e]); }, - + click : function(e){ this.fireEvent("click", this, e); this.timer = this.click.defer(this.accelerate ? @@ -10706,7 +10706,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; }, - + handleMouseOut : function(){ clearTimeout(this.timer); if(this.pressClass){ @@ -10715,7 +10715,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.el.on("mouseover", this.handleMouseReturn, this); }, - + handleMouseReturn : function(){ this.el.un("mouseover", this.handleMouseReturn, this); if(this.pressClass){ @@ -10724,7 +10724,7 @@ Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, { this.click(); }, - + handleMouseUp : function(e){ clearTimeout(this.timer); this.el.un("mouseover", this.handleMouseReturn, this); @@ -10744,14 +10744,14 @@ Ext.KeyNav = function(el, config){ }; Ext.KeyNav.prototype = { - + disabled : false, - + defaultEventAction: "stopEvent", - + forceKeyDown : false, - + relay : function(e){ var k = e.getKey(), h = this.keyToHandler[k]; @@ -10762,12 +10762,12 @@ Ext.KeyNav.prototype = { } }, - + doRelay : function(e, h, hname){ return h.call(this.scope || this, e, hname); }, - + enter : false, left : false, right : false, @@ -10782,7 +10782,7 @@ Ext.KeyNav.prototype = { end : false, space : false, - + keyToHandler : { 37 : "left", 39 : "right", @@ -10798,27 +10798,27 @@ Ext.KeyNav.prototype = { 9 : "tab", 32 : "space" }, - + stopKeyUp: function(e) { var k = e.getKey(); if (k >= 37 && k <= 40) { - - + + e.stopEvent(); } }, - - + + destroy: function(){ - this.disable(); + this.disable(); }, - + enable: function() { if (this.disabled) { if (Ext.isSafari2) { - + this.el.on('keyup', this.stopKeyUp, this); } @@ -10827,11 +10827,11 @@ Ext.KeyNav.prototype = { } }, - + disable: function() { if (!this.disabled) { if (Ext.isSafari2) { - + this.el.un('keyup', this.stopKeyUp, this); } @@ -10839,13 +10839,13 @@ Ext.KeyNav.prototype = { this.disabled = true; } }, - - + + setDisabled : function(disabled){ this[disabled ? "disable" : "enable"](); }, - - + + isKeydown: function(){ return this.forceKeyDown || Ext.EventManager.useKeydown; } @@ -10862,10 +10862,10 @@ Ext.KeyMap = function(el, config, eventName){ }; Ext.KeyMap.prototype = { - + stopEvent : false, - + addBinding : function(config){ if(Ext.isArray(config)){ Ext.each(config, function(c){ @@ -10878,8 +10878,8 @@ Ext.KeyMap.prototype = { scope = config.scope; if (config.stopEvent) { - this.stopEvent = config.stopEvent; - } + this.stopEvent = config.stopEvent; + } if(typeof keyCode == "string"){ var ks = []; @@ -10890,7 +10890,7 @@ Ext.KeyMap.prototype = { keyCode = ks; } var keyArray = Ext.isArray(keyCode); - + var handler = function(e){ if(this.checkModifiers(config, e)){ var k = e.getKey(); @@ -10916,8 +10916,8 @@ Ext.KeyMap.prototype = { }; this.bindings.push(handler); }, - - + + checkModifiers: function(config, e){ var val, key, keys = ['shift', 'ctrl', 'alt']; for (var i = 0, len = keys.length; i < len; ++i){ @@ -10930,7 +10930,7 @@ Ext.KeyMap.prototype = { return true; }, - + on : function(key, fn, scope){ var keyCode, shift, ctrl, alt; if(typeof key == "object" && !Ext.isArray(key)){ @@ -10951,9 +10951,9 @@ Ext.KeyMap.prototype = { }); }, - + handleKeyDown : function(e){ - if(this.enabled){ + if(this.enabled){ var b = this.bindings; for(var i = 0, len = b.length; i < len; i++){ b[i].call(this, e); @@ -10961,12 +10961,12 @@ Ext.KeyMap.prototype = { } }, - + isEnabled : function(){ return this.enabled; }, - + enable: function(){ if(!this.enabled){ this.el.on(this.eventName, this.handleKeyDown, this); @@ -10974,15 +10974,15 @@ Ext.KeyMap.prototype = { } }, - + disable: function(){ if(this.enabled){ this.el.removeListener(this.eventName, this.handleKeyDown, this); this.enabled = false; } }, - - + + setDisabled : function(disabled){ this[disabled ? "disable" : "enable"](); } @@ -10990,7 +10990,7 @@ Ext.KeyMap.prototype = { Ext.util.TextMetrics = function(){ var shared; return { - + measure : function(el, text, fixedWidth){ if(!shared){ shared = Ext.util.TextMetrics.Instance(el, fixedWidth); @@ -11000,7 +11000,7 @@ Ext.util.TextMetrics = function(){ return shared.getSize(text); }, - + createInstance : function(el, fixedWidth){ return Ext.util.TextMetrics.Instance(el, fixedWidth); } @@ -11019,7 +11019,7 @@ Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ } var instance = { - + getSize : function(text){ ml.update(text); var s = ml.getSize(); @@ -11027,25 +11027,25 @@ Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ return s; }, - + bind : function(el){ ml.setStyle( Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing') ); }, - + setFixedWidth : function(width){ ml.setWidth(width); }, - + getWidth : function(text){ ml.dom.style.width = 'auto'; return this.getSize(text).width; }, - + getHeight : function(text){ return this.getSize(text).height; } @@ -11057,14 +11057,14 @@ Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){ }; Ext.Element.addMethods({ - + getTextWidth : function(text, min, max){ return (Ext.util.TextMetrics.measure(this.dom, Ext.value(text, this.dom.innerHTML, true)).width).constrain(min || 0, max || 1000000); } }); Ext.util.Cookies = { - + set : function(name, value){ var argv = arguments; var argc = arguments.length; @@ -11075,7 +11075,7 @@ Ext.util.Cookies = { document.cookie = name + "=" + escape(value) + ((expires === null) ? "" : ("; expires=" + expires.toGMTString())) + ((path === null) ? "" : ("; path=" + path)) + ((domain === null) ? "" : ("; domain=" + domain)) + ((secure === true) ? "; secure" : ""); }, - + get : function(name){ var arg = name + "="; var alen = arg.length; @@ -11095,13 +11095,13 @@ Ext.util.Cookies = { return null; }, - + clear : function(name){ if(Ext.util.Cookies.get(name)){ document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } }, - + getCookieVal : function(offset){ var endstr = document.cookie.indexOf(";", offset); if(endstr == -1){ @@ -11116,25 +11116,25 @@ Ext.handleError = function(e) { Ext.Error = function(message) { - + this.message = (this.lang[message]) ? this.lang[message] : message; }; Ext.Error.prototype = new Error(); Ext.apply(Ext.Error.prototype, { - + lang: {}, name: 'Ext.Error', - + getName : function() { return this.name; }, - + getMessage : function() { return this.message; }, - + toJson : function() { return Ext.encode(this); } @@ -11146,22 +11146,22 @@ Ext.ComponentMgr = function(){ var ptypes = {}; return { - + register : function(c){ all.add(c); }, - + unregister : function(c){ all.remove(c); }, - + get : function(id){ return all.get(id); }, - + onAvailable : function(id, fn, scope){ all.on("add", function(index, o){ if(o.id == id){ @@ -11171,56 +11171,56 @@ Ext.ComponentMgr = function(){ }); }, - + all : all, - - + + types : types, - - + + ptypes: ptypes, - - + + isRegistered : function(xtype){ - return types[xtype] !== undefined; + return types[xtype] !== undefined; }, - - + + isPluginRegistered : function(ptype){ - return ptypes[ptype] !== undefined; - }, + return ptypes[ptype] !== undefined; + }, + - registerType : function(xtype, cls){ types[xtype] = cls; cls.xtype = xtype; }, - + create : function(config, defaultType){ return config.render ? config : new types[config.xtype || defaultType](config); }, - + registerPlugin : function(ptype, cls){ ptypes[ptype] = cls; cls.ptype = ptype; }, - + createPlugin : function(config, defaultType){ var PluginCls = ptypes[config.ptype || defaultType]; if (PluginCls.init) { - return PluginCls; + return PluginCls; } else { return new PluginCls(config); - } + } } }; }(); -Ext.reg = Ext.ComponentMgr.registerType; +Ext.reg = Ext.ComponentMgr.registerType; Ext.preg = Ext.ComponentMgr.registerPlugin; @@ -11228,52 +11228,52 @@ Ext.create = Ext.ComponentMgr.create; Ext.Component = function(config){ config = config || {}; if(config.initialConfig){ - if(config.isAction){ + if(config.isAction){ this.baseAction = config; } - config = config.initialConfig; - }else if(config.tagName || config.dom || Ext.isString(config)){ + config = config.initialConfig; + }else if(config.tagName || config.dom || Ext.isString(config)){ config = {applyTo: config, id: config.id || config}; } - + this.initialConfig = config; Ext.apply(this, config); this.addEvents( - + 'added', - + 'disable', - + 'enable', - + 'beforeshow', - + 'show', - + 'beforehide', - + 'hide', - + 'removed', - + 'beforerender', - + 'render', - + 'afterrender', - + 'beforedestroy', - + 'destroy', - + 'beforestaterestore', - + 'staterestore', - + 'beforestatesave', - + 'statesave' ); this.getId(); @@ -11313,73 +11313,73 @@ Ext.Component = function(config){ Ext.Component.AUTO_ID = 1000; Ext.extend(Ext.Component, Ext.util.Observable, { - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + disabled : false, - + hidden : false, - - - - - - - + + + + + + + autoEl : 'div', - + disabledClass : 'x-item-disabled', - + allowDomMove : true, - + autoShow : false, - + hideMode : 'display', - + hideParent : false, - - - - - + + + + + rendered : false, - - - - + + + + tplWriteMode : 'overwrite', - - + + bubbleEvents: [], - + ctype : 'Ext.Component', - + actionMode : 'el', - + getActionEl : function(){ return this[this.actionMode]; }, @@ -11396,9 +11396,9 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return p; }, - + initComponent : function(){ - + if(this.listeners){ this.on(this.listeners); delete this.listeners; @@ -11406,7 +11406,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { this.enableBubble(this.bubbleEvents); }, - + render : function(container, position){ if(!this.rendered && this.fireEvent('beforerender', this) !== false){ if(!container && this.el){ @@ -11444,8 +11444,8 @@ Ext.extend(Ext.Component, Ext.util.Observable, { this.fireEvent('render', this); - - + + var contentTarget = this.getContentTarget(); if (this.html){ contentTarget.update(Ext.DomHelper.markup(this.html)); @@ -11469,11 +11469,11 @@ Ext.extend(Ext.Component, Ext.util.Observable, { if(this.hidden){ - + this.doHide(); } if(this.disabled){ - + this.disable(true); } @@ -11486,7 +11486,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { }, - + update: function(htmlOrData, loadScripts, cb) { var contentTarget = this.getContentTarget(); if (this.tpl && typeof htmlOrData !== "string") { @@ -11498,23 +11498,23 @@ Ext.extend(Ext.Component, Ext.util.Observable, { }, - + onAdded : function(container, pos) { this.ownerCt = container; this.initRef(); this.fireEvent('added', this, container, pos); }, - + onRemoved : function() { this.removeRef(); this.fireEvent('removed', this, this.ownerCt); delete this.ownerCt; }, - + initRef : function() { - + if(this.ref && !this.refOwner){ var levels = this.ref.split('/'), last = levels.length, @@ -11527,7 +11527,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } if(t){ t[this.refName = levels[--i]] = this; - + this.refOwner = t; } } @@ -11540,7 +11540,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + initState : function(){ if(Ext.state.Manager){ var id = this.getStateId(); @@ -11556,12 +11556,12 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + getStateId : function(){ return this.stateId || ((/^(ext-comp-|ext-gen)/).test(String(this.id)) ? null : this.id); }, - + initStateEvents : function(){ if(this.stateEvents){ for(var i = 0, e; e = this.stateEvents[i]; i++){ @@ -11570,19 +11570,19 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + applyState : function(state){ if(state){ Ext.apply(this, state); } }, - + getState : function(){ return null; }, - + saveState : function(){ if(Ext.state.Manager && this.stateful !== false){ var id = this.getStateId(); @@ -11596,14 +11596,14 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + applyToMarkup : function(el){ this.allowDomMove = false; this.el = Ext.get(el); this.render(this.el.dom.parentNode); }, - + addClass : function(cls){ if(this.el){ this.el.addClass(cls); @@ -11613,7 +11613,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + removeClass : function(cls){ if(this.el){ this.el.removeClass(cls); @@ -11623,8 +11623,8 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - - + + onRender : function(ct, position){ if(!this.el && this.autoEl){ if(Ext.isString(this.autoEl)){ @@ -11650,7 +11650,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + getAutoCreate : function(){ var cfg = Ext.isObject(this.autoCreate) ? this.autoCreate : Ext.apply({}, this.defaultAutoCreate); @@ -11660,10 +11660,10 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return cfg; }, - + afterRender : Ext.emptyFn, - + destroy : function(){ if(!this.isDestroyed){ if(this.fireEvent('beforedestroy', this) !== false){ @@ -11678,7 +11678,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { this.container.remove(); } } - + if(this.focusTask && this.focusTask.cancel){ this.focusTask.cancel(); } @@ -11699,33 +11699,33 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + beforeDestroy : Ext.emptyFn, - + onDestroy : Ext.emptyFn, - + getEl : function(){ return this.el; }, - + getContentTarget : function(){ return this.el; }, - + getId : function(){ return this.id || (this.id = 'ext-comp-' + (++Ext.Component.AUTO_ID)); }, - + getItemId : function(){ return this.itemId || this.getId(); }, - + focus : function(selectText, delay){ if(delay){ this.focusTask = new Ext.util.DelayedTask(this.focus, this, [selectText, false]); @@ -11741,7 +11741,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + blur : function(){ if(this.rendered){ this.el.blur(); @@ -11749,7 +11749,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + disable : function( silent){ if(this.rendered){ this.onDisable(); @@ -11761,13 +11761,13 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + onDisable : function(){ this.getActionEl().addClass(this.disabledClass); this.el.dom.disabled = true; }, - + enable : function(){ if(this.rendered){ this.onEnable(); @@ -11777,18 +11777,18 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + onEnable : function(){ this.getActionEl().removeClass(this.disabledClass); this.el.dom.disabled = false; }, - + setDisabled : function(disabled){ return this[disabled ? 'disable' : 'enable'](); }, - + show : function(){ if(this.fireEvent('beforeshow', this) !== false){ this.hidden = false; @@ -11803,12 +11803,12 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + onShow : function(){ this.getVisibilityEl().removeClass('x-hide-' + this.hideMode); }, - + hide : function(){ if(this.fireEvent('beforehide', this) !== false){ this.doHide(); @@ -11817,7 +11817,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + doHide: function(){ this.hidden = true; if(this.rendered){ @@ -11825,53 +11825,53 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + onHide : function(){ this.getVisibilityEl().addClass('x-hide-' + this.hideMode); }, - + getVisibilityEl : function(){ return this.hideParent ? this.container : this.getActionEl(); }, - + setVisible : function(visible){ return this[visible ? 'show' : 'hide'](); }, - + isVisible : function(){ return this.rendered && this.getVisibilityEl().isVisible(); }, - + cloneConfig : function(overrides){ overrides = overrides || {}; var id = overrides.id || Ext.id(); var cfg = Ext.applyIf(overrides, this.initialConfig); - cfg.id = id; + cfg.id = id; return new this.constructor(cfg); }, - + getXType : function(){ return this.constructor.xtype; }, - + isXType : function(xtype, shallow){ - + if (Ext.isFunction(xtype)){ - xtype = xtype.xtype; + xtype = xtype.xtype; }else if (Ext.isObject(xtype)){ - xtype = xtype.constructor.xtype; + xtype = xtype.constructor.xtype; } return !shallow ? ('/' + this.getXTypes() + '/').indexOf('/' + xtype + '/') != -1 : this.constructor.xtype == xtype; }, - + getXTypes : function(){ var tc = this.constructor; if(!tc.xtypes){ @@ -11886,20 +11886,20 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return tc.xtypes; }, - + findParentBy : function(fn) { for (var p = this.ownerCt; (p != null) && !fn(p, this); p = p.ownerCt); return p || null; }, - + findParentByType : function(xtype, shallow){ return this.findParentBy(function(c){ return c.isXType(xtype, shallow); }); }, - + bubble : function(fn, scope, args){ var p = this; while(p){ @@ -11911,12 +11911,12 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return this; }, - + getPositionEl : function(){ return this.positionEl || this.el; }, - + purgeListeners : function(){ Ext.Component.superclass.purgeListeners.call(this); if(this.mons){ @@ -11924,7 +11924,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + clearMons : function(){ Ext.each(this.mons, function(m){ m.item.un(m.ename, m.fn, m.scope); @@ -11932,7 +11932,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { this.mons = []; }, - + createMons: function(){ if(!this.mons){ this.mons = []; @@ -11940,7 +11940,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { } }, - + mon : function(item, ename, fn, scope, opt){ this.createMons(); if(Ext.isObject(ename)){ @@ -11952,13 +11952,13 @@ Ext.extend(Ext.Component, Ext.util.Observable, { continue; } if(Ext.isFunction(o[e])){ - + this.mons.push({ item: item, ename: e, fn: o[e], scope: o.scope }); item.on(e, o[e], o.scope, o); }else{ - + this.mons.push({ item: item, ename: e, fn: o[e], scope: o.scope }); @@ -11974,7 +11974,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { item.on(ename, fn, scope, opt); }, - + mun : function(item, ename, fn, scope){ var found, mon; this.createMons(); @@ -11990,7 +11990,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return found; }, - + nextSibling : function(){ if(this.ownerCt){ var index = this.ownerCt.items.indexOf(this); @@ -12001,7 +12001,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return null; }, - + previousSibling : function(){ if(this.ownerCt){ var index = this.ownerCt.items.indexOf(this); @@ -12012,7 +12012,7 @@ Ext.extend(Ext.Component, Ext.util.Observable, { return null; }, - + getBubbleTarget : function(){ return this.ownerCt; } @@ -12021,100 +12021,100 @@ Ext.extend(Ext.Component, Ext.util.Observable, { Ext.reg('component', Ext.Component); Ext.Action = Ext.extend(Object, { - - - - - - - + + + + + + + constructor : function(config){ this.initialConfig = config; this.itemId = config.itemId = (config.itemId || config.id || Ext.id()); this.items = []; }, - - + + isAction : true, - + setText : function(text){ this.initialConfig.text = text; this.callEach('setText', [text]); }, - + getText : function(){ return this.initialConfig.text; }, - + setIconClass : function(cls){ this.initialConfig.iconCls = cls; this.callEach('setIconClass', [cls]); }, - + getIconClass : function(){ return this.initialConfig.iconCls; }, - + setDisabled : function(v){ this.initialConfig.disabled = v; this.callEach('setDisabled', [v]); }, - + enable : function(){ this.setDisabled(false); }, - + disable : function(){ this.setDisabled(true); }, - + isDisabled : function(){ return this.initialConfig.disabled; }, - + setHidden : function(v){ this.initialConfig.hidden = v; this.callEach('setVisible', [!v]); }, - + show : function(){ this.setHidden(false); }, - + hide : function(){ this.setHidden(true); }, - + isHidden : function(){ return this.initialConfig.hidden; }, - + setHandler : function(fn, scope){ this.initialConfig.handler = fn; this.initialConfig.scope = scope; this.callEach('setHandler', [fn, scope]); }, - + each : function(fn, scope){ Ext.each(this.items, fn, scope); }, - + callEach : function(fnName, args){ var cs = this.items; for(var i = 0, len = cs.length; i < len; i++){ @@ -12122,18 +12122,18 @@ Ext.Action = Ext.extend(Object, { } }, - + addComponent : function(comp){ this.items.push(comp); comp.on('destroy', this.removeComponent, this); }, - + removeComponent : function(comp){ this.items.remove(comp); }, - + execute : function(){ this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments); } @@ -12144,7 +12144,7 @@ Ext.Layer = function(config, existingEl){ config = config || {}; var dh = Ext.DomHelper, cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body; - + if (existingEl) { this.dom = Ext.getDom(existingEl); } @@ -12242,9 +12242,9 @@ Ext.extend(Ext.Layer, Ext.Element, { } }, - - - + + + sync : function(doShow){ var shadow = this.shadow; if(!this.updating && this.isVisible() && (shadow || this.useShim)){ @@ -12264,7 +12264,7 @@ Ext.extend(Ext.Layer, Ext.Element, { if(doShow){ shim.show(); } - + var shadowAdj = shadow.el.getXY(), shimStyle = shim.dom.style, shadowSize = shadow.el.getSize(); shimStyle.left = (shadowAdj[0])+'px'; @@ -12282,7 +12282,7 @@ Ext.extend(Ext.Layer, Ext.Element, { } }, - + destroy : function(){ this.hideShim(); if(this.shadow){ @@ -12297,18 +12297,18 @@ Ext.extend(Ext.Layer, Ext.Element, { this.destroy(); }, - + beginUpdate : function(){ this.updating = true; }, - + endUpdate : function(){ this.updating = false; this.sync(true); }, - + hideUnders : function(negOffset){ if(this.shadow){ this.shadow.hide(); @@ -12316,7 +12316,7 @@ Ext.extend(Ext.Layer, Ext.Element, { this.hideShim(); }, - + constrainXY : function(){ if(this.constrain){ var vw = Ext.lib.Dom.getViewWidth(), @@ -12327,9 +12327,9 @@ Ext.extend(Ext.Layer, Ext.Element, { var x = xy[0], y = xy[1]; var so = this.shadowOffset; var w = this.dom.offsetWidth+so, h = this.dom.offsetHeight+so; - + var moved = false; - + if((x + w) > vw+s.left){ x = vw - w - so; moved = true; @@ -12338,7 +12338,7 @@ Ext.extend(Ext.Layer, Ext.Element, { y = vh - h - so; moved = true; } - + if(x < s.left){ x = s.left; moved = true; @@ -12362,18 +12362,18 @@ Ext.extend(Ext.Layer, Ext.Element, { } return this; }, - + getConstrainOffset : function(){ - return this.shadowOffset; + return this.shadowOffset; }, isVisible : function(){ return this.visible; }, - + showAction : function(){ - this.visible = true; + this.visible = true; if(this.useDisplay === true){ this.setDisplayed(''); }else if(this.lastXY){ @@ -12383,7 +12383,7 @@ Ext.extend(Ext.Layer, Ext.Element, { } }, - + hideAction : function(){ this.visible = false; if(this.useDisplay === true){ @@ -12393,7 +12393,7 @@ Ext.extend(Ext.Layer, Ext.Element, { } }, - + setVisible : function(v, a, d, c, e){ if(v){ this.showAction(); @@ -12439,26 +12439,26 @@ Ext.extend(Ext.Layer, Ext.Element, { this.lastLT = [left, top]; }, - + beforeFx : function(){ this.beforeAction(); return Ext.Layer.superclass.beforeFx.apply(this, arguments); }, - + afterFx : function(){ Ext.Layer.superclass.afterFx.apply(this, arguments); this.sync(this.isVisible()); }, - + beforeAction : function(){ if(!this.updating && this.shadow){ this.shadow.hide(); } }, - + setLeft : function(left){ this.storeLeftTop(left, this.getTop(true)); supr.setLeft.apply(this, arguments); @@ -12492,7 +12492,7 @@ Ext.extend(Ext.Layer, Ext.Element, { return this; }, - + createCB : function(c){ var el = this; return function(){ @@ -12504,19 +12504,19 @@ Ext.extend(Ext.Layer, Ext.Element, { }; }, - + setX : function(x, a, d, c, e){ this.setXY([x, this.getY()], a, d, c, e); return this; }, - + setY : function(y, a, d, c, e){ this.setXY([this.getX(), y], a, d, c, e); return this; }, - + setSize : function(w, h, a, d, c, e){ this.beforeAction(); var cb = this.createCB(c); @@ -12527,7 +12527,7 @@ Ext.extend(Ext.Layer, Ext.Element, { return this; }, - + setWidth : function(w, a, d, c, e){ this.beforeAction(); var cb = this.createCB(c); @@ -12538,7 +12538,7 @@ Ext.extend(Ext.Layer, Ext.Element, { return this; }, - + setHeight : function(h, a, d, c, e){ this.beforeAction(); var cb = this.createCB(c); @@ -12549,7 +12549,7 @@ Ext.extend(Ext.Layer, Ext.Element, { return this; }, - + setBounds : function(x, y, w, h, a, d, c, e){ this.beforeAction(); var cb = this.createCB(c); @@ -12564,7 +12564,7 @@ Ext.extend(Ext.Layer, Ext.Element, { return this; }, - + setZIndex : function(zindex){ this.zindex = zindex; this.setStyle('z-index', zindex + 2); @@ -12590,7 +12590,7 @@ Ext.Shadow = function(config) { }, rad = Math.floor(this.offset / 2); switch (this.mode.toLowerCase()) { - + case "drop": a.w = 0; a.l = a.t = o; @@ -12636,14 +12636,14 @@ Ext.Shadow = function(config) { }; Ext.Shadow.prototype = { - - + + offset: 4, - + defaultMode: "drop", - + show: function(target) { target = Ext.get(target); if (!this.el) { @@ -12665,12 +12665,12 @@ Ext.Shadow.prototype = { this.el.dom.style.display = "block"; }, - + isVisible: function() { return this.el ? true: false; }, - + realign: function(l, t, w, h) { if (!this.el) { return; @@ -12701,7 +12701,7 @@ Ext.Shadow.prototype = { } }, - + hide: function() { if (this.el) { this.el.dom.style.display = "none"; @@ -12710,7 +12710,7 @@ Ext.Shadow.prototype = { } }, - + setZIndex: function(z) { this.zIndex = z; if (this.el) { @@ -12742,52 +12742,52 @@ Ext.Shadow.Pool = function() { }(); Ext.BoxComponent = Ext.extend(Ext.Component, { - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + initComponent : function(){ Ext.BoxComponent.superclass.initComponent.call(this); this.addEvents( - + 'resize', - + 'move' ); }, - + boxReady : false, - + deferHeight: false, - + setSize : function(w, h){ - + if(typeof w == 'object'){ h = w.height; w = w.width; @@ -12804,14 +12804,14 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { if (Ext.isDefined(h) && Ext.isDefined(this.boxMaxHeight) && (h > this.boxMaxHeight)) { h = this.boxMaxHeight; } - + if(!this.boxReady){ this.width = w; this.height = h; return this; } - + if(this.cacheSizes !== false && this.lastSize && this.lastSize.width == w && this.lastSize.height == h){ return this; } @@ -12820,7 +12820,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { aw = adj.width, ah = adj.height, rz; - if(aw !== undefined || ah !== undefined){ + if(aw !== undefined || ah !== undefined){ rz = this.getResizeEl(); if(!this.deferHeight && aw !== undefined && ah !== undefined){ rz.setSize(aw, ah); @@ -12835,39 +12835,39 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return this; }, - + setWidth : function(width){ return this.setSize(width); }, - + setHeight : function(height){ return this.setSize(undefined, height); }, - + getSize : function(){ return this.getResizeEl().getSize(); }, - + getWidth : function(){ return this.getResizeEl().getWidth(); }, - + getHeight : function(){ return this.getResizeEl().getHeight(); }, - + getOuterSize : function(){ var el = this.getResizeEl(); return {width: el.getWidth() + el.getMargins('lr'), height: el.getHeight() + el.getMargins('tb')}; }, - + getPosition : function(local){ var el = this.getPositionEl(); if(local === true){ @@ -12876,7 +12876,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return this.xy || el.getXY(); }, - + getBox : function(local){ var pos = this.getPosition(local); var s = this.getSize(); @@ -12885,19 +12885,19 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return s; }, - + updateBox : function(box){ this.setSize(box.width, box.height); this.setPagePosition(box.x, box.y); return this; }, - + getResizeEl : function(){ return this.resizeEl || this.el; }, - + setAutoScroll : function(scroll){ if(this.rendered){ this.getContentTarget().setOverflow(scroll ? 'auto' : ''); @@ -12906,7 +12906,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return this; }, - + setPosition : function(x, y){ if(x && typeof x[1] == 'number'){ y = x[1]; @@ -12935,7 +12935,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return this; }, - + setPagePosition : function(x, y){ if(x && typeof x[1] == 'number'){ y = x[1]; @@ -12946,7 +12946,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { if(!this.boxReady){ return; } - if(x === undefined || y === undefined){ + if(x === undefined || y === undefined){ return; } var p = this.getPositionEl().translatePoints(x, y); @@ -12954,7 +12954,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return this; }, - + afterRender : function(){ Ext.BoxComponent.superclass.afterRender.call(this); if(this.resizeEl){ @@ -12973,23 +12973,23 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { } }, - + syncSize : function(){ delete this.lastSize; this.setSize(this.autoWidth ? undefined : this.getResizeEl().getWidth(), this.autoHeight ? undefined : this.getResizeEl().getHeight()); return this; }, - + onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ }, - + onPosition : function(x, y){ }, - + adjustSize : function(w, h){ if(this.autoWidth){ w = 'auto'; @@ -13000,7 +13000,7 @@ Ext.BoxComponent = Ext.extend(Ext.Component, { return {width : w, height: h}; }, - + adjustPosition : function(x, y){ return {x : x, y: y}; } @@ -13015,69 +13015,69 @@ Ext.Spacer = Ext.extend(Ext.BoxComponent, { Ext.reg('spacer', Ext.Spacer); Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){ - + this.el = Ext.get(dragElement, true); this.el.unselectable(); - + this.resizingEl = Ext.get(resizingElement, true); - + this.orientation = orientation || Ext.SplitBar.HORIZONTAL; - - + + this.minSize = 0; - + this.maxSize = 2000; - + this.animate = false; - + this.useShim = false; - + this.shim = null; if(!existingProxy){ - + this.proxy = Ext.SplitBar.createProxy(this.orientation); }else{ this.proxy = Ext.get(existingProxy).dom; } - + this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId : this.proxy.id}); - + this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); - + this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); - + this.dragSpecs = {}; - + this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); this.adapter.init(this); if(this.orientation == Ext.SplitBar.HORIZONTAL){ - + this.placement = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); this.el.addClass("x-splitbar-h"); }else{ - + this.placement = placement || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); this.el.addClass("x-splitbar-v"); } this.addEvents( - + "resize", - + "moved", - + "beforeresize", "beforeapply" @@ -13121,7 +13121,7 @@ Ext.extend(Ext.SplitBar, Ext.util.Observable, { Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y); }, - + onEndProxyDrag : function(e){ Ext.get(this.proxy).setDisplayed(false); var endPoint = Ext.lib.Event.getXY(e); @@ -13153,38 +13153,38 @@ Ext.extend(Ext.SplitBar, Ext.util.Observable, { } }, - + getAdapter : function(){ return this.adapter; }, - + setAdapter : function(adapter){ this.adapter = adapter; this.adapter.init(this); }, - + getMinimumSize : function(){ return this.minSize; }, - + setMinimumSize : function(minSize){ this.minSize = minSize; }, - + getMaximumSize : function(){ return this.maxSize; }, - + setMaximumSize : function(maxSize){ this.maxSize = maxSize; }, - + setCurrentSize : function(size){ var oldAnimate = this.animate; this.animate = false; @@ -13192,7 +13192,7 @@ Ext.extend(Ext.SplitBar, Ext.util.Observable, { this.animate = oldAnimate; }, - + destroy : function(removeEl){ Ext.destroy(this.shim, Ext.get(this.proxy)); this.dd.unreg(); @@ -13218,11 +13218,11 @@ Ext.SplitBar.BasicLayoutAdapter = function(){ }; Ext.SplitBar.BasicLayoutAdapter.prototype = { - + init : function(s){ }, - + getElementSize : function(s){ if(s.orientation == Ext.SplitBar.HORIZONTAL){ return s.resizingEl.getWidth(); @@ -13231,7 +13231,7 @@ Ext.SplitBar.BasicLayoutAdapter.prototype = { } }, - + setElementSize : function(s, newSize, onComplete){ if(s.orientation == Ext.SplitBar.HORIZONTAL){ if(!s.animate){ @@ -13313,51 +13313,51 @@ Ext.SplitBar.TOP = 3; Ext.SplitBar.BOTTOM = 4; Ext.Container = Ext.extend(Ext.BoxComponent, { - - - - + + + + bufferResize: 50, - - - - + + + + autoDestroy : true, - + forceLayout: false, - - + + defaultType : 'panel', - + resizeEvent: 'resize', - + bubbleEvents: ['add', 'remove'], - + initComponent : function(){ Ext.Container.superclass.initComponent.call(this); this.addEvents( - + 'afterlayout', - + 'beforeadd', - + 'beforeremove', - + 'add', - + 'remove' ); - + var items = this.items; if(items){ delete this.items; @@ -13365,15 +13365,15 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { } }, - + initItems : function(){ if(!this.items){ this.items = new Ext.util.MixedCollection(false, this.getComponentId); - this.getLayout(); + this.getLayout(); } }, - + setLayout : function(layout){ if(this.layout && this.layout != layout){ this.layout.setContainer(null); @@ -13384,8 +13384,8 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { }, afterRender: function(){ - - + + Ext.Container.superclass.afterRender.call(this); if(!this.layout){ this.layout = 'auto'; @@ -13399,36 +13399,36 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { } this.setLayout(this.layout); - + if(this.activeItem !== undefined && this.layout.setActiveItem){ var item = this.activeItem; delete this.activeItem; this.layout.setActiveItem(item); } - + if(!this.ownerCt){ this.doLayout(false, true); } - - + + if(this.monitorResize === true){ Ext.EventManager.onWindowResize(this.doLayout, this, [false]); } }, - + getLayoutTarget : function(){ return this.el; }, - + getComponentId : function(comp){ return comp.getItemId(); }, - + add : function(comp){ this.initItems(); var args = arguments.length > 1; @@ -13443,7 +13443,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { var index = this.items.length; if(this.fireEvent('beforeadd', this, c, index) !== false && this.onBeforeAdd(c) !== false){ this.items.add(c); - + c.onAdded(this, index); this.onAdd(c); this.fireEvent('add', this, c, index); @@ -13452,40 +13452,40 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { }, onAdd : function(c){ - + }, - + onAdded : function(container, pos) { - + this.ownerCt = container; this.initRef(); - + this.cascade(function(c){ c.initRef(); }); this.fireEvent('added', this, container, pos); }, - + insert : function(index, comp) { var args = arguments, length = args.length, result = [], i, c; - + this.initItems(); - + if (length > 2) { for (i = length - 1; i >= 1; --i) { result.push(this.insert(index, args[i])); } return result; } - + c = this.lookupComponent(this.applyDefaults(comp)); index = Math.min(index, this.items.length); - + if (this.fireEvent('beforeadd', this, c, index) !== false && this.onBeforeAdd(c) !== false) { if (c.ownerCt == this) { this.items.remove(c); @@ -13495,11 +13495,11 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { this.onAdd(c); this.fireEvent('add', this, c, index); } - + return c; }, - + applyDefaults : function(c){ var d = this.defaults; if(d){ @@ -13518,7 +13518,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return c; }, - + onBeforeAdd : function(item){ if(item.ownerCt){ item.ownerCt.remove(item, false); @@ -13528,7 +13528,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { } }, - + remove : function(comp, autoDestroy){ this.initItems(); var c = this.getComponent(comp); @@ -13540,10 +13540,10 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { }, onRemove: function(c){ - + }, - + doRemove: function(c, autoDestroy){ var l = this.layout, hasLayout = l && this.rendered; @@ -13562,7 +13562,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { } }, - + removeAll: function(autoDestroy){ this.initItems(); var item, rem = [], items = []; @@ -13579,7 +13579,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return items; }, - + getComponent : function(comp){ if(Ext.isObject(comp)){ comp = comp.getItemId(); @@ -13587,7 +13587,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return this.items.get(comp); }, - + lookupComponent : function(comp){ if(Ext.isString(comp)){ return Ext.ComponentMgr.get(comp); @@ -13597,13 +13597,13 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return comp; }, - + createComponent : function(config, defaultType){ if (config.render) { return config; } - - + + var c = Ext.create(Ext.apply({ ownerCt: this }, config), defaultType || this.defaultType); @@ -13612,13 +13612,13 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return c; }, - + canLayout : function() { var el = this.getVisibilityEl(); return el && el.dom && !el.isStyle("display", "none"); }, - + doLayout : function(shallow, force){ var rendered = this.rendered, @@ -13648,28 +13648,28 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { if(rendered){ this.onLayout(shallow, forceLayout); } - + this.hasLayout = true; delete this.forceLayout; }, onLayout : Ext.emptyFn, - + shouldBufferLayout: function(){ - + var hl = this.hasLayout; if(this.ownerCt){ - + return hl ? !this.hasLayoutPending() : false; } - + return hl; }, - + hasLayoutPending: function(){ - + var pending = false; this.ownerCt.bubble(function(c){ if(c.layoutPending){ @@ -13681,16 +13681,16 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { }, onShow : function(){ - + Ext.Container.superclass.onShow.call(this); - + if(Ext.isDefined(this.deferLayout)){ delete this.deferLayout; this.doLayout(true); } }, - + getLayout : function(){ if(!this.layout){ var layout = new Ext.layout.AutoLayout(this.layoutConfig); @@ -13699,7 +13699,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return this.layout; }, - + beforeDestroy : function(){ var c; if(this.items){ @@ -13714,7 +13714,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { Ext.Container.superclass.beforeDestroy.call(this); }, - + cascade : function(fn, scope, args){ if(fn.apply(scope || this, args || [this]) !== false){ if(this.items){ @@ -13731,9 +13731,9 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return this; }, - + findById : function(id){ - var m = null, + var m = null, ct = this; this.cascade(function(c){ if(ct != c && c.id === id){ @@ -13744,21 +13744,21 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return m; }, - + findByType : function(xtype, shallow){ return this.findBy(function(c){ return c.isXType(xtype, shallow); }); }, - + find : function(prop, value){ return this.findBy(function(c){ return c[prop] === value; }); }, - + findBy : function(fn, scope){ var m = [], ct = this; this.cascade(function(c){ @@ -13769,7 +13769,7 @@ Ext.Container = Ext.extend(Ext.BoxComponent, { return m; }, - + get : function(key){ return this.getComponent(key); } @@ -13779,14 +13779,14 @@ Ext.Container.LAYOUTS = {}; Ext.reg('container', Ext.Container); Ext.layout.ContainerLayout = Ext.extend(Object, { - - - - + + + + monitorResize:false, - + activeItem : null, constructor : function(config){ @@ -13796,7 +13796,7 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { type: 'container', - + IEMeasureHack : function(target, viewFlag) { var tChildren = target.dom.childNodes, tLen = tChildren.length, c, d = [], e, i, ret; for (i = 0 ; i < tLen ; i++) { @@ -13818,10 +13818,10 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { return ret; }, - + getLayoutTargetSize : Ext.EmptyFn, - + layout : function(){ var ct = this.container, target = ct.getLayoutTarget(); if(!(this.hasLayout || Ext.isEmpty(this.targetCls))){ @@ -13831,17 +13831,17 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { ct.fireEvent('afterlayout', ct, this); }, - + onLayout : function(ct, target){ this.renderAll(ct, target); }, - + isValidParent : function(c, target){ return target && c.getPositionEl().dom.parentNode == (target.dom || target); }, - + renderAll : function(ct, target){ var items = ct.items.items, i, c, len = items.length; for(i = 0; i < len; i++) { @@ -13852,7 +13852,7 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { } }, - + renderItem : function(c, position, target){ if (c) { if (!c.rendered) { @@ -13870,8 +13870,8 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { } }, - - + + getRenderedItems: function(ct){ var t = ct.getLayoutTarget(), cti = ct.items.items, len = cti.length, i, c, items = []; for (i = 0; i < len; i++) { @@ -13882,14 +13882,14 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { return items; }, - + configureItem: function(c){ if (this.extraCls) { var t = c.getPositionEl ? c.getPositionEl() : c; t.addClass(this.extraCls); } - + if (c.doLayout && this.forceLayout) { c.doLayout(); } @@ -13915,7 +13915,7 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { } }, - + onResize: function(){ var ct = this.container, b; @@ -13941,9 +13941,9 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { delete ct.layoutPending; }, - + setContainer : function(ct){ - + if(this.monitorResize && ct != this.container){ var old = this.container; if(old){ @@ -13956,7 +13956,7 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { this.container = ct; }, - + parseMargins : function(v){ if (Ext.isNumber(v)) { v = v.toString(); @@ -13981,7 +13981,7 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { }; }, - + fieldTpl: (function() { var t = new Ext.Template( '
', @@ -13994,9 +13994,9 @@ Ext.layout.ContainerLayout = Ext.extend(Object, { return t.compile(); })(), - + destroy : function(){ - + if(this.resizeTask && this.resizeTask.cancel){ this.resizeTask.cancel(); } @@ -14022,7 +14022,7 @@ Ext.layout.AutoLayout = Ext.extend(Ext.layout.ContainerLayout, { for(i = 0; i < len; i++){ c = cs[i]; if (c.doLayout){ - + c.doLayout(true); } } @@ -14032,7 +14032,7 @@ Ext.layout.AutoLayout = Ext.extend(Ext.layout.ContainerLayout, { Ext.Container.LAYOUTS['auto'] = Ext.layout.AutoLayout; Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, { - + monitorResize:true, type: 'fit', @@ -14042,11 +14042,11 @@ Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, { if (!target) { return {}; } - + return target.getStyleSize(); }, - + onLayout : function(ct, target){ Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target); if(!ct.collapsed){ @@ -14054,37 +14054,37 @@ Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + setItemSize : function(item, size){ - if(item && size.height > 0){ + if(item && size.height > 0){ item.setSize(size); } } }); Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout; Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { - + deferredRender : false, - + layoutOnCardChange : false, - - + + renderHidden : true, type: 'card', - + setActiveItem : function(item){ var ai = this.activeItem, ct = this.container; item = ct.getComponent(item); - + if(item && ai != item){ - + if(ai){ ai.hide(); if (ai.hidden !== true) { @@ -14095,14 +14095,14 @@ Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { var layout = item.doLayout && (this.layoutOnCardChange || !item.rendered); - + this.activeItem = item; - - + + delete item.deferLayout; - + item.show(); this.layout(); @@ -14114,7 +14114,7 @@ Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { } }, - + renderAll : function(ct, target){ if(this.deferredRender){ this.renderItem(this.activeItem, undefined, target); @@ -14126,14 +14126,14 @@ Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, { Ext.Container.LAYOUTS['card'] = Ext.layout.CardLayout; Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { - - + + monitorResize : true, type : 'anchor', - + defaultAnchor : '100%', parseAnchorRE : /^(r|right|b|bottom)$/i, @@ -14144,9 +14144,9 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { if (target) { ret = target.getViewSize(); - - - + + + if (Ext.isIE9m && Ext.isStrict && ret.width == 0){ ret = target.getStyleSize(); } @@ -14156,7 +14156,7 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { return ret; }, - + onLayout : function(container, target) { Ext.layout.AnchorLayout.superclass.onLayout.call(this, container, target); @@ -14183,7 +14183,7 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { return; } - + if(container.anchorSize) { if(typeof container.anchorSize == 'number') { anchorWidth = container.anchorSize; @@ -14200,14 +14200,14 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { component = components[i]; el = component.getPositionEl(); - + if (!component.anchor && component.items && !Ext.isNumber(component.width) && !(Ext.isIE6 && Ext.isStrict)){ component.anchor = this.defaultAnchor; } if(component.anchor) { anchorSpec = component.anchorSpec; - + if(!anchorSpec){ anchorsArray = component.anchor.split(' '); component.anchorSpec = anchorSpec = { @@ -14243,11 +14243,11 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { delete this.adjustmentPass; }, - + parseAnchor : function(a, start, cstart) { if (a && a != 'none') { var last; - + if (this.parseAnchorRE.test(a)) { var diff = cstart - start; return function(v){ @@ -14256,7 +14256,7 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { return v - diff; } }; - + } else if(a.indexOf('%') != -1) { var ratio = parseFloat(a.replace('%', ''))*.01; return function(v){ @@ -14265,7 +14265,7 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { return Math.floor(v*ratio); } }; - + } else { a = parseInt(a, 10); if (!isNaN(a)) { @@ -14281,22 +14281,22 @@ Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, { return false; }, - + adjustWidthAnchor : function(value, comp){ return value; }, - + adjustHeightAnchor : function(value, comp){ return value; } - + }); Ext.Container.LAYOUTS['anchor'] = Ext.layout.AnchorLayout; Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { - + monitorResize:true, type: 'column', @@ -14305,7 +14305,7 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { scrollOffset : 0, - + targetCls: 'x-column-layout-ct', @@ -14318,9 +14318,9 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { if (target) { ret = target.getViewSize(); - - - + + + if (Ext.isIE9m && Ext.isStrict && ret.width == 0){ ret = target.getStyleSize(); } @@ -14333,15 +14333,15 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { renderAll : function(ct, target) { if(!this.innerCt){ - - + + this.innerCt = target.createChild({cls:'x-column-inner'}); this.innerCt.createChild({cls:'x-clear'}); } Ext.layout.ColumnLayout.superclass.renderAll.call(this, ct, this.innerCt); }, - + onLayout : function(ct, target){ var cs = ct.items.items, len = cs.length, @@ -14354,7 +14354,7 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { var size = this.getLayoutTargetSize(); - if (Ext.isIE9m && (size.width < 1 && size.height < 1)) { + if (Ext.isIE9m && (size.width < 1 && size.height < 1)) { return; } @@ -14364,8 +14364,8 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { this.innerCt.setWidth(w); - - + + for(i = 0; i < len; i++){ c = cs[i]; @@ -14386,8 +14386,8 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { } } - - + + if (Ext.isIE9m) { if (i = target.getStyle('overflow') && i != 'hidden' && !this.adjustmentPass) { var ts = this.getLayoutTargetSize(); @@ -14400,15 +14400,15 @@ Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, { delete this.adjustmentPass; } - + }); Ext.Container.LAYOUTS['column'] = Ext.layout.ColumnLayout; Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { - + monitorResize:true, - + rendered : false, type: 'border', @@ -14420,7 +14420,7 @@ Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { return target ? target.getViewSize() : {}; }, - + onLayout : function(ct, target){ var collapsed, i, c, pos, items = ct.items.items, len = items.length; if(!this.rendered){ @@ -14445,7 +14445,7 @@ Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { } var size = this.getLayoutTargetSize(); - if(size.width < 20 || size.height < 20){ + if(size.width < 20 || size.height < 20){ if(collapsed){ this.restoreCollapsed = collapsed; } @@ -14519,10 +14519,10 @@ Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { collapsed[i].collapse(false); } } - if(Ext.isIE9m && Ext.isStrict){ + if(Ext.isIE9m && Ext.isStrict){ target.repaint(); } - + if (i = target.getStyle('overflow') && i != 'hidden' && !this.adjustmentPass) { var ts = this.getLayoutTargetSize(); if (ts.width != size.width || ts.height != size.height){ @@ -14548,7 +14548,7 @@ Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, { Ext.layout.BorderLayout.superclass.destroy.call(this); } - + }); @@ -14575,38 +14575,38 @@ Ext.layout.BorderLayout.Region = function(layout, config, pos){ }; Ext.layout.BorderLayout.Region.prototype = { - - - - - - + + + + + + collapsible : false, - + split:false, - + floatable: true, - + minWidth:50, - + minHeight:50, - + defaultMargins : {left:0,top:0,right:0,bottom:0}, - + defaultNSCMargins : {left:5,top:5,right:5,bottom:5}, - + defaultEWCMargins : {left:5,top:0,right:5,bottom:0}, floatingZIndex: 100, - + isCollapsed : false, - - - - + + + + render : function(ct, p){ this.panel = p; p.el.enableDisplayMode(); @@ -14640,7 +14640,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + getCollapsedEl : function(){ if(!this.collapsedEl){ if(!this.toolTemplate){ @@ -14682,7 +14682,7 @@ Ext.layout.BorderLayout.Region.prototype = { return this.collapsedEl; }, - + onExpandClick : function(e){ if(this.isSlid){ this.panel.expand(false); @@ -14691,12 +14691,12 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + onCollapseClick : function(e){ this.panel.collapse(); }, - + beforeCollapse : function(p, animate){ this.lastAnim = animate; if(this.splitEl){ @@ -14710,7 +14710,7 @@ Ext.layout.BorderLayout.Region.prototype = { this.layout.layout(); }, - + onCollapse : function(animate){ this.panel.el.setStyle('z-index', 1); if(this.lastAnim === false || this.panel.animCollapse === false){ @@ -14722,7 +14722,7 @@ Ext.layout.BorderLayout.Region.prototype = { this.panel.saveState(); }, - + beforeExpand : function(animate){ if(this.isSlid){ this.afterSlideIn(); @@ -14739,7 +14739,7 @@ Ext.layout.BorderLayout.Region.prototype = { this.panel.el.setStyle('z-index', this.floatingZIndex); }, - + onExpand : function(){ this.isCollapsed = false; if(this.splitEl){ @@ -14751,7 +14751,7 @@ Ext.layout.BorderLayout.Region.prototype = { this.panel.saveState(); }, - + collapseClick : function(e){ if(this.isSlid){ e.stopPropagation(); @@ -14762,7 +14762,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + onHide : function(){ if(this.isCollapsed){ this.getCollapsedEl().hide(); @@ -14771,7 +14771,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + onShow : function(){ if(this.isCollapsed){ this.getCollapsedEl().show(); @@ -14780,44 +14780,44 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + isVisible : function(){ return !this.panel.hidden; }, - + getMargins : function(){ return this.isCollapsed && this.cmargins ? this.cmargins : this.margins; }, - + getSize : function(){ return this.isCollapsed ? this.getCollapsedEl().getSize() : this.panel.getSize(); }, - + setPanel : function(panel){ this.panel = panel; }, - + getMinWidth: function(){ return this.minWidth; }, - + getMinHeight: function(){ return this.minHeight; }, - + applyLayoutCollapsed : function(box){ var ce = this.getCollapsedEl(); ce.setLeftTop(box.x, box.y); ce.setSize(box.width, box.height); }, - + applyLayout : function(box){ if(this.isCollapsed){ this.applyLayoutCollapsed(box); @@ -14827,17 +14827,17 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + beforeSlide: function(){ this.panel.beforeEffect(); }, - + afterSlide : function(){ this.panel.afterEffect(); }, - + initAutoHide : function(){ if(this.autoHide !== false){ if(!this.autoHideHd){ @@ -14859,7 +14859,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + clearAutoHide : function(){ if(this.autoHide !== false){ this.el.un("mouseout", this.autoHideHd.mouseout); @@ -14869,12 +14869,12 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + clearMonitor : function(){ Ext.getDoc().un("click", this.slideInIf, this); }, - + slideOut : function(){ if(this.isSlid || this.el.hasActiveFx()){ return; @@ -14886,24 +14886,24 @@ Ext.layout.BorderLayout.Region.prototype = { } this.el.show(); - + pc = this.panel.collapsed; this.panel.collapsed = false; if(this.position == 'east' || this.position == 'west'){ - + dh = this.panel.deferHeight; this.panel.deferHeight = false; this.panel.setSize(undefined, this.collapsedEl.getHeight()); - + this.panel.deferHeight = dh; }else{ this.panel.setSize(this.collapsedEl.getWidth(), undefined); } - + this.panel.collapsed = pc; this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top]; @@ -14927,7 +14927,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + afterSlideIn : function(){ this.clearAutoHide(); this.isSlid = false; @@ -14943,7 +14943,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + slideIn : function(cb){ if(!this.isSlid || this.el.hasActiveFx()){ Ext.callback(cb); @@ -14968,14 +14968,14 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + slideInIf : function(e){ if(!e.within(this.el)){ this.slideIn(); } }, - + anchors : { "west" : "left", "east" : "right", @@ -14983,7 +14983,7 @@ Ext.layout.BorderLayout.Region.prototype = { "south" : "bottom" }, - + sanchors : { "west" : "l", "east" : "r", @@ -14991,7 +14991,7 @@ Ext.layout.BorderLayout.Region.prototype = { "south" : "b" }, - + canchors : { "west" : "tl-tr", "east" : "tr-tl", @@ -14999,22 +14999,22 @@ Ext.layout.BorderLayout.Region.prototype = { "south" : "bl-tl" }, - + getAnchor : function(){ return this.anchors[this.position]; }, - + getCollapseAnchor : function(){ return this.canchors[this.position]; }, - + getSlideAnchor : function(){ return this.sanchors[this.position]; }, - + getAlignAdj : function(){ var cm = this.cmargins; switch(this.position){ @@ -15033,7 +15033,7 @@ Ext.layout.BorderLayout.Region.prototype = { } }, - + getExpandAdj : function(){ var c = this.collapsedEl, cm = this.cmargins; switch(this.position){ @@ -15063,20 +15063,20 @@ Ext.layout.BorderLayout.Region.prototype = { Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){ Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos); - + this.applyLayout = this.applyFns[pos]; }; Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, { - - + + splitTip : "Drag to resize.", - + collapsibleSplitTip : "Drag to resize. Double click to hide.", - + useSplitTips : false, - + splitSettings : { north : { orientation: Ext.SplitBar.VERTICAL, @@ -15108,7 +15108,7 @@ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, } }, - + applyFns : { west : function(box){ if(this.isCollapsed){ @@ -15160,7 +15160,7 @@ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, } }, - + render : function(ct, p){ Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p); @@ -15202,7 +15202,7 @@ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, } }, - + getSize : function(){ if(this.isCollapsed){ return this.collapsedEl.getSize(); @@ -15216,21 +15216,21 @@ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, return s; }, - + getHMaxSize : function(){ var cmax = this.maxSize || 10000; var center = this.layout.center; return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth()); }, - + getVMaxSize : function(){ var cmax = this.maxSize || 10000; var center = this.layout.center; return Math.min(cmax, (this.el.getHeight()+center.el.getHeight())-center.getMinHeight()); }, - + onSplitMove : function(split, newSize){ var s = this.panel.getSize(); this.lastSplitSize = newSize; @@ -15246,12 +15246,12 @@ Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, return false; }, - + getSplitBar : function(){ return this.split; }, - + destroy : function() { Ext.destroy(this.miniSplitEl, this.split, this.splitEl); Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this); @@ -15262,12 +15262,12 @@ Ext.Container.LAYOUTS['border'] = Ext.layout.BorderLayout; Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { - + labelSeparator : ':', - - + + trackLabels: true, type: 'form', @@ -15278,7 +15278,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { c.un('show', this.onFieldShow, this); c.un('hide', this.onFieldHide, this); } - + var el = c.getPositionEl(), ct = c.getItemCt && c.getItemCt(); if (c.rendered && ct) { @@ -15293,7 +15293,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { } }, - + setContainer : function(ct){ Ext.layout.FormLayout.superclass.setContainer.call(this, ct); ct.labelAlign = ct.labelAlign || this.labelAlign; @@ -15301,7 +15301,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { ct.addClass('x-form-label-' + ct.labelAlign); } - if (ct.hideLabels || this.hideLabels) { + if (ct.hideLabels || this.hideLabels) { Ext.apply(this, { labelStyle: 'display:none', elementStyle: 'padding-left:0;', @@ -15329,7 +15329,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { } }, - + isHide: function(c){ return c.hideLabel || this.container.hideLabels; }, @@ -15337,7 +15337,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { onFieldShow: function(c){ c.getItemCt().removeClass('x-hide-' + c.hideMode); - + if (c.isComposite) { c.doLayout(); } @@ -15347,7 +15347,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { c.getItemCt().addClass('x-hide-' + c.hideMode); }, - + getLabelStyle: function(s){ var ls = '', items = [this.labelStyle, s]; for (var i = 0, len = items.length; i < len; ++i){ @@ -15361,9 +15361,9 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { return ls; }, - - + + renderItem : function(c, position, target){ if(c && (c.isFormField || c.fieldLabel) && c.inputType != 'hidden'){ var args = this.getTemplateArgs(c); @@ -15376,8 +15376,8 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { c.itemCt = this.fieldTpl.append(target, args, true); } if(!c.getItemCt){ - - + + Ext.apply(c, { getItemCt: function(){ return c.itemCt; @@ -15407,12 +15407,12 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { } }, - + getTemplateArgs: function(field) { var noLabelSep = !field.fieldLabel || field.hideLabel, itemCls = (field.itemCls || this.container.itemCls || '') + (field.hideLabel ? ' x-hide-label' : ''); - + if (Ext.isIE9 && Ext.isIEQuirks && field instanceof Ext.form.TextField) { itemCls += ' x-input-wrapper'; } @@ -15428,7 +15428,7 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { }; }, - + adjustWidthAnchor: function(value, c){ if(c.label && !this.isHide(c) && (this.container.labelAlign != 'top')){ var adjust = Ext.isIE6 || Ext.isIEQuirks; @@ -15444,32 +15444,32 @@ Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, { return value; }, - + isValidParent : function(c, target){ return target && this.container.getEl().contains(c.getPositionEl()); } - + }); Ext.Container.LAYOUTS['form'] = Ext.layout.FormLayout; Ext.layout.AccordionLayout = Ext.extend(Ext.layout.FitLayout, { - + fill : true, - + autoWidth : true, - + titleCollapse : true, - + hideCollapseTool : false, - + collapseFirst : false, - + animate : false, - + sequence : false, - + activeOnTop : false, type: 'accordion', @@ -15509,7 +15509,7 @@ Ext.layout.AccordionLayout = Ext.extend(Ext.layout.FitLayout, { c.un('beforeexpand', this.beforeExpand, this); }, - + beforeExpand : function(p, anim){ var ai = this.activeItem; if(ai){ @@ -15529,34 +15529,34 @@ Ext.layout.AccordionLayout = Ext.extend(Ext.layout.FitLayout, { if(this.activeOnTop){ p.el.dom.parentNode.insertBefore(p.el.dom, p.el.dom.parentNode.firstChild); } - + this.layout(); }, - + setItemSize : function(item, size){ if(this.fill && item){ var hh = 0, i, ct = this.getRenderedItems(this.container), len = ct.length, p; - + for (i = 0; i < len; i++) { if((p = ct[i]) != item && !p.hidden){ hh += p.header.getHeight(); } }; - + size.height -= hh; - - + + item.setSize(size); } }, - + setActiveItem : function(item){ this.setActive(item, true); }, - + setActive : function(item, expand){ var ai = this.activeItem; item = this.container.getComponent(item); @@ -15578,19 +15578,19 @@ Ext.Container.LAYOUTS.accordion = Ext.layout.AccordionLayout; Ext.layout.Accordion = Ext.layout.AccordionLayout; Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { - - + + monitorResize:false, type: 'table', targetCls: 'x-table-layout-ct', - + tableAttrs:null, - + setContainer : function(ct){ Ext.layout.TableLayout.superclass.setContainer.call(this, ct); @@ -15598,8 +15598,8 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { this.currentColumn = 0; this.cells = []; }, - - + + onLayout : function(ct, target){ var cs = ct.items.items, len = cs.length, c, i; @@ -15612,7 +15612,7 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { this.renderAll(ct, target); }, - + getRow : function(index){ var row = this.table.tBodies[0].childNodes[index]; if(!row){ @@ -15622,7 +15622,7 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { return row; }, - + getNextCell : function(c){ var cell = this.getNextNonSpan(this.currentColumn, this.currentRow); var curCol = this.currentColumn = cell[0], curRow = this.currentRow = cell[1]; @@ -15653,7 +15653,7 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { return td; }, - + getNextNonSpan: function(colIndex, rowIndex){ var cols = this.columns; while((cols && colIndex >= cols) || (this.cells[rowIndex] && this.cells[rowIndex][colIndex])) { @@ -15667,9 +15667,9 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { return [colIndex, rowIndex]; }, - + renderItem : function(c, position, target){ - + if(!this.table){ this.table = target.createChild( Ext.apply({tag:'table', cls:'x-table-layout', cellspacing: 0, cn: {tag: 'tbody'}}, this.tableAttrs), null, true); @@ -15685,17 +15685,17 @@ Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + isValidParent : function(c, target){ return c.getPositionEl().up('table', 5).dom.parentNode === (target.dom || target); }, - + destroy: function(){ delete this.table; Ext.layout.TableLayout.superclass.destroy.call(this); } - + }); Ext.Container.LAYOUTS['table'] = Ext.layout.TableLayout; @@ -15712,28 +15712,28 @@ Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, { Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, ct, target); }, - + adjustWidthAnchor : function(value, comp){ return value ? value - comp.getPosition(true)[0] + this.paddingLeft : value; }, - + adjustHeightAnchor : function(value, comp){ return value ? value - comp.getPosition(true)[1] + this.paddingTop : value; } - + }); Ext.Container.LAYOUTS['absolute'] = Ext.layout.AbsoluteLayout; Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { - + defaultMargins : {left:0,top:0,right:0,bottom:0}, - + padding : '0', - + pack : 'start', - + monitorResize : true, type: 'box', scrollOffset : 0, @@ -15747,29 +15747,29 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { if (Ext.isString(this.defaultMargins)) { this.defaultMargins = this.parseMargins(this.defaultMargins); } - + var handler = this.overflowHandler; - + if (typeof handler == 'string') { handler = { type: handler }; } - + var handlerType = 'none'; if (handler && handler.type != undefined) { handlerType = handler.type; } - + var constructor = Ext.layout.boxOverflow[handlerType]; if (constructor[this.type]) { constructor = constructor[this.type]; } - + this.overflowHandler = new constructor(this, handler); }, - + onLayout: function(container, target) { Ext.layout.BoxLayout.superclass.onLayout.call(this, container, target); @@ -15778,19 +15778,19 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { calcs = this.calculateChildBoxes(items, tSize), boxes = calcs.boxes, meta = calcs.meta; - - + + if (tSize.width > 0) { var handler = this.overflowHandler, method = meta.tooNarrow ? 'handleOverflow' : 'clearOverflow'; - + var results = handler[method](calcs, tSize); - + if (results) { if (results.targetSize) { tSize = results.targetSize; } - + if (results.recalculate) { items = this.getVisibleItems(container); calcs = this.calculateChildBoxes(items, tSize); @@ -15798,45 +15798,45 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { } } } - - + + this.layoutTargetLastSize = tSize; - - + + this.childBoxCache = calcs; - + this.updateInnerCtSize(tSize, calcs); this.updateChildBoxes(boxes); - + this.handleTargetOverflow(tSize, container, target); }, - + updateChildBoxes: function(boxes) { for (var i = 0, length = boxes.length; i < length; i++) { var box = boxes[i], comp = box.component; - + if (box.dirtySize) { comp.setSize(box.width, box.height); } - + if (isNaN(box.left) || isNaN(box.top)) { continue; } - + comp.setPosition(box.left, box.top); } }, - + updateInnerCtSize: function(tSize, calcs) { var align = this.align, padding = this.padding, width = tSize.width, height = tSize.height; - + if (this.type == 'hbox') { var innerCtWidth = width, innerCtHeight = calcs.meta.maxHeight + padding.top + padding.bottom; @@ -15860,7 +15860,7 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { this.innerCt.setSize(innerCtWidth || undefined, innerCtHeight || undefined); }, - + handleTargetOverflow: function(previousTargetSize, container, target) { var overflow = target.getStyle('overflow'); @@ -15875,12 +15875,12 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { delete this.adjustmentPass; }, - + isValidParent : function(c, target) { return this.innerCt && c.getPositionEl().dom.parentNode == this.innerCt.dom; }, - + getVisibleItems: function(ct) { var ct = ct || this.container, t = ct.getLayoutTarget(), @@ -15898,10 +15898,10 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { return items; }, - + renderAll : function(ct, target) { if (!this.innerCt) { - + this.innerCt = target.createChild({cls:this.innerCls}); this.padding = this.parseMargins(this.padding); } @@ -15910,13 +15910,13 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { getLayoutTargetSize : function() { var target = this.container.getLayoutTarget(), ret; - + if (target) { ret = target.getViewSize(); - - - + + + if (Ext.isIE9m && Ext.isStrict && ret.width == 0){ ret = target.getStyleSize(); } @@ -15924,11 +15924,11 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { ret.width -= target.getPadding('lr'); ret.height -= target.getPadding('tb'); } - + return ret; }, - + renderItem : function(c) { if(Ext.isString(c.margins)){ c.margins = this.parseMargins(c.margins); @@ -15937,11 +15937,11 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { } Ext.layout.BoxLayout.superclass.renderItem.apply(this, arguments); }, - - + + destroy: function() { Ext.destroy(this.overflowHandler); - + Ext.layout.BoxLayout.superclass.destroy.apply(this, arguments); } }); @@ -15951,12 +15951,12 @@ Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, { Ext.layout.boxOverflow.None = Ext.extend(Object, { constructor: function(layout, config) { this.layout = layout; - + Ext.apply(this, config || {}); }, - + handleOverflow: Ext.emptyFn, - + clearOverflow: Ext.emptyFn }); @@ -15964,37 +15964,37 @@ Ext.layout.boxOverflow.None = Ext.extend(Object, { Ext.layout.boxOverflow.none = Ext.layout.boxOverflow.None; Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { - + afterCls: 'x-strip-right', - - + + noItemsMenuText : '
(None)
', - + constructor: function(layout) { Ext.layout.boxOverflow.Menu.superclass.constructor.apply(this, arguments); - - + + this.menuItems = []; }, - - + + createInnerElements: function() { if (!this.afterCt) { this.afterCt = this.layout.innerCt.insertSibling({cls: this.afterCls}, 'before'); } }, - - + + clearOverflow: function(calculations, targetSize) { var newWidth = targetSize.width + (this.afterCt ? this.afterCt.getWidth() : 0), items = this.menuItems; - + this.hideTrigger(); - + for (var index = 0, length = items.length; index < length; index++) { items.pop().component.show(); } - + return { targetSize: { height: targetSize.height, @@ -16002,21 +16002,21 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { } }; }, - - + + showTrigger: function() { this.createMenu(); this.menuTrigger.show(); }, - - + + hideTrigger: function() { if (this.menuTrigger != undefined) { this.menuTrigger.hide(); } }, - - + + beforeMenuShow: function(menu) { var items = this.menuItems, len = items.length, @@ -16026,28 +16026,28 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { var needsSep = function(group, item){ return group.isXType('buttongroup') && !(item instanceof Ext.Toolbar.Separator); }; - + this.clearMenu(); menu.removeAll(); - + for (var i = 0; i < len; i++) { item = items[i].component; - + if (prev && (needsSep(item, prev) || needsSep(prev, item))) { menu.add('-'); } - + this.addComponentToMenu(menu, item); prev = item; } - + if (menu.items.length < 1) { menu.add(this.noItemsMenuText); } }, - - + + createMenuConfig : function(component, hideOnClick){ var config = Ext.apply({}, component.initialConfig), group = component.toggleGroup; @@ -16080,7 +16080,7 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { return config; }, - + addComponentToMenu : function(menu, component) { if (component instanceof Ext.Toolbar.Separator) { menu.add('-'); @@ -16099,8 +16099,8 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { } } }, - - + + clearMenu : function(){ var menu = this.moreMenu; if (menu && menu.items) { @@ -16109,13 +16109,13 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { }); } }, - - + + createMenu: function() { if (!this.menuTrigger) { this.createInnerElements(); - - + + this.menu = new Ext.menu.Menu({ ownerCt : this.layout.container, listeners: { @@ -16124,7 +16124,7 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { } }); - + this.menuTrigger = new Ext.Button({ iconCls : 'x-toolbar-more-icon', cls : 'x-toolbar-more', @@ -16133,8 +16133,8 @@ Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, { }); } }, - - + + destroy: function() { Ext.destroy(this.menu, this.menuTrigger); } @@ -16145,58 +16145,58 @@ Ext.layout.boxOverflow.menu = Ext.layout.boxOverflow.Menu; Ext.layout.boxOverflow.HorizontalMenu = Ext.extend(Ext.layout.boxOverflow.Menu, { - + constructor: function() { Ext.layout.boxOverflow.HorizontalMenu.superclass.constructor.apply(this, arguments); - + var me = this, layout = me.layout, origFunction = layout.calculateChildBoxes; - + layout.calculateChildBoxes = function(visibleItems, targetSize) { var calcs = origFunction.apply(layout, arguments), meta = calcs.meta, items = me.menuItems; - - - + + + var hiddenWidth = 0; for (var index = 0, length = items.length; index < length; index++) { hiddenWidth += items[index].width; } - + meta.minimumWidth += hiddenWidth; meta.tooNarrow = meta.minimumWidth > targetSize.width; - + return calcs; - }; + }; }, - + handleOverflow: function(calculations, targetSize) { this.showTrigger(); - + var newWidth = targetSize.width - this.afterCt.getWidth(), boxes = calculations.boxes, usedWidth = 0, recalculate = false; - - + + for (var index = 0, length = boxes.length; index < length; index++) { usedWidth += boxes[index].width; } - + var spareWidth = newWidth - usedWidth, showCount = 0; - - + + for (var index = 0, length = this.menuItems.length; index < length; index++) { var hidden = this.menuItems[index], comp = hidden.component, width = hidden.width; - + if (width < spareWidth) { comp.show(); - + spareWidth -= width; showCount ++; recalculate = true; @@ -16204,7 +16204,7 @@ Ext.layout.boxOverflow.HorizontalMenu = Ext.extend(Ext.layout.boxOverflow.Menu, break; } } - + if (recalculate) { this.menuItems = this.menuItems.slice(showCount); } else { @@ -16224,11 +16224,11 @@ Ext.layout.boxOverflow.HorizontalMenu = Ext.extend(Ext.layout.boxOverflow.Menu, } } } - + if (this.menuItems.length == 0) { this.hideTrigger(); } - + return { targetSize: { height: targetSize.height, @@ -16241,37 +16241,37 @@ Ext.layout.boxOverflow.HorizontalMenu = Ext.extend(Ext.layout.boxOverflow.Menu, Ext.layout.boxOverflow.menu.hbox = Ext.layout.boxOverflow.HorizontalMenu; Ext.layout.boxOverflow.Scroller = Ext.extend(Ext.layout.boxOverflow.None, { - + animateScroll: true, - - + + scrollIncrement: 100, - - + + wheelIncrement: 3, - - + + scrollRepeatInterval: 400, - - + + scrollDuration: 0.4, - - + + beforeCls: 'x-strip-left', - - + + afterCls: 'x-strip-right', - - + + scrollerCls: 'x-strip-scroller', - - + + beforeScrollerCls: 'x-strip-scroller-left', - - + + afterScrollerCls: 'x-strip-scroller-right', - - + + createWheelListener: function() { this.layout.innerCt.on({ scope : this, @@ -16282,162 +16282,162 @@ Ext.layout.boxOverflow.Scroller = Ext.extend(Ext.layout.boxOverflow.None, { } }); }, - - + + handleOverflow: function(calculations, targetSize) { this.createInnerElements(); this.showScrollers(); }, - - + + clearOverflow: function() { this.hideScrollers(); }, - - + + showScrollers: function() { this.createScrollers(); - + this.beforeScroller.show(); this.afterScroller.show(); - + this.updateScrollButtons(); }, - - + + hideScrollers: function() { if (this.beforeScroller != undefined) { this.beforeScroller.hide(); - this.afterScroller.hide(); + this.afterScroller.hide(); } }, - - + + createScrollers: function() { if (!this.beforeScroller && !this.afterScroller) { var before = this.beforeCt.createChild({ cls: String.format("{0} {1} ", this.scrollerCls, this.beforeScrollerCls) }); - + var after = this.afterCt.createChild({ cls: String.format("{0} {1}", this.scrollerCls, this.afterScrollerCls) }); - + before.addClassOnOver(this.beforeScrollerCls + '-hover'); after.addClassOnOver(this.afterScrollerCls + '-hover'); - + before.setVisibilityMode(Ext.Element.DISPLAY); after.setVisibilityMode(Ext.Element.DISPLAY); - + this.beforeRepeater = new Ext.util.ClickRepeater(before, { interval: this.scrollRepeatInterval, handler : this.scrollLeft, scope : this }); - + this.afterRepeater = new Ext.util.ClickRepeater(after, { interval: this.scrollRepeatInterval, handler : this.scrollRight, scope : this }); - - + + this.beforeScroller = before; - - + + this.afterScroller = after; } }, - - + + destroy: function() { Ext.destroy(this.beforeScroller, this.afterScroller, this.beforeRepeater, this.afterRepeater, this.beforeCt, this.afterCt); }, - - + + scrollBy: function(delta, animate) { this.scrollTo(this.getScrollPosition() + delta, animate); }, - - + + getItem: function(item) { if (Ext.isString(item)) { item = Ext.getCmp(item); } else if (Ext.isNumber(item)) { item = this.items[item]; } - + return item; }, - - + + getScrollAnim: function() { return { - duration: this.scrollDuration, - callback: this.updateScrollButtons, + duration: this.scrollDuration, + callback: this.updateScrollButtons, scope : this }; }, - - + + updateScrollButtons: function() { if (this.beforeScroller == undefined || this.afterScroller == undefined) { return; } - + var beforeMeth = this.atExtremeBefore() ? 'addClass' : 'removeClass', afterMeth = this.atExtremeAfter() ? 'addClass' : 'removeClass', beforeCls = this.beforeScrollerCls + '-disabled', afterCls = this.afterScrollerCls + '-disabled'; - + this.beforeScroller[beforeMeth](beforeCls); this.afterScroller[afterMeth](afterCls); this.scrolling = false; }, - - + + atExtremeBefore: function() { return this.getScrollPosition() === 0; }, - - + + scrollLeft: function(animate) { this.scrollBy(-this.scrollIncrement, animate); }, - - + + scrollRight: function(animate) { this.scrollBy(this.scrollIncrement, animate); }, - - + + scrollToItem: function(item, animate) { item = this.getItem(item); - + if (item != undefined) { var visibility = this.getItemVisibility(item); - + if (!visibility.fullyVisible) { var box = item.getBox(true, true), newX = box.x; - + if (visibility.hiddenRight) { newX -= (this.layout.innerCt.getWidth() - box.width); } - + this.scrollTo(newX, animate); } } }, - - + + getItemVisibility: function(item) { var box = this.getItem(item).getBox(true, true), itemLeft = box.x, itemRight = box.x + box.width, scrollLeft = this.getScrollPosition(), scrollRight = this.layout.innerCt.getWidth() + scrollLeft; - + return { hiddenLeft : itemLeft < scrollLeft, hiddenRight : itemRight > scrollRight, @@ -16453,10 +16453,10 @@ Ext.layout.boxOverflow.scroller = Ext.layout.boxOverflow.Scroller; Ext.layout.boxOverflow.VerticalScroller = Ext.extend(Ext.layout.boxOverflow.Scroller, { scrollIncrement: 75, wheelIncrement : 2, - + handleOverflow: function(calculations, targetSize) { Ext.layout.boxOverflow.VerticalScroller.superclass.handleOverflow.apply(this, arguments); - + return { targetSize: { height: targetSize.height - (this.beforeCt.getHeight() + this.afterCt.getHeight()), @@ -16464,13 +16464,13 @@ Ext.layout.boxOverflow.VerticalScroller = Ext.extend(Ext.layout.boxOverflow.Scro } }; }, - - + + createInnerElements: function() { var target = this.layout.innerCt; - - - + + + if (!this.beforeCt) { this.beforeCt = target.insertSibling({cls: this.beforeCls}, 'before'); this.afterCt = target.insertSibling({cls: this.afterCls}, 'after'); @@ -16478,19 +16478,19 @@ Ext.layout.boxOverflow.VerticalScroller = Ext.extend(Ext.layout.boxOverflow.Scro this.createWheelListener(); } }, - - + + scrollTo: function(position, animate) { var oldPosition = this.getScrollPosition(), newPosition = position.constrain(0, this.getMaxScrollBottom()); - + if (newPosition != oldPosition && !this.scrolling) { if (animate == undefined) { animate = this.animateScroll; } - + this.layout.innerCt.scrollTo('top', newPosition, animate ? this.getScrollAnim() : false); - + if (animate) { this.scrolling = true; } else { @@ -16499,18 +16499,18 @@ Ext.layout.boxOverflow.VerticalScroller = Ext.extend(Ext.layout.boxOverflow.Scro } } }, - - + + getScrollPosition: function(){ return parseInt(this.layout.innerCt.dom.scrollTop, 10) || 0; }, - - + + getMaxScrollBottom: function() { return this.layout.innerCt.dom.scrollHeight - this.layout.innerCt.getHeight(); }, - - + + atExtremeAfter: function() { return this.getScrollPosition() >= this.getMaxScrollBottom(); } @@ -16523,7 +16523,7 @@ Ext.layout.boxOverflow.scroller.vbox = Ext.layout.boxOverflow.VerticalScroller; Ext.layout.boxOverflow.HorizontalScroller = Ext.extend(Ext.layout.boxOverflow.Scroller, { handleOverflow: function(calculations, targetSize) { Ext.layout.boxOverflow.HorizontalScroller.superclass.handleOverflow.apply(this, arguments); - + return { targetSize: { height: targetSize.height, @@ -16531,33 +16531,33 @@ Ext.layout.boxOverflow.HorizontalScroller = Ext.extend(Ext.layout.boxOverflow.Sc } }; }, - - + + createInnerElements: function() { var target = this.layout.innerCt; - - - + + + if (!this.beforeCt) { this.afterCt = target.insertSibling({cls: this.afterCls}, 'before'); this.beforeCt = target.insertSibling({cls: this.beforeCls}, 'before'); - + this.createWheelListener(); } }, - - + + scrollTo: function(position, animate) { var oldPosition = this.getScrollPosition(), newPosition = position.constrain(0, this.getMaxScrollRight()); - + if (newPosition != oldPosition && !this.scrolling) { if (animate == undefined) { animate = this.animateScroll; } - + this.layout.innerCt.scrollTo('left', newPosition, animate ? this.getScrollAnim() : false); - + if (animate) { this.scrolling = true; } else { @@ -16566,18 +16566,18 @@ Ext.layout.boxOverflow.HorizontalScroller = Ext.extend(Ext.layout.boxOverflow.Sc } } }, - - + + getScrollPosition: function(){ return parseInt(this.layout.innerCt.dom.scrollLeft, 10) || 0; }, - - + + getMaxScrollRight: function() { return this.layout.innerCt.dom.scrollWidth - this.layout.innerCt.getWidth(); }, - - + + atExtremeAfter: function() { return this.getScrollPosition() >= this.getMaxScrollRight(); } @@ -16585,15 +16585,15 @@ Ext.layout.boxOverflow.HorizontalScroller = Ext.extend(Ext.layout.boxOverflow.Sc Ext.layout.boxOverflow.scroller.hbox = Ext.layout.boxOverflow.HorizontalScroller; Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { - - align: 'top', + + align: 'top', type : 'hbox', - - - + + + calculateChildBoxes: function(visibleItems, targetSize) { var visibleCount = visibleItems.length, @@ -16617,31 +16617,31 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { desiredWidth = 0, minimumWidth = 0, - + boxes = [], - + child, childWidth, childHeight, childSize, childMargins, canLayout, i, calcs, flexedWidth, horizMargins, vertMargins, stretchHeight; - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; childHeight = child.height; childWidth = child.width; canLayout = !child.hasLayout && typeof child.doLayout == 'function'; - + if (typeof childWidth != 'number') { - + if (child.flex && !childWidth) { totalFlex += child.flex; - + } else { - - + + if (!childWidth && canLayout) { child.doLayout(); } @@ -16659,7 +16659,7 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { desiredWidth += horizMargins + (child.flex ? child.minWidth || 0 : childWidth); minimumWidth += horizMargins + (child.minWidth || childWidth || 0); - + if (typeof childHeight != 'number') { if (canLayout) { child.doLayout(); @@ -16669,7 +16669,7 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { maxHeight = Math.max(maxHeight, childHeight + childMargins.top + childMargins.bottom); - + boxes.push({ component: child, height : childHeight || undefined, @@ -16680,7 +16680,7 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { var shortfall = desiredWidth - width, tooNarrow = minimumWidth > width; - + var availableWidth = Math.max(0, width - nonFlexWidth - paddingHoriz); if (tooNarrow) { @@ -16688,20 +16688,20 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { boxes[i].width = visibleItems[i].minWidth || visibleItems[i].width || boxes[i].width; } } else { - - + + if (shortfall > 0) { var minWidths = []; - - - + + + for (var index = 0, length = visibleCount; index < length; index++) { var item = visibleItems[index], minWidth = item.minWidth || 0; - - + + if (item.flex) { boxes[index].width = minWidth; } else { @@ -16713,12 +16713,12 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { } } - + minWidths.sort(function(a, b) { return a.available > b.available ? 1 : -1; }); - + for (var i = 0, length = minWidths.length; i < length; i++) { var itemIndex = minWidths[i].index; @@ -16737,11 +16737,11 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { shortfall -= reduction; } } else { - + var remainingWidth = availableWidth, remainingFlex = totalFlex; - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; calcs = boxes[i]; @@ -16767,7 +16767,7 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { leftOffset += availableWidth; } - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; calcs = boxes[i]; @@ -16816,15 +16816,15 @@ Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, { Ext.Container.LAYOUTS.hbox = Ext.layout.HBoxLayout; Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { - - align : 'left', + + align : 'left', type: 'vbox', - - - + + + calculateChildBoxes: function(visibleItems, targetSize) { var visibleCount = visibleItems.length, @@ -16848,31 +16848,31 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { desiredHeight= 0, minimumHeight= 0, - + boxes = [], - + child, childWidth, childHeight, childSize, childMargins, canLayout, i, calcs, flexedHeight, horizMargins, vertMargins, stretchWidth, length; - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; childHeight = child.height; childWidth = child.width; canLayout = !child.hasLayout && typeof child.doLayout == 'function'; - + if (typeof childHeight != 'number') { - + if (child.flex && !childHeight) { totalFlex += child.flex; - + } else { - - + + if (!childHeight && canLayout) { child.doLayout(); } @@ -16890,7 +16890,7 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { desiredHeight += vertMargins + (child.flex ? child.minHeight || 0 : childHeight); minimumHeight += vertMargins + (child.minHeight || childHeight || 0); - + if (typeof childWidth != 'number') { if (canLayout) { child.doLayout(); @@ -16900,7 +16900,7 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { maxWidth = Math.max(maxWidth, childWidth + childMargins.left + childMargins.right); - + boxes.push({ component: child, height : childHeight || undefined, @@ -16911,7 +16911,7 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { var shortfall = desiredHeight - height, tooNarrow = minimumHeight > height; - + var availableHeight = Math.max(0, (height - nonFlexHeight - paddingVert)); if (tooNarrow) { @@ -16919,20 +16919,20 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { boxes[i].height = visibleItems[i].minHeight || visibleItems[i].height || boxes[i].height; } } else { - - + + if (shortfall > 0) { var minHeights = []; - - - + + + for (var index = 0, length = visibleCount; index < length; index++) { var item = visibleItems[index], minHeight = item.minHeight || 0; - - + + if (item.flex) { boxes[index].height = minHeight; } else { @@ -16944,12 +16944,12 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { } } - + minHeights.sort(function(a, b) { return a.available > b.available ? 1 : -1; }); - + for (var i = 0, length = minHeights.length; i < length; i++) { var itemIndex = minHeights[i].index; @@ -16968,11 +16968,11 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { shortfall -= reduction; } } else { - + var remainingHeight = availableHeight, remainingFlex = totalFlex; - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; calcs = boxes[i]; @@ -16998,7 +16998,7 @@ Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, { topOffset += availableHeight; } - + for (i = 0; i < visibleCount; i++) { child = visibleItems[i]; calcs = boxes[i]; @@ -17053,16 +17053,16 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { type: 'toolbar', - + triggerWidth: 18, - + noItemsMenuText : '
(None)
', - + lastOverflow: false, - + tableHTML: [ '
', '', @@ -17101,9 +17101,9 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { '
' ].join(""), - + onLayout : function(ct, target) { - + if (!this.leftTr) { var align = ct.buttonAlign == 'center' ? 'center' : 'left'; @@ -17115,7 +17115,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { this.extrasTr = target.child('tr.x-toolbar-extras-row', true); if (this.hiddenItem == undefined) { - + this.hiddenItems = []; } } @@ -17124,7 +17124,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { items = ct.items.items, position = 0; - + for (var i = 0, len = items.length, c; i < len; i++, position++) { c = items[i]; @@ -17143,14 +17143,14 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } } - + this.cleanup(this.leftTr); this.cleanup(this.rightTr); this.cleanup(this.extrasTr); this.fitToSize(target); }, - + cleanup : function(el) { var cn = el.childNodes, i, c; @@ -17161,7 +17161,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + insertCell : function(c, target, position) { var td = document.createElement('td'); td.className = 'x-toolbar-cell'; @@ -17171,7 +17171,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { return td; }, - + hideItem : function(item) { this.hiddenItems.push(item); @@ -17180,19 +17180,19 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { item.hide(); }, - + unhideItem : function(item) { item.show(); item.xtbHidden = false; this.hiddenItems.remove(item); }, - + getItemWidth : function(c) { return c.hidden ? (c.xtbWidth || 0) : c.getPositionEl().dom.parentNode.offsetWidth; }, - + fitToSize : function(target) { if (this.container.enableOverflow === false) { return; @@ -17231,7 +17231,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } } - + hasHiddens = hiddenItems.length != 0; if (hasHiddens) { @@ -17253,7 +17253,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + createMenuConfig : function(component, hideOnClick){ var config = Ext.apply({}, component.initialConfig), group = component.toggleGroup; @@ -17286,7 +17286,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { return config; }, - + addComponentToMenu : function(menu, component) { if (component instanceof Ext.Toolbar.Separator) { menu.add('-'); @@ -17306,7 +17306,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + clearMenu : function(){ var menu = this.moreMenu; if (menu && menu.items) { @@ -17316,7 +17316,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } }, - + beforeMoreShow : function(menu) { var items = this.container.items.items, len = items.length, @@ -17340,16 +17340,16 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } } - + if (menu.items.length < 1) { menu.add(this.noItemsMenuText); } }, - + initMore : function(){ if (!this.more) { - + this.moreMenu = new Ext.menu.Menu({ ownerCt : this.container, listeners: { @@ -17358,7 +17358,7 @@ Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, { } }); - + this.more = new Ext.Button({ iconCls: 'x-toolbar-more-icon', cls : 'x-toolbar-more', @@ -17389,8 +17389,8 @@ Ext.Container.LAYOUTS.toolbar = Ext.layout.ToolbarLayout; setContainer : function(ct){ this.monitorResize = !ct.floating; - - + + ct.on('autosize', this.doAutoSize, this); Ext.layout.MenuLayout.superclass.setContainer.call(this, ct); }, @@ -17449,7 +17449,7 @@ Ext.Container.LAYOUTS.toolbar = Ext.layout.ToolbarLayout; }; }, - + isValidParent : function(c, target) { return c.el.up('li.x-menu-list-item', 5).dom.parentNode === (target.dom || target); }, @@ -17466,7 +17466,7 @@ Ext.Container.LAYOUTS.toolbar = Ext.layout.ToolbarLayout; ct.setWidth(w); }else if(Ext.isIE9m){ ct.setWidth(Ext.isStrict && (Ext.isIE7 || Ext.isIE8 || Ext.isIE9) ? 'auto' : ct.minWidth); - var el = ct.getEl(), t = el.dom.offsetWidth; + var el = ct.getEl(), t = el.dom.offsetWidth; ct.setWidth(ct.getLayoutTarget().getWidth() + el.getFrameWidth('lr')); } } @@ -17475,17 +17475,17 @@ Ext.Container.LAYOUTS.toolbar = Ext.layout.ToolbarLayout; Ext.Container.LAYOUTS['menu'] = Ext.layout.MenuLayout; Ext.Viewport = Ext.extend(Ext.Container, { - - - - - - - - - - - + + + + + + + + + + + initComponent : function() { Ext.Viewport.superclass.initComponent.call(this); @@ -17509,124 +17509,124 @@ Ext.Viewport = Ext.extend(Ext.Container, { Ext.reg('viewport', Ext.Viewport); Ext.Panel = Ext.extend(Ext.Container, { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + baseCls : 'x-panel', - + collapsedCls : 'x-panel-collapsed', - + maskDisabled : true, - + animCollapse : Ext.enableFx, - + headerAsText : true, - + buttonAlign : 'right', - + collapsed : false, - + collapseFirst : true, - + minButtonWidth : 75, - - + + elements : 'body', - + preventBodyReset : false, - + padding: undefined, - + resizeEvent: 'bodyresize', - - - + + + toolTarget : 'header', collapseEl : 'bwrap', slideAnchor : 't', disabledClass : '', - + deferHeight : true, - + expandDefaults: { duration : 0.25 }, - + collapseDefaults : { duration : 0.25 }, - + initComponent : function(){ Ext.Panel.superclass.initComponent.call(this); this.addEvents( - + 'bodyresize', - + 'titlechange', - + 'iconchange', - + 'collapse', - + 'expand', - + 'beforecollapse', - + 'beforeexpand', - + 'beforeclose', - + 'close', - + 'activate', - + 'deactivate' ); @@ -17636,7 +17636,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.toolbars = []; - + if(this.tbar){ this.elements += ',tbar'; this.topToolbar = this.createToolbar(this.tbar); @@ -17673,7 +17673,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + createFbar : function(fbar){ var min = this.minButtonWidth; this.elements += ',footer'; @@ -17687,19 +17687,19 @@ Ext.Panel = Ext.extend(Ext.Container, { }; } }); - - - + + + this.fbar.items.each(function(c){ c.minWidth = c.minWidth || this.minButtonWidth; }, this); this.buttons = this.fbar.items.items; }, - + createToolbar: function(tb, options){ var result; - + if(Ext.isArray(tb)){ tb = { items: tb @@ -17710,7 +17710,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return result; }, - + createElement : function(name, pnode){ if(this[name]){ pnode.appendChild(this[name].dom); @@ -17734,7 +17734,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + onRender : function(ct, position){ Ext.Panel.superclass.onRender.call(this, ct, position); this.createClasses(); @@ -17761,7 +17761,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.tools = {}; el.addClass(this.baseCls); - if(d.firstChild){ + if(d.firstChild){ this.header = el.down('.'+this.headerCls); this.bwrap = el.down('.'+this.bwrapCls); var cp = this.bwrap ? this.bwrap : el; @@ -17782,16 +17782,16 @@ Ext.Panel = Ext.extend(Ext.Container, { this.elements += ',footer'; } - - + + if(this.frame){ el.insertHtml('afterBegin', String.format(Ext.Element.boxMarkup, this.baseCls)); this.createElement('header', d.firstChild.firstChild.firstChild); this.createElement('bwrap', d); - + bw = this.bwrap.dom; var ml = d.childNodes[1], bl = d.childNodes[2]; bw.appendChild(ml); @@ -17806,14 +17806,14 @@ Ext.Panel = Ext.extend(Ext.Container, { if(!this.footer){ this.bwrap.dom.lastChild.className += ' x-panel-nofooter'; } - + this.ft = Ext.get(this.bwrap.dom.lastChild); this.mc = Ext.get(mc); }else{ this.createElement('header', d); this.createElement('bwrap', d); - + bw = this.bwrap.dom; this.createElement('tbar', bw); this.createElement('body', bw); @@ -17858,7 +17858,7 @@ Ext.Panel = Ext.extend(Ext.Container, { if(this.header){ this.header.unselectable(); - + if(this.headerAsText){ this.header.dom.innerHTML = ''+this.header.dom.innerHTML+''; @@ -17881,7 +17881,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.addTool.apply(this, ts); } - + if(this.fbar){ this.footer.addClass('x-panel-btns'); this.fbar.ownerCt = this; @@ -17898,7 +17898,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + setIconClass : function(cls){ var old = this.iconCls; this.iconCls = cls; @@ -17924,7 +17924,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.fireEvent('iconchange', this, cls, old); }, - + makeFloating : function(cfg){ this.floating = true; this.el = new Ext.Layer(Ext.apply({}, cfg, { @@ -17935,22 +17935,22 @@ Ext.Panel = Ext.extend(Ext.Container, { }), this.el); }, - + getTopToolbar : function(){ return this.topToolbar; }, - + getBottomToolbar : function(){ return this.bottomToolbar; }, - + getFooterToolbar : function() { return this.fbar; }, - + addButton : function(config, handler, scope){ if(!this.fbar){ this.createFbar([]); @@ -17967,7 +17967,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return this.fbar.add(config); }, - + addTool : function(){ if(!this.rendered){ if(!this.tools){ @@ -17978,12 +17978,12 @@ Ext.Panel = Ext.extend(Ext.Container, { }, this); return; } - + if(!this[this.toolTarget]){ return; } if(!this.toolTemplate){ - + var tt = new Ext.Template( '
 
' ); @@ -18049,7 +18049,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + onShow : function(){ if(this.floating){ return this.el.show(); @@ -18057,7 +18057,7 @@ Ext.Panel = Ext.extend(Ext.Container, { Ext.Panel.superclass.onShow.call(this); }, - + onHide : function(){ if(this.floating){ return this.el.hide(); @@ -18065,7 +18065,7 @@ Ext.Panel = Ext.extend(Ext.Container, { Ext.Panel.superclass.onHide.call(this); }, - + createToolHandler : function(t, tc, overCls, panel){ return function(e){ t.removeClass(overCls); @@ -18078,7 +18078,7 @@ Ext.Panel = Ext.extend(Ext.Container, { }; }, - + afterRender : function(){ if(this.floating && !this.hidden){ this.el.show(); @@ -18086,7 +18086,7 @@ Ext.Panel = Ext.extend(Ext.Container, { if(this.title){ this.setTitle(this.title); } - Ext.Panel.superclass.afterRender.call(this); + Ext.Panel.superclass.afterRender.call(this); if (this.collapsed) { this.collapsed = false; this.collapse(false); @@ -18094,7 +18094,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.initEvents(); }, - + getKeyMap : function(){ if(!this.keyMap){ this.keyMap = new Ext.KeyMap(this.el, this.keys); @@ -18102,7 +18102,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return this.keyMap; }, - + initEvents : function(){ if(this.keys){ this.getKeyMap(); @@ -18124,13 +18124,13 @@ Ext.Panel = Ext.extend(Ext.Container, { }, - + initDraggable : function(){ - + this.dd = new Ext.Panel.DD(this, Ext.isBoolean(this.draggable) ? null : this.draggable); }, - + beforeEffect : function(anim){ if(this.floating){ this.el.beforeAction(); @@ -18140,13 +18140,13 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + afterEffect : function(anim){ this.syncShadow(); this.el.removeClass('x-panel-animated'); }, - + createEffect : function(a, cb, scope){ var o = { scope:scope, @@ -18157,7 +18157,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return o; }else if(!a.callback){ o.callback = cb; - }else { + }else { o.callback = function(){ cb.call(scope); Ext.callback(a.callback, a.scope); @@ -18166,7 +18166,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return Ext.applyIf(o, a); }, - + collapse : function(animate){ if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){ return; @@ -18177,7 +18177,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return this; }, - + onCollapse : function(doAnim, animArg){ if(doAnim){ this[this.collapseEl].slideOut(this.slideAnchor, @@ -18189,7 +18189,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + afterCollapse : function(anim){ this.collapsed = true; this.el.addClass(this.collapsedCls); @@ -18198,7 +18198,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } this.afterEffect(anim); - + this.cascade(function(c) { if (c.lastSize) { c.lastSize = { width: undefined, height: undefined }; @@ -18207,7 +18207,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.fireEvent('collapse', this); }, - + expand : function(animate){ if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){ return; @@ -18219,7 +18219,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return this; }, - + onExpand : function(doAnim, animArg){ if(doAnim){ this[this.collapseEl].slideIn(this.slideAnchor, @@ -18231,7 +18231,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + afterExpand : function(anim){ this.collapsed = false; if(anim !== false){ @@ -18245,13 +18245,13 @@ Ext.Panel = Ext.extend(Ext.Container, { this.fireEvent('expand', this); }, - + toggleCollapse : function(animate){ this[this.collapsed ? 'expand' : 'collapse'](animate); return this; }, - + onDisable : function(){ if(this.rendered && this.maskDisabled){ this.el.mask(); @@ -18259,7 +18259,7 @@ Ext.Panel = Ext.extend(Ext.Container, { Ext.Panel.superclass.onDisable.call(this); }, - + onEnable : function(){ if(this.rendered && this.maskDisabled){ this.el.unmask(); @@ -18267,16 +18267,16 @@ Ext.Panel = Ext.extend(Ext.Container, { Ext.Panel.superclass.onEnable.call(this); }, - + onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){ var w = adjWidth, h = adjHeight; if(Ext.isDefined(w) || Ext.isDefined(h)){ if(!this.collapsed){ - - - + + + if(Ext.isNumber(w)){ this.body.setWidth(w = this.adjustBodyWidth(w - this.getFrameWidth())); @@ -18296,7 +18296,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.bbar.setWidth(w); if(this.bottomToolbar){ this.bottomToolbar.setSize(w); - + if (Ext.isIE9m) { this.bbar.setStyle('position', 'static'); this.bbar.setStyle('position', ''); @@ -18310,10 +18310,10 @@ Ext.Panel = Ext.extend(Ext.Container, { } } - + if(Ext.isNumber(h)){ h = Math.max(0, h - this.getFrameHeight()); - + this.body.setHeight(h); }else if(h == 'auto'){ this.body.setHeight(h); @@ -18323,7 +18323,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.el._mask.setSize(this.el.dom.clientWidth, this.el.getHeight()); } }else{ - + this.queuedBodySize = {width: w, height: h}; if(!this.queuedExpand && this.allowQueuedExpand !== false){ this.queuedExpand = true; @@ -18340,12 +18340,12 @@ Ext.Panel = Ext.extend(Ext.Container, { }, - + onBodyResize: function(w, h){ this.fireEvent('bodyresize', this, w, h); }, - + getToolbarHeight: function(){ var h = 0; if(this.rendered){ @@ -18356,22 +18356,22 @@ Ext.Panel = Ext.extend(Ext.Container, { return h; }, - + adjustBodyHeight : function(h){ return h; }, - + adjustBodyWidth : function(w){ return w; }, - + onPosition : function(){ this.syncShadow(); }, - + getFrameWidth : function(){ var w = this.el.getFrameWidth('lr') + this.bwrap.getFrameWidth('lr'); @@ -18383,7 +18383,7 @@ Ext.Panel = Ext.extend(Ext.Container, { return w; }, - + getFrameHeight : function() { var h = this.el.getFrameWidth('tb') + this.bwrap.getFrameWidth('tb'); h += (this.tbar ? this.tbar.getHeight() : 0) + @@ -18398,35 +18398,35 @@ Ext.Panel = Ext.extend(Ext.Container, { return h; }, - + getInnerWidth : function(){ return this.getSize().width - this.getFrameWidth(); }, - + getInnerHeight : function(){ return this.body.getHeight(); - + }, - + syncShadow : function(){ if(this.floating){ this.el.sync(true); } }, - + getLayoutTarget : function(){ return this.body; }, - + getContentTarget : function(){ return this.body; }, - + setTitle : function(title, iconCls){ this.title = title; if(this.header && this.headerAsText){ @@ -18439,19 +18439,19 @@ Ext.Panel = Ext.extend(Ext.Container, { return this; }, - + getUpdater : function(){ return this.body.getUpdater(); }, - + load : function(){ var um = this.body.getUpdater(); um.update.apply(um, arguments); return this; }, - + beforeDestroy : function(){ Ext.Panel.superclass.beforeDestroy.call(this); if(this.header){ @@ -18495,7 +18495,7 @@ Ext.Panel = Ext.extend(Ext.Container, { Ext.destroy(this.toolbars); }, - + createClasses : function(){ this.headerCls = this.baseCls + '-header'; this.headerTextCls = this.baseCls + '-header-text'; @@ -18506,7 +18506,7 @@ Ext.Panel = Ext.extend(Ext.Container, { this.footerCls = this.baseCls + '-footer'; }, - + createGhost : function(cls, useShim, appendTo){ var el = document.createElement('div'); el.className = 'x-panel-ghost ' + (cls ? cls : ''); @@ -18529,7 +18529,7 @@ Ext.Panel = Ext.extend(Ext.Container, { } }, - + doAutoLoad : function(){ var u = this.body.getUpdater(); if(this.renderer){ @@ -18538,7 +18538,7 @@ Ext.Panel = Ext.extend(Ext.Container, { u.update(Ext.isObject(this.autoLoad) ? this.autoLoad : {url: this.autoLoad}); }, - + getTool : function(id) { return this.tools[id]; } @@ -18550,7 +18550,7 @@ Ext.reg('panel', Ext.Panel); Ext.Editor = function(field, config){ if(field.field){ this.field = Ext.create(field.field, 'textfield'); - config = Ext.apply({}, field); + config = Ext.apply({}, field); delete config.field; }else{ this.field = field; @@ -18559,51 +18559,51 @@ Ext.Editor = function(field, config){ }; Ext.extend(Ext.Editor, Ext.Component, { - - + + allowBlur: true, - - - - - + + + + + value : "", - + alignment: "c-c?", - + offsets: [0, 0], - + shadow : "frame", - + constrain : false, - + swallowKeys : true, - + completeOnEnter : true, - + cancelOnEsc : true, - + updateEl : false, initComponent : function(){ Ext.Editor.superclass.initComponent.call(this); this.addEvents( - + "beforestartedit", - + "startedit", - + "beforecomplete", - + "complete", - + "canceledit", - + "specialkey" ); }, - + onRender : function(ct, position){ this.el = new Ext.Layer({ shadow: this.shadow, @@ -18634,13 +18634,13 @@ Ext.extend(Ext.Editor, Ext.Component, { this.field.getEl().dom.name = ''; if(this.swallowKeys){ this.field.el.swallowEvent([ - 'keypress', - 'keydown' + 'keypress', + 'keydown' ]); } }, - + onSpecialKey : function(field, e){ var key = e.getKey(), complete = this.completeOnEnter && key == e.ENTER, @@ -18659,7 +18659,7 @@ Ext.extend(Ext.Editor, Ext.Component, { this.fireEvent('specialkey', field, e); }, - + startEdit : function(el, value){ if(this.editing){ this.completeEdit(); @@ -18679,7 +18679,7 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + doAutoSize : function(){ if(this.autoSize){ var sz = this.boundEl.getSize(), @@ -18701,21 +18701,21 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + setSize : function(w, h){ delete this.field.lastSize; this.field.setSize(w, h); if(this.el){ - + if(Ext.isGecko2 || Ext.isOpera || (Ext.isIE7 && Ext.isStrict)){ - + this.el.setSize(w, h); } this.el.sync(); } }, - + realign : function(autoSize){ if(autoSize === true){ this.doAutoSize(); @@ -18723,12 +18723,12 @@ Ext.extend(Ext.Editor, Ext.Component, { this.el.alignTo(this.boundEl, this.alignment, this.offsets); }, - + completeEdit : function(remainVisible){ if(!this.editing){ return; } - + if (this.field.assertValue) { this.field.assertValue(); } @@ -18753,7 +18753,7 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + onShow : function(){ this.el.show(); if(this.hideEl !== false){ @@ -18763,7 +18763,7 @@ Ext.extend(Ext.Editor, Ext.Component, { this.fireEvent("startedit", this.boundEl, this.startValue); }, - + cancelEdit : function(remainVisible){ if(this.editing){ var v = this.getValue(); @@ -18773,7 +18773,7 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + hideEdit: function(remainVisible){ if(remainVisible !== true){ this.editing = false; @@ -18781,15 +18781,15 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + onBlur : function(){ - + if(this.allowBlur === true && this.editing && this.selectSameEditor !== true){ this.completeEdit(); } }, - + onHide : function(){ if(this.editing){ this.completeEdit(); @@ -18805,12 +18805,12 @@ Ext.extend(Ext.Editor, Ext.Component, { } }, - + setValue : function(v){ this.field.setValue(v); }, - + getValue : function(){ return this.field.getValue(); }, @@ -18825,20 +18825,20 @@ Ext.extend(Ext.Editor, Ext.Component, { Ext.reg('editor', Ext.Editor); Ext.ColorPalette = Ext.extend(Ext.Component, { - - + + itemCls : 'x-color-palette', - + value : null, - + clickEvent :'click', - + ctype : 'Ext.ColorPalette', - + allowReselect : false, - + colors : [ '000000', '993300', '333300', '003300', '003366', '000080', '333399', '333333', '800000', 'FF6600', '808000', '008000', '008080', '0000FF', '666699', '808080', @@ -18847,23 +18847,23 @@ Ext.ColorPalette = Ext.extend(Ext.Component, { 'FF99CC', 'FFCC99', 'FFFF99', 'CCFFCC', 'CCFFFF', '99CCFF', 'CC99FF', 'FFFFFF' ], - - - - + + + + initComponent : function(){ Ext.ColorPalette.superclass.initComponent.call(this); this.addEvents( - + 'select' ); if(this.handler){ this.on('select', this.handler, this.scope, true); - } + } }, - + onRender : function(container, position){ this.autoEl = { tag: 'div', @@ -18880,7 +18880,7 @@ Ext.ColorPalette = Ext.extend(Ext.Component, { } }, - + afterRender : function(){ Ext.ColorPalette.superclass.afterRender.call(this); if(this.value){ @@ -18890,7 +18890,7 @@ Ext.ColorPalette = Ext.extend(Ext.Component, { } }, - + handleClick : function(e, t){ e.preventDefault(); if(!this.disabled){ @@ -18899,7 +18899,7 @@ Ext.ColorPalette = Ext.extend(Ext.Component, { } }, - + select : function(color, suppressEvent){ color = color.replace('#', ''); if(color != this.value || this.allowReselect){ @@ -18915,59 +18915,59 @@ Ext.ColorPalette = Ext.extend(Ext.Component, { } } - + }); Ext.reg('colorpalette', Ext.ColorPalette); Ext.DatePicker = Ext.extend(Ext.BoxComponent, { - + todayText : 'Today', - + okText : ' OK ', - + cancelText : 'Cancel', - - - + + + todayTip : '{0} (Spacebar)', - + minText : 'This date is before the minimum date', - + maxText : 'This date is after the maximum date', - + format : 'm/d/y', - + disabledDaysText : 'Disabled', - + disabledDatesText : 'Disabled', - + monthNames : Date.monthNames, - + dayNames : Date.dayNames, - + nextText : 'Next Month (Control+Right)', - + prevText : 'Previous Month (Control+Left)', - + monthYearText : 'Choose a month (Control+Up/Down to move years)', - + startDay : 0, - + showToday : true, - - - - - - - - + + + + + + + + focusOnSelect: true, - - - initHour: 12, - + + initHour: 12, + + initComponent : function(){ Ext.DatePicker.superclass.initComponent.call(this); @@ -18975,7 +18975,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { this.value.clearTime(true) : new Date().clearTime(); this.addEvents( - + 'select' ); @@ -18986,7 +18986,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { this.initDisabledDays(); }, - + initDisabledDays : function(){ if(!this.disabledDatesRE && this.disabledDates){ var dd = this.disabledDates, @@ -19003,7 +19003,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + setDisabledDates : function(dd){ if(Ext.isArray(dd)){ this.disabledDates = dd; @@ -19015,41 +19015,41 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { this.update(this.value, true); }, - + setDisabledDays : function(dd){ this.disabledDays = dd; this.update(this.value, true); }, - + setMinDate : function(dt){ this.minDate = dt; this.update(this.value, true); }, - + setMaxDate : function(dt){ this.maxDate = dt; this.update(this.value, true); }, - + setValue : function(value){ this.value = value.clearTime(true); this.update(this.value); }, - + getValue : function(){ return this.value; }, - + focus : function(){ this.update(this.activeDate); }, - + onEnable: function(initial){ Ext.DatePicker.superclass.onEnable.call(this); this.doDisabled(false); @@ -19060,19 +19060,19 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { }, - + onDisable : function(){ Ext.DatePicker.superclass.onDisable.call(this); this.doDisabled(true); if(Ext.isIE9m && !Ext.isIE8){ - + Ext.each([].concat(this.textNodes, this.el.query('th span')), function(el){ Ext.fly(el).repaint(); }); } }, - + doDisabled : function(disabled){ this.keyNav.setDisabled(disabled); this.prevRepeater.setDisabled(disabled); @@ -19083,7 +19083,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + onRender : function(container, position){ var m = [ '', @@ -19213,7 +19213,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { this.onEnable(true); }, - + createMonthPicker : function(){ if(!this.monthPicker.dom.firstChild){ var buf = ['
']; @@ -19253,7 +19253,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + showMonthPicker : function(){ if(!this.disabled){ this.createMonthPicker(); @@ -19270,7 +19270,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + updateMPYear : function(y){ this.mpyear = y; var ys = this.mpYears.elements; @@ -19289,19 +19289,19 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + updateMPMonth : function(sm){ this.mpMonths.each(function(m, a, i){ m[m.dom.xmonth == sm ? 'addClass' : 'removeClass']('x-date-mp-sel'); }); }, - + selectMPMonth : function(m){ }, - + onMonthClick : function(e, t){ e.stopEvent(); var el = new Ext.Element(t), pn; @@ -19311,7 +19311,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { else if(el.is('button.x-date-mp-ok')){ var d = new Date(this.mpSelYear, this.mpSelMonth, (this.activeDate || this.value).getDate()); if(d.getMonth() != this.mpSelMonth){ - + d = new Date(this.mpSelYear, this.mpSelMonth, 1).getLastDateOfMonth(); } this.update(d); @@ -19335,7 +19335,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + onMonthDblClick : function(e, t){ e.stopEvent(); var el = new Ext.Element(t), pn; @@ -19349,7 +19349,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + hideMonthPicker : function(disableAnim){ if(this.monthPicker){ if(disableAnim === true){ @@ -19360,27 +19360,27 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + showPrevMonth : function(e){ this.update(this.activeDate.add('mo', -1)); }, - + showNextMonth : function(e){ this.update(this.activeDate.add('mo', 1)); }, - + showPrevYear : function(){ this.update(this.activeDate.add('y', -1)); }, - + showNextYear : function(){ this.update(this.activeDate.add('y', 1)); }, - + handleMouseWheel : function(e){ e.stopEvent(); if(!this.disabled){ @@ -19393,7 +19393,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + handleDateClick : function(e, t){ e.stopEvent(); if(!this.disabled && t.dateValue && !Ext.fly(t.parentNode).hasClass('x-date-disabled')){ @@ -19404,7 +19404,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + selectToday : function(){ if(this.todayBtn && !this.todayBtn.disabled){ this.setValue(new Date().clearTime()); @@ -19412,7 +19412,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + update : function(date, forceRefresh){ if(this.rendered){ var vd = this.activeDate, vis = this.isVisible(); @@ -19446,7 +19446,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { prevStart = pm.getDaysInMonth()-startingPos, cells = this.cells.elements, textEls = this.textNodes, - + d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart, this.initHour)), today = new Date().clearTime().getTime(), sel = date.clearTime(true).getTime(), @@ -19484,7 +19484,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { Ext.fly(cell.firstChild).focus(50); } } - + if(t < min) { cell.className = ' x-date-disabled'; cell.title = cal.minText; @@ -19540,9 +19540,9 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { this.el.setWidth(w + this.el.getBorderWidth('lr')); Ext.fly(main).setWidth(w); this.internalRender = true; - - - + + + if(Ext.isOpera && !this.secondPass){ main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + 'px'; this.secondPass = true; @@ -19552,7 +19552,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } }, - + beforeDestroy : function() { if(this.rendered){ Ext.destroy( @@ -19570,7 +19570,7 @@ Ext.DatePicker = Ext.extend(Ext.BoxComponent, { } } - + }); Ext.reg('datepicker', Ext.DatePicker); @@ -19588,7 +19588,7 @@ Ext.LoadMask = function(el, config){ this.removeMask = Ext.value(this.removeMask, false); }else{ var um = this.el.getUpdater(); - um.showLoadIndicator = false; + um.showLoadIndicator = false; um.on({ scope: this, beforeupdate: this.onBeforeLoad, @@ -19600,49 +19600,49 @@ Ext.LoadMask = function(el, config){ }; Ext.LoadMask.prototype = { - - - + + + msg : 'Loading...', - + msgCls : 'x-mask-loading', - + disabled: false, - + disable : function(){ this.disabled = true; }, - + enable : function(){ this.disabled = false; }, - + onLoad : function(){ this.el.unmask(this.removeMask); }, - + onBeforeLoad : function(){ if(!this.disabled){ this.el.mask(this.msg, this.msgCls); } }, - + show: function(){ this.onBeforeLoad(); }, - + hide: function(){ this.onLoad(); }, - + destroy : function(){ if(this.store){ this.store.un('beforeload', this.onBeforeLoad, this); @@ -19657,17 +19657,17 @@ Ext.LoadMask.prototype = { } }; Ext.slider.Thumb = Ext.extend(Object, { - - + + dragging: false, - + constructor: function(config) { - + Ext.apply(this, config || {}, { cls: 'x-slider-thumb', - + constrain: false }); @@ -19678,26 +19678,26 @@ Ext.slider.Thumb = Ext.extend(Object, { } }, - + render: function() { this.el = this.slider.innerEl.insertFirst({cls: this.cls}); this.initEvents(); }, - + enable: function() { this.disabled = false; this.el.removeClass(this.slider.disabledClass); }, - + disable: function() { this.disabled = true; this.el.addClass(this.slider.disabledClass); }, - + initEvents: function() { var el = this.el; @@ -19715,7 +19715,7 @@ Ext.slider.Thumb = Ext.extend(Object, { this.tracker.initEl(el); }, - + onBeforeDragStart : function(e) { if (this.disabled) { return false; @@ -19725,7 +19725,7 @@ Ext.slider.Thumb = Ext.extend(Object, { } }, - + onDragStart: function(e){ this.el.addClass('x-slider-thumb-drag'); this.dragging = true; @@ -19734,7 +19734,7 @@ Ext.slider.Thumb = Ext.extend(Object, { this.slider.fireEvent('dragstart', this.slider, e, this); }, - + onDrag: function(e) { var slider = this.slider, index = this.index, @@ -19759,7 +19759,7 @@ Ext.slider.Thumb = Ext.extend(Object, { return Ext.util.Format.round(slider.reverseValue(pos.left), slider.decimalPrecision); }, - + onDragEnd: function(e) { var slider = this.slider, value = this.value; @@ -19773,8 +19773,8 @@ Ext.slider.Thumb = Ext.extend(Object, { slider.fireEvent('changecomplete', slider, value, this); } }, - - + + destroy: function(){ Ext.destroyMembers(this, 'tracker', 'el'); } @@ -19782,66 +19782,66 @@ Ext.slider.Thumb = Ext.extend(Object, { Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { - - + + vertical: false, - + minValue: 0, - + maxValue: 100, - + decimalPrecision: 0, - + keyIncrement: 1, - + increment: 0, - + clickRange: [5,15], - + clickToChange : true, - + animate: true, - + constrainThumbs: true, - + topThumbZIndex: 10000, - + initComponent : function(){ if(!Ext.isDefined(this.value)){ this.value = this.minValue; } - + this.thumbs = []; Ext.slider.MultiSlider.superclass.initComponent.call(this); this.keyIncrement = Math.max(this.increment, this.keyIncrement); this.addEvents( - + 'beforechange', - + 'change', - + 'changecomplete', - + 'dragstart', - + 'drag', - + 'dragend' ); - + if (this.values == undefined || Ext.isEmpty(this.values)) this.values = [0]; var values = this.values; @@ -19855,7 +19855,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + addThumb: function(value) { var thumb = new Ext.slider.Thumb({ value : value, @@ -19865,11 +19865,11 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { }); this.thumbs.push(thumb); - + if (this.rendered) thumb.render(); }, - + promoteThumb: function(topThumb) { var thumbs = this.thumbs, zIndex, thumb; @@ -19887,7 +19887,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + onRender : function() { this.autoEl = { cls: 'x-slider ' + (this.vertical ? 'x-slider-vert' : 'x-slider-horz'), @@ -19906,19 +19906,19 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { this.innerEl = this.endEl.first(); this.focusEl = this.innerEl.child('.x-slider-focus'); - + for (var i=0; i < this.thumbs.length; i++) { this.thumbs[i].render(); } - + var thumb = this.innerEl.child('.x-slider-thumb'); this.halfThumb = (this.vertical ? thumb.getHeight() : thumb.getWidth()) / 2; this.initEvents(); }, - + initEvents : function(){ this.mon(this.el, { scope : this, @@ -19929,13 +19929,13 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { this.focusEl.swallowEvent("click", true); }, - + onMouseDown : function(e){ if(this.disabled){ return; } - + var thumbClicked = false; for (var i=0; i < this.thumbs.length; i++) { thumbClicked = thumbClicked || e.target == this.thumbs[i].el.dom; @@ -19948,10 +19948,10 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { this.focus(); }, - + onClickChange : function(local) { if (local.top > this.clickRange[0] && local.top < this.clickRange[1]) { - + var thumb = this.getNearest(local, 'left'), index = thumb.index; @@ -19959,11 +19959,11 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + getNearest: function(local, prop) { var localValue = prop == 'top' ? this.innerEl.getHeight() - local[prop] : local[prop], clickValue = this.reverseValue(localValue), - nearestDistance = (this.maxValue - this.minValue) + 5, + nearestDistance = (this.maxValue - this.minValue) + 5, index = 0, nearest = null; @@ -19981,9 +19981,9 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { return nearest; }, - + onKeyDown : function(e){ - + if(this.disabled || this.thumbs.length !== 1){ e.preventDefault(); return; @@ -20008,7 +20008,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + doSnap : function(value){ if (!(this.increment && value)) { return value; @@ -20027,7 +20027,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { return newValue.constrain(this.minValue, this.maxValue); }, - + afterRender : function(){ Ext.slider.MultiSlider.superclass.afterRender.apply(this, arguments); @@ -20038,7 +20038,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { var v = this.normalizeValue(thumb.value); if (v !== thumb.value) { - + this.setValue(i, v, false); } else { this.moveThumb(i, this.translateValue(v), false); @@ -20047,14 +20047,14 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { }; }, - + getRatio : function(){ var w = this.innerEl.getWidth(), v = this.maxValue - this.minValue; return v == 0 ? w : (w/v); }, - + normalizeValue : function(v){ v = this.doSnap(v); v = Ext.util.Format.round(v, this.decimalPrecision); @@ -20062,14 +20062,14 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { return v; }, - + setMinValue : function(val){ this.minValue = val; var i = 0, thumbs = this.thumbs, len = thumbs.length, t; - + for(; i < len; ++i){ t = thumbs[i]; t.value = t.value < val ? val : t.value; @@ -20077,14 +20077,14 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { this.syncThumb(); }, - + setMaxValue : function(val){ this.maxValue = val; var i = 0, thumbs = this.thumbs, len = thumbs.length, t; - + for(; i < len; ++i){ t = thumbs[i]; t.value = t.value > val ? val : t.value; @@ -20092,7 +20092,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { this.syncThumb(); }, - + setValue : function(index, v, animate, changeComplete) { var thumb = this.thumbs[index], el = thumb.el; @@ -20111,19 +20111,19 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + translateValue : function(v) { var ratio = this.getRatio(); return (v * ratio) - (this.minValue * ratio) - this.halfThumb; }, - + reverseValue : function(pos){ var ratio = this.getRatio(); return (pos + (this.minValue * ratio)) / ratio; }, - + moveThumb: function(index, v, animate){ var thumb = this.thumbs[index].el; @@ -20134,22 +20134,22 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + focus : function(){ this.focusEl.focus(10); }, - + onResize : function(w, h){ var thumbs = this.thumbs, len = thumbs.length, i = 0; - - + + for(; i < len; ++i){ - thumbs[i].el.stopFx(); + thumbs[i].el.stopFx(); } - + if(Ext.isNumber(w)){ this.innerEl.setWidth(w - (this.el.getPadding('l') + this.endEl.getPadding('r'))); } @@ -20157,7 +20157,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { Ext.slider.MultiSlider.superclass.onResize.apply(this, arguments); }, - + onDisable: function(){ Ext.slider.MultiSlider.superclass.onDisable.call(this); @@ -20168,8 +20168,8 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { thumb.disable(); if(Ext.isIE){ - - + + var xy = el.getXY(); el.hide(); @@ -20184,7 +20184,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + onEnable: function(){ Ext.slider.MultiSlider.superclass.onEnable.call(this); @@ -20205,7 +20205,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + syncThumb : function() { if (this.rendered) { for (var i=0; i < this.thumbs.length; i++) { @@ -20214,12 +20214,12 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { } }, - + getValue : function(index) { return this.thumbs[index].value; }, - + getValues: function() { var values = []; @@ -20230,7 +20230,7 @@ Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, { return values; }, - + beforeDestroy : function(){ var thumbs = this.thumbs; for(var i = 0, len = thumbs.length; i < len; ++i){ @@ -20256,20 +20256,20 @@ Ext.slider.SingleSlider = Ext.extend(Ext.slider.MultiSlider, { Ext.slider.SingleSlider.superclass.constructor.call(this, config); }, - + getValue: function() { - + return Ext.slider.SingleSlider.superclass.getValue.call(this, 0); }, - + setValue: function(value, animate) { var args = Ext.toArray(arguments), len = args.length; - - - + + + if (len == 1 || (len <= 3 && typeof arguments[1] != 'number')) { args.unshift(0); } @@ -20277,15 +20277,15 @@ Ext.slider.SingleSlider = Ext.extend(Ext.slider.MultiSlider, { return Ext.slider.SingleSlider.superclass.setValue.apply(this, args); }, - + syncThumb : function() { return Ext.slider.SingleSlider.superclass.syncThumb.apply(this, [0].concat(arguments)); }, - - + + getNearest : function(){ - - return this.thumbs[0]; + + return this.thumbs[0]; } }); @@ -20342,25 +20342,25 @@ Ext.slider.Thumb.Vertical = { }; Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { - + baseCls : 'x-progress', - - + + animate : false, - + waitTimer : null, - + initComponent : function(){ Ext.ProgressBar.superclass.initComponent.call(this); this.addEvents( - + "update" ); }, - + onRender : function(ct, position){ var tpl = new Ext.Template( '
', @@ -20379,7 +20379,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { this.el = position ? tpl.insertBefore(position, {cls: this.baseCls}, true) : tpl.append(ct, {cls: this.baseCls}, true); - + if(this.id){ this.el.dom.id = this.id; } @@ -20387,11 +20387,11 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { this.progressBar = Ext.get(inner.firstChild); if(this.textEl){ - + this.textEl = Ext.get(this.textEl); delete this.textTopEl; }else{ - + this.textTopEl = Ext.get(this.progressBar.dom.firstChild); var textBackEl = Ext.get(inner.childNodes[1]); this.textTopEl.setStyle("z-index", 99).addClass('x-hidden'); @@ -20400,8 +20400,8 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { } this.progressBar.setHeight(inner.offsetHeight); }, - - + + afterRender : function(){ Ext.ProgressBar.superclass.afterRender.call(this); if(this.value){ @@ -20411,7 +20411,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { } }, - + updateProgress : function(value, text, animate){ this.value = value || 0; if(text){ @@ -20421,7 +20421,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { var w = Math.floor(value*this.el.dom.firstChild.offsetWidth); this.progressBar.setWidth(w, animate === true || (animate !== false && this.animate)); if(this.textTopEl){ - + this.textTopEl.removeClass('x-hidden').setWidth(w); } } @@ -20429,7 +20429,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { return this; }, - + wait : function(o){ if(!this.waitTimer){ var scope = this; @@ -20455,12 +20455,12 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { return this; }, - + isWaiting : function(){ return this.waitTimer !== null; }, - + updateText : function(text){ this.text = text || ' '; if(this.rendered){ @@ -20468,8 +20468,8 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { } return this; }, - - + + syncProgressBar : function(){ if(this.value){ this.updateProgress(this.value, this.text); @@ -20477,7 +20477,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { return this; }, - + setSize : function(w, h){ Ext.ProgressBar.superclass.setSize.call(this, w, h); if(this.textTopEl){ @@ -20488,7 +20488,7 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { return this; }, - + reset : function(hide){ this.updateProgress(0); if(this.textTopEl){ @@ -20500,16 +20500,16 @@ Ext.ProgressBar = Ext.extend(Ext.BoxComponent, { } return this; }, - - + + clearTimer : function(){ if(this.waitTimer){ - this.waitTimer.onStop = null; + this.waitTimer.onStop = null; Ext.TaskMgr.stop(this.waitTimer); this.waitTimer = null; } }, - + onDestroy: function(){ this.clearTimer(); if(this.rendered){ @@ -20537,161 +20537,161 @@ Ext.dd.DragDrop = function(id, sGroup, config) { Ext.dd.DragDrop.prototype = { - - + + id: null, - + config: null, - + dragElId: null, - + handleElId: null, - + invalidHandleTypes: null, - + invalidHandleIds: null, - + invalidHandleClasses: null, - + startPageX: 0, - + startPageY: 0, - + groups: null, - + locked: false, - + lock: function() { this.locked = true; }, - + moveOnly: false, - + unlock: function() { this.locked = false; }, - + isTarget: true, - + padding: null, - + _domRef: null, - + __ygDragDrop: true, - + constrainX: false, - + constrainY: false, - + minX: 0, - + maxX: 0, - + minY: 0, - + maxY: 0, - + maintainOffset: false, - + xTicks: null, - + yTicks: null, - + primaryButtonOnly: true, - + available: false, - + hasOuterHandles: false, - + b4StartDrag: function(x, y) { }, - + startDrag: function(x, y) { }, - + b4Drag: function(e) { }, - + onDrag: function(e) { }, - + onDragEnter: function(e, id) { }, - + b4DragOver: function(e) { }, - + onDragOver: function(e, id) { }, - + b4DragOut: function(e) { }, - + onDragOut: function(e, id) { }, - + b4DragDrop: function(e) { }, - + onDragDrop: function(e, id) { }, - + onInvalidDrop: function(e) { }, - + b4EndDrag: function(e) { }, - + endDrag: function(e) { }, - + b4MouseDown: function(e) { }, - + onMouseDown: function(e) { }, - + onMouseUp: function(e) { }, - + onAvailable: function () { }, - + defaultPadding : {left:0, right:0, top:0, bottom:0}, - + constrainTo : function(constrainTo, pad, inContent){ if(Ext.isNumber(pad)){ pad = {left: pad, right:pad, top:pad, bottom:pad}; @@ -20700,7 +20700,7 @@ Ext.dd.DragDrop.prototype = { var b = Ext.get(this.getEl()).getBox(), ce = Ext.get(constrainTo), s = ce.getScroll(), - c, + c, cd = ce.dom; if(cd == document.body){ c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()}; @@ -20714,17 +20714,17 @@ Ext.dd.DragDrop.prototype = { leftSpace = b.x - c.x; this.resetConstraints(); - this.setXConstraint(leftSpace - (pad.left||0), - c.width - leftSpace - b.width - (pad.right||0), + this.setXConstraint(leftSpace - (pad.left||0), + c.width - leftSpace - b.width - (pad.right||0), this.xTickSize ); - this.setYConstraint(topSpace - (pad.top||0), - c.height - topSpace - b.height - (pad.bottom||0), + this.setYConstraint(topSpace - (pad.top||0), + c.height - topSpace - b.height - (pad.bottom||0), this.yTickSize ); }, - + getEl: function() { if (!this._domRef) { this._domRef = Ext.getDom(this.id); @@ -20733,49 +20733,49 @@ Ext.dd.DragDrop.prototype = { return this._domRef; }, - + getDragEl: function() { return Ext.getDom(this.dragElId); }, - + init: function(id, sGroup, config) { this.initTarget(id, sGroup, config); Event.on(this.id, "mousedown", this.handleMouseDown, this); - + }, - + initTarget: function(id, sGroup, config) { - + this.config = config || {}; - + this.DDM = Ext.dd.DDM; - + this.groups = {}; - - + + if (typeof id !== "string") { id = Ext.id(id); } - + this.id = id; - + this.addToGroup((sGroup) ? sGroup : "default"); - - + + this.handleElId = id; - + this.setDragElId(id); - + this.invalidHandleTypes = { A: "A" }; this.invalidHandleIds = {}; this.invalidHandleClasses = []; @@ -20785,11 +20785,11 @@ Ext.dd.DragDrop.prototype = { this.handleOnAvailable(); }, - + applyConfig: function() { - - + + this.padding = this.config.padding || [0, 0, 0, 0]; this.isTarget = (this.config.isTarget !== false); this.maintainOffset = (this.config.maintainOffset); @@ -20797,16 +20797,16 @@ Ext.dd.DragDrop.prototype = { }, - + handleOnAvailable: function() { this.available = true; this.resetConstraints(); this.onAvailable(); }, - + setPadding: function(iTop, iRight, iBot, iLeft) { - + if (!iRight && 0 !== iRight) { this.padding = [iTop, iTop, iTop, iTop]; } else if (!iBot && 0 !== iBot) { @@ -20816,7 +20816,7 @@ Ext.dd.DragDrop.prototype = { } }, - + setInitPosition: function(diffX, diffY) { var el = this.getEl(); @@ -20838,7 +20838,7 @@ Ext.dd.DragDrop.prototype = { this.setStartPosition(p); }, - + setStartPosition: function(pos) { var p = pos || Dom.getXY( this.getEl() ); this.deltaSetXY = null; @@ -20847,13 +20847,13 @@ Ext.dd.DragDrop.prototype = { this.startPageY = p[1]; }, - + addToGroup: function(sGroup) { this.groups[sGroup] = true; this.DDM.regDragDrop(this, sGroup); }, - + removeFromGroup: function(sGroup) { if (this.groups[sGroup]) { delete this.groups[sGroup]; @@ -20862,12 +20862,12 @@ Ext.dd.DragDrop.prototype = { this.DDM.removeDDFromGroup(this, sGroup); }, - + setDragElId: function(id) { this.dragElId = id; }, - + setHandleElId: function(id) { if (typeof id !== "string") { id = Ext.id(id); @@ -20876,7 +20876,7 @@ Ext.dd.DragDrop.prototype = { this.DDM.regHandle(this.id, id); }, - + setOuterHandleElId: function(id) { if (typeof id !== "string") { id = Ext.id(id); @@ -20888,7 +20888,7 @@ Ext.dd.DragDrop.prototype = { this.hasOuterHandles = true; }, - + unreg: function() { Event.un(this.id, "mousedown", this.handleMouseDown); @@ -20900,12 +20900,12 @@ Ext.dd.DragDrop.prototype = { this.unreg(); }, - + isLocked: function() { return (this.DDM.isLocked() || this.locked); }, - + handleMouseDown: function(e, oDD){ if (this.primaryButtonOnly && e.button != 0) { return; @@ -20922,7 +20922,7 @@ Ext.dd.DragDrop.prototype = { } else { if (this.clickValidator(e)) { - + this.setStartPosition(); this.b4MouseDown(e); @@ -20954,13 +20954,13 @@ Ext.dd.DragDrop.prototype = { this.DDM.handleWasClicked(target, this.id)) ); }, - + addInvalidHandleType: function(tagName) { var type = tagName.toUpperCase(); this.invalidHandleTypes[type] = type; }, - + addInvalidHandleId: function(id) { if (typeof id !== "string") { id = Ext.id(id); @@ -20968,19 +20968,19 @@ Ext.dd.DragDrop.prototype = { this.invalidHandleIds[id] = id; }, - + addInvalidHandleClass: function(cssClass) { this.invalidHandleClasses.push(cssClass); }, - + removeInvalidHandleType: function(tagName) { var type = tagName.toUpperCase(); - + delete this.invalidHandleTypes[type]; }, - + removeInvalidHandleId: function(id) { if (typeof id !== "string") { id = Ext.id(id); @@ -20988,7 +20988,7 @@ Ext.dd.DragDrop.prototype = { delete this.invalidHandleIds[id]; }, - + removeInvalidHandleClass: function(cssClass) { for (var i=0, len=this.invalidHandleClasses.length; i= val) { - - + + return tickArray[0]; } else { for (var i=0, len=tickArray.length; i clientH && toBot < thresh ) { window.scrollTo(sl, st + scrAmt); } - - + + if ( y < st && st > 0 && y - st < thresh ) { window.scrollTo(sl, st - scrAmt); } - - + + if ( right > clientW && toRight < thresh ) { window.scrollTo(sl + scrAmt, st); } - - + + if ( x < sl && sl > 0 && x - sl < thresh ) { window.scrollTo(sl - scrAmt, st); } } }, - + getTargetCoord: function(iPageX, iPageY) { var x = iPageX - this.deltaX; var y = iPageY - this.deltaY; @@ -22192,20 +22192,20 @@ Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { return {x:x, y:y}; }, - + applyConfig: function() { Ext.dd.DD.superclass.applyConfig.call(this); this.scroll = (this.config.scroll !== false); }, - + b4MouseDown: function(e) { - + this.autoOffset(e.getPageX(), e.getPageY()); }, - + b4Drag: function(e) { this.setDragElPos(e.getPageX(), e.getPageY()); @@ -22215,10 +22215,10 @@ Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, { return ("DD " + this.id); } - - - - + + + + }); @@ -22234,13 +22234,13 @@ Ext.dd.DDProxy.dragElId = "ygddfdiv"; Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { - + resizeFrame: true, - + centerFrame: false, - + createFrame: function() { var self = this; var body = document.body; @@ -22263,14 +22263,14 @@ Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { s.border = "2px solid #aaa"; s.zIndex = 999; - - - + + + body.insertBefore(div, body.firstChild); } }, - + initFrame: function() { this.createFrame(); }, @@ -22283,7 +22283,7 @@ Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId); }, - + showFrame: function(iPageX, iPageY) { var el = this.getEl(); var dragEl = this.getDragEl(); @@ -22301,7 +22301,7 @@ Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { Ext.fly(dragEl).show(); }, - + _resizeProxy: function() { if (this.resizeFrame) { var el = this.getEl(); @@ -22309,7 +22309,7 @@ Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { } }, - + b4MouseDown: function(e) { var x = e.getPageX(); var y = e.getPageY(); @@ -22317,31 +22317,31 @@ Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, { this.setDragElPos(x, y); }, - + b4StartDrag: function(x, y) { - + this.showFrame(x, y); }, - + b4EndDrag: function(e) { Ext.fly(this.getDragEl()).hide(); }, - - - + + + endDrag: function(e) { var lel = this.getEl(); var del = this.getDragEl(); - + del.style.visibility = ""; this.beforeMove(); - - + + lel.style.visibility = "hidden"; Ext.dd.DDM.moveToEl(lel, del); del.style.visibility = "hidden"; @@ -22372,92 +22372,92 @@ Ext.dd.DDTarget = function(id, sGroup, config) { Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, { - + getDragEl: Ext.emptyFn, - + isValidHandleChild: Ext.emptyFn, - + startDrag: Ext.emptyFn, - + endDrag: Ext.emptyFn, - + onDrag: Ext.emptyFn, - + onDragDrop: Ext.emptyFn, - + onDragEnter: Ext.emptyFn, - + onDragOut: Ext.emptyFn, - + onDragOver: Ext.emptyFn, - + onInvalidDrop: Ext.emptyFn, - + onMouseDown: Ext.emptyFn, - + onMouseUp: Ext.emptyFn, - + setXConstraint: Ext.emptyFn, - + setYConstraint: Ext.emptyFn, - + resetConstraints: Ext.emptyFn, - + clearConstraints: Ext.emptyFn, - + clearTicks: Ext.emptyFn, - + setInitPosition: Ext.emptyFn, - + setDragElId: Ext.emptyFn, - + setHandleElId: Ext.emptyFn, - + setOuterHandleElId: Ext.emptyFn, - + addInvalidHandleClass: Ext.emptyFn, - + addInvalidHandleId: Ext.emptyFn, - + addInvalidHandleType: Ext.emptyFn, - + removeInvalidHandleClass: Ext.emptyFn, - + removeInvalidHandleId: Ext.emptyFn, - + removeInvalidHandleType: Ext.emptyFn, toString: function() { return ("DDTarget " + this.id); } }); -Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, { - +Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, { + active: false, - + tolerance: 5, - + autoStart: false, - + constructor : function(config){ Ext.apply(this, config); this.addEvents( - + 'mousedown', - + 'mouseup', - + 'mousemove', - + 'dragstart', - + 'dragend', - + 'drag' ); - + this.dragRegion = new Ext.lib.Region(0,0,0,0); - + if(this.el){ this.initEl(this.el); } @@ -22495,7 +22495,7 @@ Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, { }, onMouseMove: function(e, target){ - + var ieCheck = Ext.isIE6 || Ext.isIE7 || Ext.isIE8; if(this.active && ieCheck && !e.browserEvent.button){ e.preventDefault(); @@ -22521,7 +22521,7 @@ Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, { onMouseUp: function(e) { var doc = Ext.getDoc(), wasActive = this.active; - + doc.un('mousemove', this.onMouseMove, this); doc.un('mouseup', this.onMouseUp, this); doc.un('selectstart', this.stopSelect, this); @@ -22554,28 +22554,28 @@ Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, { e.stopEvent(); return false; }, - - + + onBeforeStart : function(e) { }, - + onStart : function(xy) { }, - + onDrag : function(e) { }, - + onEnd : function(e) { }, - + getDragTarget : function(){ return this.dragTarget; }, @@ -22620,18 +22620,18 @@ Ext.dd.ScrollManager = function(){ var els = {}; var dragEl = null; var proc = {}; - + var onStop = function(e){ dragEl = null; clearProc(); }; - + var triggerRefresh = function(){ if(ddm.dragCurrent){ ddm.refreshCache(ddm.dragCurrent.groups); } }; - + var doScroll = function(){ if(ddm.dragCurrent){ var dds = Ext.dd.ScrollManager; @@ -22646,7 +22646,7 @@ Ext.dd.ScrollManager = function(){ } } }; - + var clearProc = function(){ if(proc.id){ clearInterval(proc.id); @@ -22669,16 +22669,16 @@ Ext.dd.ScrollManager = function(){ proc.id = setInterval(doScroll, freq); } }; - + var onFire = function(e, isDrop){ if(isDrop || !ddm.dragCurrent){ return; } var dds = Ext.dd.ScrollManager; if(!dragEl || dragEl != ddm.dragCurrent){ dragEl = ddm.dragCurrent; - + dds.refreshCache(); } - + var xy = Ext.lib.Event.getXY(e); var pt = new Ext.lib.Point(xy[0], xy[1]); for(var id in els){ @@ -22710,12 +22710,12 @@ Ext.dd.ScrollManager = function(){ } clearProc(); }; - + ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm); ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm); - + return { - + register : function(el){ if(Ext.isArray(el)){ for(var i = 0, len = el.length; i < len; i++) { @@ -22726,8 +22726,8 @@ Ext.dd.ScrollManager = function(){ els[el.id] = el; } }, - - + + unregister : function(el){ if(Ext.isArray(el)){ for(var i = 0, len = el.length; i < len; i++) { @@ -22738,31 +22738,31 @@ Ext.dd.ScrollManager = function(){ delete els[el.id]; } }, - - + + vthresh : 25, - + hthresh : 25, - + increment : 100, - - + + frequency : 500, - - + + animate: true, - - + + animDuration: .4, - - + + ddGroup: undefined, - - + + refreshCache : function(){ for(var id in els){ - if(typeof els[id] == 'object'){ + if(typeof els[id] == 'object'){ els[id]._region = els[id].getRegion(); } } @@ -22770,8 +22770,8 @@ Ext.dd.ScrollManager = function(){ }; }(); Ext.dd.Registry = function(){ - var elements = {}; - var handles = {}; + var elements = {}; + var handles = {}; var autoIdSeed = 0; var getId = function(el, autogen){ @@ -22785,9 +22785,9 @@ Ext.dd.Registry = function(){ } return id; }; - + return { - + register : function(el, data){ data = data || {}; if(typeof el == "string"){ @@ -22806,7 +22806,7 @@ Ext.dd.Registry = function(){ } }, - + unregister : function(el){ var id = getId(el, false); var data = elements[id]; @@ -22821,29 +22821,29 @@ Ext.dd.Registry = function(){ } }, - + getHandle : function(id){ - if(typeof id != "string"){ + if(typeof id != "string"){ id = id.id; } return handles[id]; }, - + getHandleFromEvent : function(e){ var t = Ext.lib.Event.getTarget(e); return t ? handles[t.id] : null; }, - + getTarget : function(id){ - if(typeof id != "string"){ + if(typeof id != "string"){ id = id.id; } return elements[id]; }, - + getTargetFromEvent : function(e){ var t = Ext.lib.Event.getTarget(e); return t ? elements[t.id] || handles[t.id] : null; @@ -22859,7 +22859,7 @@ Ext.dd.StatusProxy = function(config){ {tag: "div", cls: "x-dd-drop-icon"}, {tag: "div", cls: "x-dd-drag-ghost"} ] - }, + }, shadow: !config || config.shadow !== false }); this.ghost = Ext.get(this.el.dom.childNodes[1]); @@ -22867,12 +22867,12 @@ Ext.dd.StatusProxy = function(config){ }; Ext.dd.StatusProxy.prototype = { - + dropAllowed : "x-dd-drop-ok", - + dropNotAllowed : "x-dd-drop-nodrop", - + setStatus : function(cssClass){ cssClass = cssClass || this.dropNotAllowed; if(this.dropStatus != cssClass){ @@ -22881,7 +22881,7 @@ Ext.dd.StatusProxy.prototype = { } }, - + reset : function(clearGhost){ this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; this.dropStatus = this.dropNotAllowed; @@ -22890,7 +22890,7 @@ Ext.dd.StatusProxy.prototype = { } }, - + update : function(html){ if(typeof html == "string"){ this.ghost.update(html); @@ -22899,23 +22899,23 @@ Ext.dd.StatusProxy.prototype = { html.style.margin = "0"; this.ghost.dom.appendChild(html); } - var el = this.ghost.dom.firstChild; + var el = this.ghost.dom.firstChild; if(el){ Ext.fly(el).setStyle('float', 'none'); } }, - + getEl : function(){ return this.el; }, - + getGhost : function(){ return this.ghost; }, - + hide : function(clear){ this.el.hide(); if(clear){ @@ -22923,24 +22923,24 @@ Ext.dd.StatusProxy.prototype = { } }, - + stop : function(){ if(this.anim && this.anim.isAnimated && this.anim.isAnimated()){ this.anim.stop(); } }, - + show : function(){ this.el.show(); }, - + sync : function(){ this.el.sync(); }, - + repair : function(xy, callback, scope){ this.callback = callback; this.scope = scope; @@ -22960,7 +22960,7 @@ Ext.dd.StatusProxy.prototype = { } }, - + afterRepair : function(){ this.hide(true); if(typeof this.callback == "function"){ @@ -22969,9 +22969,9 @@ Ext.dd.StatusProxy.prototype = { this.callback = null; this.scope = null; }, - + destroy: function(){ - Ext.destroy(this.ghost, this.el); + Ext.destroy(this.ghost, this.el); } }; Ext.dd.DragSource = function(el, config){ @@ -22979,31 +22979,31 @@ Ext.dd.DragSource = function(el, config){ if(!this.dragData){ this.dragData = {}; } - + Ext.apply(this, config); - + if(!this.proxy){ this.proxy = new Ext.dd.StatusProxy(); } - Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, + Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, {dragElId : this.proxy.id, resizeFrame: false, isTarget: false, scroll: this.scroll === true}); - + this.dragging = false; }; Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { - - + + dropAllowed : "x-dd-drop-ok", - + dropNotAllowed : "x-dd-drop-nodrop", - + getDragData : function(e){ return this.dragData; }, - + onDragEnter : function(e, id){ var target = Ext.dd.DragDropMgr.getDDById(id); this.cachedTarget = target; @@ -23014,26 +23014,26 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { }else{ this.proxy.setStatus(this.dropAllowed); } - + if(this.afterDragEnter){ - + this.afterDragEnter(target, e, id); } } }, - + beforeDragEnter : function(target, e, id){ return true; }, - + alignElWithMouse: function() { Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); this.proxy.sync(); }, - + onDragOver : function(e, id){ var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); if(this.beforeDragOver(target, e, id) !== false){ @@ -23043,18 +23043,18 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { } if(this.afterDragOver){ - + this.afterDragOver(target, e, id); } } }, - + beforeDragOver : function(target, e, id){ return true; }, - + onDragOut : function(e, id){ var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); if(this.beforeDragOut(target, e, id) !== false){ @@ -23063,24 +23063,24 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { } this.proxy.reset(); if(this.afterDragOut){ - + this.afterDragOut(target, e, id); } } this.cachedTarget = null; }, - + beforeDragOut : function(target, e, id){ return true; }, - - + + onDragDrop : function(e, id){ var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id); if(this.beforeDragDrop(target, e, id) !== false){ if(target.isNotifyTarget){ - if(target.notifyDrop(this, e, this.dragData)){ + if(target.notifyDrop(this, e, this.dragData)){ this.onValidDrop(target, e, id); }else{ this.onInvalidDrop(target, e, id); @@ -23088,35 +23088,35 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { }else{ this.onValidDrop(target, e, id); } - + if(this.afterDragDrop){ - + this.afterDragDrop(target, e, id); } } delete this.cachedTarget; }, - + beforeDragDrop : function(target, e, id){ return true; }, - + onValidDrop : function(target, e, id){ this.hideProxy(); if(this.afterValidDrop){ - + this.afterValidDrop(target, e, id); } }, - + getRepairXY : function(e, data){ - return this.el.getXY(); + return this.el.getXY(); }, - + onInvalidDrop : function(target, e, id){ this.beforeInvalidDrop(target, e, id); if(this.cachedTarget){ @@ -23128,12 +23128,12 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this); if(this.afterInvalidDrop){ - + this.afterInvalidDrop(e, id); } }, - + afterRepair : function(){ if(Ext.enableFx){ this.el.highlight(this.hlColor || "c3daf9"); @@ -23141,12 +23141,12 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { this.dragging = false; }, - + beforeInvalidDrop : function(target, e, id){ return true; }, - + handleMouseDown : function(e){ if(this.dragging) { return; @@ -23156,18 +23156,18 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { this.dragData = data; this.proxy.stop(); Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments); - } + } }, - + onBeforeDrag : function(data, e){ return true; }, - + onStartDrag : Ext.emptyFn, - + startDrag : function(x, y){ this.proxy.reset(); this.dragging = true; @@ -23176,84 +23176,84 @@ Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, { this.proxy.show(); }, - + onInitDrag : function(x, y){ var clone = this.el.dom.cloneNode(true); - clone.id = Ext.id(); + clone.id = Ext.id(); this.proxy.update(clone); this.onStartDrag(x, y); return true; }, - + getProxy : function(){ - return this.proxy; + return this.proxy; }, - + hideProxy : function(){ - this.proxy.hide(); + this.proxy.hide(); this.proxy.reset(true); this.dragging = false; }, - + triggerCacheRefresh : function(){ Ext.dd.DDM.refreshCache(this.groups); }, - + b4EndDrag: function(e) { }, - + endDrag : function(e){ this.onEndDrag(this.dragData, e); }, - + onEndDrag : function(data, e){ }, - - + + autoOffset : function(x, y) { this.setDelta(-12, -20); }, - + destroy: function(){ Ext.dd.DragSource.superclass.destroy.call(this); Ext.destroy(this.proxy); } }); Ext.dd.DropTarget = Ext.extend(Ext.dd.DDTarget, { - + constructor : function(el, config){ this.el = Ext.get(el); - + Ext.apply(this, config); - + if(this.containerScroll){ Ext.dd.ScrollManager.register(this.el); } - - Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, - {isTarget: true}); + + Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, + {isTarget: true}); }, - - - - + + + + dropAllowed : "x-dd-drop-ok", - + dropNotAllowed : "x-dd-drop-nodrop", - + isTarget : true, - + isNotifyTarget : true, - + notifyEnter : function(dd, e, data){ if(this.overClass){ this.el.addClass(this.overClass); @@ -23261,23 +23261,23 @@ Ext.dd.DropTarget = Ext.extend(Ext.dd.DDTarget, { return this.dropAllowed; }, - + notifyOver : function(dd, e, data){ return this.dropAllowed; }, - + notifyOut : function(dd, e, data){ if(this.overClass){ this.el.removeClass(this.overClass); } }, - + notifyDrop : function(dd, e, data){ return false; }, - + destroy : function(){ Ext.dd.DropTarget.superclass.destroy.call(this); if(this.containerScroll){ @@ -23286,31 +23286,31 @@ Ext.dd.DropTarget = Ext.extend(Ext.dd.DDTarget, { } }); Ext.dd.DragZone = Ext.extend(Ext.dd.DragSource, { - + constructor : function(el, config){ Ext.dd.DragZone.superclass.constructor.call(this, el, config); if(this.containerScroll){ Ext.dd.ScrollManager.register(this.el); } }, - - - - - + + + + + getDragData : function(e){ return Ext.dd.Registry.getHandleFromEvent(e); }, - - + + onInitDrag : function(x, y){ this.proxy.update(this.dragData.ddel.cloneNode(true)); this.onStartDrag(x, y); return true; }, - - + + afterRepair : function(){ if(Ext.enableFx){ Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); @@ -23318,11 +23318,11 @@ Ext.dd.DragZone = Ext.extend(Ext.dd.DragSource, { this.dragging = false; }, - + getRepairXY : function(e){ - return Ext.Element.fly(this.dragData.ddel).getXY(); + return Ext.Element.fly(this.dragData.ddel).getXY(); }, - + destroy : function(){ Ext.dd.DragZone.superclass.destroy.call(this); if(this.containerScroll){ @@ -23335,50 +23335,50 @@ Ext.dd.DropZone = function(el, config){ }; Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { - + getTargetFromEvent : function(e){ return Ext.dd.Registry.getTargetFromEvent(e); }, - + onNodeEnter : function(n, dd, e, data){ - + }, - + onNodeOver : function(n, dd, e, data){ return this.dropAllowed; }, - + onNodeOut : function(n, dd, e, data){ - + }, - + onNodeDrop : function(n, dd, e, data){ return false; }, - + onContainerOver : function(dd, e, data){ return this.dropNotAllowed; }, - + onContainerDrop : function(dd, e, data){ return false; }, - + notifyEnter : function(dd, e, data){ return this.dropNotAllowed; }, - + notifyOver : function(dd, e, data){ var n = this.getTargetFromEvent(e); - if(!n){ + if(!n){ if(this.lastOverNode){ this.onNodeOut(this.lastOverNode, dd, e, data); this.lastOverNode = null; @@ -23395,7 +23395,7 @@ Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { return this.onNodeOver(n, dd, e, data); }, - + notifyOut : function(dd, e, data){ if(this.lastOverNode){ this.onNodeOut(this.lastOverNode, dd, e, data); @@ -23403,7 +23403,7 @@ Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { } }, - + notifyDrop : function(dd, e, data){ if(this.lastOverNode){ this.onNodeOut(this.lastOverNode, dd, e, data); @@ -23415,25 +23415,25 @@ Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, { this.onContainerDrop(dd, e, data); }, - + triggerCacheRefresh : function(){ Ext.dd.DDM.refreshCache(this.groups); - } + } }); Ext.Element.addMethods({ - + initDD : function(group, config, overrides){ var dd = new Ext.dd.DD(Ext.id(this.dom), group, config); return Ext.apply(dd, overrides); }, - + initDDProxy : function(group, config, overrides){ var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config); return Ext.apply(dd, overrides); }, - + initDDTarget : function(group, config, overrides){ var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config); return Ext.apply(dd, overrides); @@ -23442,14 +23442,14 @@ Ext.Element.addMethods({ Ext.data.Api = (function() { - - - - + + + + var validActions = {}; return { - + actions : { create : 'create', read : 'read', @@ -23457,7 +23457,7 @@ Ext.data.Api = (function() { destroy : 'destroy' }, - + restActions : { create : 'POST', read : 'GET', @@ -23465,15 +23465,15 @@ Ext.data.Api = (function() { destroy : 'DELETE' }, - + isAction : function(action) { return (Ext.data.Api.actions[action]) ? true : false; }, - + getVerb : function(name) { if (validActions[name]) { - return validActions[name]; + return validActions[name]; } for (var verb in this.actions) { if (this.actions[verb] === name) { @@ -23484,10 +23484,10 @@ Ext.data.Api = (function() { return (validActions[name] !== undefined) ? validActions[name] : null; }, - + isValid : function(api){ var invalid = []; - var crud = this.actions; + var crud = this.actions; for (var action in api) { if (!(action in crud)) { invalid.push(action); @@ -23496,7 +23496,7 @@ Ext.data.Api = (function() { return (!invalid.length) ? true : invalid; }, - + hasUniqueUrl : function(proxy, verb) { var url = (proxy.api[verb]) ? proxy.api[verb].url : null; var unique = true; @@ -23508,10 +23508,10 @@ Ext.data.Api = (function() { return unique; }, - + prepare : function(proxy) { if (!proxy.api) { - proxy.api = {}; + proxy.api = {}; } for (var verb in this.actions) { var action = this.actions[verb]; @@ -23525,15 +23525,15 @@ Ext.data.Api = (function() { } }, - + restify : function(proxy) { proxy.restful = true; for (var verb in this.restActions) { proxy.api[this.actions[verb]].method || (proxy.api[this.actions[verb]].method = this.restActions[verb]); } - - + + proxy.onWrite = proxy.onWrite.createInterceptor(function(action, o, response, rs) { var reader = o.reader; var res = new Ext.data.Response({ @@ -23542,18 +23542,18 @@ Ext.data.Api = (function() { }); switch (response.status) { - case 200: + case 200: return true; break; - case 201: + case 201: if (Ext.isEmpty(res.raw.responseText)) { res.success = true; } else { - + return true; } break; - case 204: + case 204: res.success = true; res.data = null; break; @@ -23568,7 +23568,7 @@ Ext.data.Api = (function() { } o.request.callback.call(o.request.scope, res.data, res, res.success); - return false; + return false; }, proxy); } }; @@ -23625,30 +23625,30 @@ Ext.apply(Ext.data.Api.Error.prototype, { Ext.data.SortTypes = { - + none : function(s){ return s; }, - - + + stripTagsRE : /<\/?[^>]+>/gi, - - + + asText : function(s){ return String(s).replace(this.stripTagsRE, ""); }, - - + + asUCText : function(s){ return String(s).toUpperCase().replace(this.stripTagsRE, ""); }, - - + + asUCString : function(s) { return String(s).toUpperCase(); }, - - + + asDate : function(s) { if(!s){ return 0; @@ -23658,21 +23658,21 @@ Ext.data.SortTypes = { } return Date.parse(String(s)); }, - - + + asFloat : function(s) { var val = parseFloat(String(s).replace(/,/g, "")); return isNaN(val) ? 0 : val; }, - - + + asInt : function(s) { var val = parseInt(String(s).replace(/,/g, ""), 10); return isNaN(val) ? 0 : val; } }; Ext.data.Record = function(data, id){ - + this.id = (id || id === 0) ? id : Ext.data.Record.id(this); this.data = data || {}; }; @@ -23707,32 +23707,32 @@ Ext.data.Record.id = function(rec) { }; Ext.data.Record.prototype = { - - - - - - + + + + + + dirty : false, editing : false, error : null, - + modified : null, - + phantom : false, - + join : function(store){ - + this.store = store; }, - + set : function(name, value){ var encode = Ext.isPrimitive(value) ? String : Ext.encode; if(encode(this.data[name]) == encode(value)) { return; - } + } this.dirty = true; if(!this.modified){ this.modified = {}; @@ -23746,45 +23746,45 @@ Ext.data.Record.prototype = { } }, - + afterEdit : function(){ if (this.store != undefined && typeof this.store.afterEdit == "function") { this.store.afterEdit(this); } }, - + afterReject : function(){ if(this.store){ this.store.afterReject(this); } }, - + afterCommit : function(){ if(this.store){ this.store.afterCommit(this); } }, - + get : function(name){ return this.data[name]; }, - + beginEdit : function(){ this.editing = true; this.modified = this.modified || {}; }, - + cancelEdit : function(){ this.editing = false; delete this.modified; }, - + endEdit : function(){ this.editing = false; if(this.dirty){ @@ -23792,7 +23792,7 @@ Ext.data.Record.prototype = { } }, - + reject : function(silent){ var m = this.modified; for(var n in m){ @@ -23808,7 +23808,7 @@ Ext.data.Record.prototype = { } }, - + commit : function(silent){ this.dirty = false; delete this.modified; @@ -23818,7 +23818,7 @@ Ext.data.Record.prototype = { } }, - + getChanges : function(){ var m = this.modified, cs = {}; for(var n in m){ @@ -23829,34 +23829,34 @@ Ext.data.Record.prototype = { return cs; }, - + hasError : function(){ return this.error !== null; }, - + clearError : function(){ this.error = null; }, - + copy : function(newId) { return new this.constructor(Ext.apply({}, this.data), newId || this.id); }, - + isModified : function(fieldName){ return !!(this.modified && this.modified.hasOwnProperty(fieldName)); }, - + isValid : function() { return this.fields.find(function(f) { return (f.allowBlank === false && Ext.isEmpty(this.data[f.name])) ? true : false; },this) ? false : true; }, - + markDirty : function(){ this.dirty = true; if(!this.modified){ @@ -23869,23 +23869,23 @@ Ext.data.Record.prototype = { }; Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), { - - + + register : function(){ for(var i = 0, s; (s = arguments[i]); i++){ this.add(s); } }, - + unregister : function(){ for(var i = 0, s; (s = arguments[i]); i++){ this.remove(this.lookup(s)); } }, - + lookup : function(id){ if(Ext.isArray(id)){ var fields = ['field1'], expand = !Ext.isArray(id[0]); @@ -23906,47 +23906,47 @@ Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), { return Ext.isObject(id) ? (id.events ? id : Ext.create(id, 'store')) : this.get(id); }, - + getKey : function(o){ return o.storeId; } }); Ext.data.Store = Ext.extend(Ext.util.Observable, { - - - - - - - + + + + + + + writer : undefined, - - - + + + remoteSort : false, - + autoDestroy : false, - + pruneModifiedRecords : false, - + lastOptions : null, - + autoSave : true, - + batch : true, - + restful: false, - + paramNames : undefined, - + defaultParamNames : { start : 'start', limit : 'limit', @@ -23957,13 +23957,13 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { isDestroyed: false, hasMultiSort: false, - + batchKey : '_ext_batch_', constructor : function(config){ - - + + this.data = new Ext.util.MixedCollection(false); this.data.getKey = function(o){ @@ -23971,7 +23971,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { }; - + this.removed = []; if(config && config.data){ @@ -23981,7 +23981,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { Ext.apply(this, config); - + this.baseParams = Ext.isObject(this.baseParams) ? this.baseParams : {}; this.paramNames = Ext.applyIf(this.paramNames || {}, this.defaultParamNames); @@ -23989,23 +23989,23 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { if((this.url || this.api) && !this.proxy){ this.proxy = new Ext.data.HttpProxy({url: this.url, api: this.api}); } - + if (this.restful === true && this.proxy) { - - + + this.batch = false; Ext.data.Api.restify(this.proxy); } - if(this.reader){ + if(this.reader){ if(!this.recordType){ this.recordType = this.reader.recordType; } if(this.reader.onMetaChange){ this.reader.onMetaChange = this.reader.onMetaChange.createSequence(this.onMetaChange, this); } - if (this.writer) { - if (this.writer instanceof(Ext.data.DataWriter) === false) { + if (this.writer) { + if (this.writer instanceof(Ext.data.DataWriter) === false) { this.writer = this.buildWriter(this.writer); } this.writer.meta = this.reader.meta; @@ -24013,51 +24013,51 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } } - + if(this.recordType){ - + this.fields = this.recordType.prototype.fields; } this.modified = []; this.addEvents( - + 'datachanged', - + 'metachange', - + 'add', - + 'remove', - + 'update', - + 'clear', - + 'exception', - + 'beforeload', - + 'load', - + 'loadexception', - + 'beforewrite', - + 'write', - + 'beforesave', - + 'save' ); if(this.proxy){ - + this.relayEvents(this.proxy, ['loadexception', 'exception']); } - + if (this.writer) { this.on({ scope: this, @@ -24092,12 +24092,12 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { typeof this.autoLoad == 'object' ? this.autoLoad : undefined]); } - + this.batchCounter = 0; this.batches = {}; }, - + buildWriter : function(config) { var klass = undefined, type = (config.format || 'json').toLowerCase(); @@ -24114,7 +24114,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return new klass(config); }, - + destroy : function(){ if(!this.isDestroyed){ if(this.storeId){ @@ -24129,7 +24129,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + add : function(records) { var i, len, record, index; @@ -24158,16 +24158,16 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.fireEvent('add', this, records, index); }, - + addSorted : function(record){ var index = this.findInsertIndex(record); this.insert(index, record); }, - + doUpdate: function(rec){ var id = rec.id; - + this.getById(id).join(null); this.data.replace(id, rec); @@ -24178,7 +24178,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.fireEvent('update', this, rec, Ext.data.Record.COMMIT); }, - + remove : function(record){ if(Ext.isArray(record)){ Ext.each(record, function(r){ @@ -24202,12 +24202,12 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + removeAt : function(index){ this.remove(this.getAt(index)); }, - + removeAll : function(silent){ var items = []; this.each(function(rec){ @@ -24220,19 +24220,19 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { if(this.pruneModifiedRecords){ this.modified = []; } - if (silent !== true) { + if (silent !== true) { this.fireEvent('clear', this, items); } }, - + onClear: function(store, records){ Ext.each(records, function(rec, index){ this.destroyRecord(this, rec, index); }, this); }, - + insert : function(index, records) { var i, len, record; @@ -24255,32 +24255,32 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.fireEvent('add', this, records, index); }, - + indexOf : function(record){ return this.data.indexOf(record); }, - + indexOfId : function(id){ return this.data.indexOfKey(id); }, - + getById : function(id){ return (this.snapshot || this.data).key(id); }, - + getAt : function(index){ return this.data.itemAt(index); }, - + getRange : function(start, end){ return this.data.getRange(start, end); }, - + storeOptions : function(o){ o = Ext.apply({}, o); delete o.callback; @@ -24288,7 +24288,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.lastOptions = o; }, - + clearData: function(){ this.data.each(function(rec) { rec.join(null); @@ -24296,7 +24296,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.data.clear(); }, - + load : function(options) { options = Ext.apply({}, options); this.storeOptions(options); @@ -24307,21 +24307,21 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { options.params[pn.dir] = this.sortInfo.direction; } try { - return this.execute('read', null, options); + return this.execute('read', null, options); } catch(e) { this.handleException(e); return false; } }, - + updateRecord : function(store, record, action) { if (action == Ext.data.Record.EDIT && this.autoSave === true && (!record.phantom || (record.phantom && record.isValid()))) { this.save(); } }, - + createRecords : function(store, records, index) { var modified = this.modified, length = records.length, @@ -24331,7 +24331,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { record = records[i]; if (record.phantom && record.isValid()) { - record.markDirty(); + record.markDirty(); if (modified.indexOf(record) == -1) { modified.push(record); @@ -24343,17 +24343,17 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + destroyRecord : function(store, record, index) { - if (this.modified.indexOf(record) != -1) { + if (this.modified.indexOf(record) != -1) { this.modified.remove(record); } if (!record.phantom) { this.removed.push(record); - - - + + + record.lastIndex = index; if (this.autoSave === true) { @@ -24362,21 +24362,21 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + execute : function(action, rs, options, batch) { - + if (!Ext.data.Api.isAction(action)) { throw new Ext.data.Api.Error('execute', action); } - + options = Ext.applyIf(options||{}, { params: {} }); if(batch !== undefined){ this.addToBatch(batch); } - - + + var doRequest = true; if (action === 'read') { @@ -24384,36 +24384,36 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { Ext.applyIf(options.params, this.baseParams); } else { - - + + if (this.writer.listful === true && this.restful !== true) { rs = (Ext.isArray(rs)) ? rs : [rs]; } - + else if (Ext.isArray(rs) && rs.length == 1) { rs = rs.shift(); } - + if ((doRequest = this.fireEvent('beforewrite', this, action, rs, options)) !== false) { this.writer.apply(options.params, this.baseParams, action, rs); } } if (doRequest !== false) { - + if (this.writer && this.proxy.url && !this.proxy.restful && !Ext.data.Api.hasUniqueUrl(this.proxy, action)) { - options.params.xaction = action; + options.params.xaction = action; } - - - - - + + + + + this.proxy.request(Ext.data.Api.actions[action], rs, options.params, this.reader, this.createCallback(action, rs, batch), this, options); } return doRequest; }, - + save : function() { if (!this.writer) { throw new Ext.data.Store.Error('writer-undefined'); @@ -24425,15 +24425,15 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { batch, data = {}, i; - + if(this.removed.length){ queue.push(['destroy', this.removed]); } - + var rs = [].concat(this.getModifiedRecords()); if(rs.length){ - + var phantoms = []; for(i = rs.length-1; i >= 0; i--){ if(rs[i].phantom === true){ @@ -24441,16 +24441,16 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { if(rec.isValid()){ phantoms.push(rec); } - }else if(!rs[i].isValid()){ + }else if(!rs[i].isValid()){ rs.splice(i,1); } } - + if(phantoms.length){ queue.push(['create', phantoms]); } - + if(rs.length){ queue.push(['update', rs]); } @@ -24473,7 +24473,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return -1; }, - + doTransaction : function(action, rs, batch) { function transaction(records) { try{ @@ -24491,7 +24491,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + addToBatch : function(batch){ var b = this.batches, key = this.batchKey + batch, @@ -24527,14 +24527,14 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - - + + createCallback : function(action, rs, batch) { var actions = Ext.data.Api.actions; return (action == 'read') ? this.loadRecords : function(data, response, success) { - + this['on' + Ext.util.Format.capitalize(action) + 'Records'](success, rs, [].concat(data)); - + if (success === true) { this.fireEvent('write', this, action, data, response, rs); } @@ -24542,9 +24542,9 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { }; }, - - - + + + clearModified : function(rs) { if (Ext.isArray(rs)) { for (var n=rs.length-1;n>=0;n--) { @@ -24555,7 +24555,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + reMap : function(record) { if (Ext.isArray(record)) { for (var i = 0, len = record.length; i < len; i++) { @@ -24570,7 +24570,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + onCreateRecords : function(success, rs, data) { if (success === true) { try { @@ -24579,14 +24579,14 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { catch (e) { this.handleException(e); if (Ext.isArray(rs)) { - + this.onCreateRecords(success, rs, data); } } } }, - + onUpdateRecords : function(success, rs, data) { if (success === true) { try { @@ -24594,42 +24594,42 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } catch (e) { this.handleException(e); if (Ext.isArray(rs)) { - + this.onUpdateRecords(success, rs, data); } } } }, - + onDestroyRecords : function(success, rs, data) { - + rs = (rs instanceof Ext.data.Record) ? [rs] : [].concat(rs); for (var i=0,len=rs.length;i=0;i--) { - this.insert(rs[i].lastIndex, rs[i]); + this.insert(rs[i].lastIndex, rs[i]); } } }, - + handleException : function(e) { - + Ext.handleError(e); }, - + reload : function(options){ this.load(Ext.applyIf(options||{}, this.lastOptions)); }, - - + + loadRecords : function(o, options, success){ var i, len; @@ -24684,47 +24684,47 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + loadData : function(o, append){ var r = this.reader.readRecords(o); this.loadRecords(r, {add: append}, true); }, - + getCount : function(){ return this.data.length || 0; }, - + getTotalCount : function(){ return this.totalLength || 0; }, - + getSortState : function(){ return this.sortInfo; }, - + applySort : function(){ if ((this.sortInfo || this.multiSortInfo) && !this.remoteSort) { this.sortData(); } }, - + sortData : function() { var sortInfo = this.hasMultiSort ? this.multiSortInfo : this.sortInfo, direction = sortInfo.direction || "ASC", sorters = sortInfo.sorters, sortFns = []; - + if (!this.hasMultiSort) { sorters = [{direction: direction, field: sortInfo.field}]; } - + for (var i=0, j = sorters.length; i < j; i++) { sortFns.push(this.createSortFunction(sorters[i].field, sorters[i].direction)); } @@ -24733,15 +24733,15 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return; } - - + + var directionModifier = direction.toUpperCase() == "DESC" ? -1 : 1; - + var fn = function(r1, r2) { var result = sortFns[0].call(this, r1, r2); - + if (sortFns.length > 1) { for (var i=1, j = sortFns.length; i < j; i++) { result = result || sortFns[i].call(this, r1, r2); @@ -24751,22 +24751,22 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return directionModifier * result; }; - + this.data.sort(direction, fn); if (this.snapshot && this.snapshot != this.data) { this.snapshot.sort(direction, fn); } }, - + createSortFunction: function(field, direction) { direction = direction || "ASC"; var directionModifier = direction.toUpperCase() == "DESC" ? -1 : 1; var sortType = this.fields.get(field).sortType; - - + + return function(r1, r2) { var v1 = sortType(r1.data[field]), v2 = sortType(r2.data[field]); @@ -24775,14 +24775,14 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { }; }, - + setDefaultSort : function(field, dir) { dir = dir ? dir.toUpperCase() : 'ASC'; this.sortInfo = {field: field, direction: dir}; this.sortToggle[field] = dir; }, - + sort : function(fieldName, dir) { if (Ext.isArray(arguments[0])) { return this.multiSort.call(this, fieldName, dir); @@ -24791,7 +24791,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + singleSort: function(fieldName, dir) { var field = this.fields.get(fieldName); if (!field) { @@ -24803,7 +24803,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { sortToggle = this.sortToggle ? this.sortToggle[name] : null; if (!dir) { - if (sortInfo && sortInfo.field == name) { + if (sortInfo && sortInfo.field == name) { dir = (this.sortToggle[name] || 'ASC').toggle('ASC', 'DESC'); } else { dir = field.sortDir; @@ -24830,17 +24830,17 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return true; }, - + multiSort: function(sorters, direction) { this.hasMultiSort = true; direction = direction || "ASC"; - + if (this.multiSortInfo && direction == this.multiSortInfo.direction) { direction = direction.toggle("ASC", "DESC"); } - + this.multiSortInfo = { sorters : sorters, direction: direction @@ -24855,17 +24855,17 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + each : function(fn, scope){ this.data.each(fn, scope); }, - + getModifiedRecords : function(){ return this.modified; }, - + sum : function(property, start, end){ var rs = this.data.items, v = 0; start = start || 0; @@ -24877,7 +24877,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return v; }, - + createFilterFn : function(property, value, anyMatch, caseSensitive, exactMatch){ if(Ext.isEmpty(value, false)){ return false; @@ -24888,7 +24888,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { }; }, - + createMultipleFilterFn: function(filters) { return function(record) { var isMatch = true; @@ -24905,10 +24905,10 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { }; }, - + filter : function(property, value, anyMatch, caseSensitive, exactMatch){ var fn; - + if (Ext.isObject(property)) { property = [property]; } @@ -24916,13 +24916,13 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { if (Ext.isArray(property)) { var filters = []; - + for (var i=0, j = property.length; i < j; i++) { var filter = property[i], func = filter.fn, scope = filter.scope || this; - + if (!Ext.isFunction(func)) { func = this.createFilterFn(filter.property, filter.value, filter.anyMatch, filter.caseSensitive, filter.exactMatch); } @@ -24932,21 +24932,21 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { fn = this.createMultipleFilterFn(filters); } else { - + fn = this.createFilterFn(property, value, anyMatch, caseSensitive, exactMatch); } return fn ? this.filterBy(fn) : this.clearFilter(); }, - + filterBy : function(fn, scope){ this.snapshot = this.snapshot || this.data; this.data = this.queryBy(fn, scope || this); this.fireEvent('datachanged', this); }, - + clearFilter : function(suppressEvent){ if(this.isFiltered()){ this.data = this.snapshot; @@ -24957,42 +24957,42 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { } }, - + isFiltered : function(){ return !!this.snapshot && this.snapshot != this.data; }, - + query : function(property, value, anyMatch, caseSensitive){ var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); return fn ? this.queryBy(fn) : this.data.clone(); }, - + queryBy : function(fn, scope){ var data = this.snapshot || this.data; return data.filterBy(fn, scope||this); }, - + find : function(property, value, start, anyMatch, caseSensitive){ var fn = this.createFilterFn(property, value, anyMatch, caseSensitive); return fn ? this.data.findIndexBy(fn, null, start) : -1; }, - + findExact: function(property, value, start){ return this.data.findIndexBy(function(rec){ return rec.get(property) === value; }, this, start); }, - + findBy : function(fn, scope, start){ return this.data.findIndexBy(fn, scope, start); }, - + collect : function(dataIndex, allowNull, bypassFilter){ var d = (bypassFilter === true && this.snapshot) ? this.snapshot.items : this.data.items; @@ -25008,7 +25008,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return r; }, - + afterEdit : function(record){ if(this.modified.indexOf(record) == -1){ this.modified.push(record); @@ -25016,19 +25016,19 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.fireEvent('update', this, record, Ext.data.Record.EDIT); }, - + afterReject : function(record){ this.modified.remove(record); this.fireEvent('update', this, record, Ext.data.Record.REJECT); }, - + afterCommit : function(record){ this.modified.remove(record); this.fireEvent('update', this, record, Ext.data.Record.COMMIT); }, - + commitChanges : function(){ var modified = this.modified.slice(0), length = modified.length, @@ -25042,7 +25042,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.removed = []; }, - + rejectChanges : function() { var modified = this.modified.slice(0), removed = this.removed.slice(0).reverse(), @@ -25063,7 +25063,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.removed = []; }, - + onMetaChange : function(meta){ this.recordType = this.reader.recordType; this.fields = this.recordType.prototype.fields; @@ -25080,7 +25080,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { this.fireEvent('metachange', this, this.reader.meta); }, - + findInsertIndex : function(record){ this.suspendEvents(); var data = this.data.clone(); @@ -25092,7 +25092,7 @@ Ext.data.Store = Ext.extend(Ext.util.Observable, { return index; }, - + setBaseParam : function (name, value){ this.baseParams = this.baseParams || {}; this.baseParams[name] = value; @@ -25112,13 +25112,13 @@ Ext.apply(Ext.data.Store.Error.prototype, { }); Ext.data.Field = Ext.extend(Object, { - + constructor : function(config){ if(Ext.isString(config)){ config = {name: config}; } Ext.apply(this, config); - + var types = Ext.data.Types, st = this.sortType, t; @@ -25131,7 +25131,7 @@ Ext.data.Field = Ext.extend(Object, { this.type = types.AUTO; } - + if(Ext.isString(st)){ this.sortType = Ext.data.SortTypes[st]; }else if(Ext.isEmpty(st)){ @@ -25142,85 +25142,85 @@ Ext.data.Field = Ext.extend(Object, { this.convert = this.type.convert; } }, - - - - - + + + + + dateFormat: null, - - + + useNull: false, - - + + defaultValue: "", - + mapping: null, - + sortType : null, - + sortDir : "ASC", - + allowBlank : true }); Ext.data.DataReader = function(meta, recordType){ - + this.meta = meta; - + this.recordType = Ext.isArray(recordType) ? Ext.data.Record.create(recordType) : recordType; - + if (this.recordType){ this.buildExtractors(); } }; Ext.data.DataReader.prototype = { - - + + getTotal: Ext.emptyFn, - + getRoot: Ext.emptyFn, - + getMessage: Ext.emptyFn, - + getSuccess: Ext.emptyFn, - + getId: Ext.emptyFn, - + buildExtractors : Ext.emptyFn, - + extractValues : Ext.emptyFn, - + realize: function(rs, data){ if (Ext.isArray(rs)) { for (var i = rs.length - 1; i >= 0; i--) { - + if (Ext.isArray(data)) { this.realize(rs.splice(i,1).shift(), data.splice(i,1).shift()); } else { - - + + this.realize(rs.splice(i,1).shift(), data); } } } else { - + if (Ext.isArray(data) && data.length == 1) { data = data.shift(); } if (!this.isData(data)) { - - + + throw new Ext.data.DataReader.Error('realize', rs); } - rs.phantom = false; - rs._phid = rs.id; + rs.phantom = false; + rs._phid = rs.id; rs.id = this.getId(data); rs.data = data; @@ -25229,7 +25229,7 @@ Ext.data.DataReader.prototype = { } }, - + update : function(rs, data) { if (Ext.isArray(rs)) { for (var i=rs.length-1; i >= 0; i--) { @@ -25237,14 +25237,14 @@ Ext.data.DataReader.prototype = { this.update(rs.splice(i,1).shift(), data.splice(i,1).shift()); } else { - - + + this.update(rs.splice(i,1).shift(), data); } } } else { - + if (Ext.isArray(data) && data.length == 1) { data = data.shift(); } @@ -25255,15 +25255,15 @@ Ext.data.DataReader.prototype = { } }, - + extractData : function(root, returnRecords) { - + var rawName = (this instanceof Ext.data.JsonReader) ? 'json' : 'node'; var rs = []; - - + + if (this.isData(root) && !(this instanceof Ext.data.XmlReader)) { root = [root]; } @@ -25276,7 +25276,7 @@ Ext.data.DataReader.prototype = { for (var i = 0; i < root.length; i++) { var n = root[i]; var record = new Record(this.extractValues(n, fi, fl), this.getId(n)); - record[rawName] = n; + record[rawName] = n; rs.push(record); } } @@ -25290,12 +25290,12 @@ Ext.data.DataReader.prototype = { return rs; }, - + isData : function(data) { return (data && Ext.isObject(data) && !Ext.isEmpty(this.getId(data))) ? true : false; }, - + onMetaChange : function(meta){ delete this.ef; this.meta = meta; @@ -25325,16 +25325,16 @@ Ext.data.DataWriter = function(config){ }; Ext.data.DataWriter.prototype = { - + writeAllFields : false, - - listful : false, - + listful : false, + + apply : function(params, baseParams, action, rs) { var data = [], renderer = action + 'Record'; - + if (Ext.isArray(rs)) { Ext.each(rs, function(rec){ data.push(this[renderer](rec)); @@ -25346,19 +25346,19 @@ Ext.data.DataWriter.prototype = { this.render(params, baseParams, data); }, - + render : Ext.emptyFn, - + updateRecord : Ext.emptyFn, - + createRecord : Ext.emptyFn, - + destroyRecord : Ext.emptyFn, - + toHash : function(rec, config) { var map = rec.fields.map, data = {}, @@ -25369,9 +25369,9 @@ Ext.data.DataWriter.prototype = { data[m.mapping ? m.mapping : m.name] = value; } }); - - - + + + if (rec.phantom) { if (rec.fields.containsKey(this.meta.idProperty) && Ext.isEmpty(rec.data[this.meta.idProperty])) { delete data[this.meta.idProperty]; @@ -25382,7 +25382,7 @@ Ext.data.DataWriter.prototype = { return data; }, - + toArray : function(data) { var fields = []; Ext.iterate(data, function(k, v) {fields.push({name: k, value: v});},this); @@ -25390,41 +25390,41 @@ Ext.data.DataWriter.prototype = { } }; Ext.data.DataProxy = function(conn){ - - + + conn = conn || {}; - - - + + + this.api = conn.api; this.url = conn.url; this.restful = conn.restful; this.listeners = conn.listeners; - + this.prettyUrls = conn.prettyUrls; - + this.addEvents( - + 'exception', - + 'beforeload', - + 'load', - + 'loadexception', - + 'beforewrite', - + 'write' ); Ext.data.DataProxy.superclass.constructor.call(this); - + try { Ext.data.Api.prepare(this); } catch (e) { @@ -25432,15 +25432,15 @@ Ext.data.DataProxy = function(conn){ e.toConsole(); } } - + Ext.data.DataProxy.relayEvents(this, ['beforewrite', 'write', 'exception']); }; Ext.extend(Ext.data.DataProxy, Ext.util.Observable, { - + restful: false, - + setApi : function() { if (arguments.length == 1) { var valid = Ext.data.Api.isValid(arguments[0]); @@ -25460,12 +25460,12 @@ Ext.extend(Ext.data.DataProxy, Ext.util.Observable, { Ext.data.Api.prepare(this); }, - + isApiAction : function(action) { return (this.api[action]) ? true : false; }, - + request : function(action, rs, params, reader, callback, scope, options) { if (!this.api[action] && !this.load) { throw new Ext.data.DataProxy.Error('action-undefined', action); @@ -25480,53 +25480,53 @@ Ext.extend(Ext.data.DataProxy, Ext.util.Observable, { }, - + load : null, - + doRequest : function(action, rs, params, reader, callback, scope, options) { - - - + + + this.load(params, reader, callback, scope, options); }, - + onRead : Ext.emptyFn, - + onWrite : Ext.emptyFn, - + buildUrl : function(action, record) { record = record || null; - - - + + + var url = (this.conn && this.conn.url) ? this.conn.url : (this.api[action]) ? this.api[action].url : this.url; if (!url) { throw new Ext.data.Api.Error('invalid-url', action); } - - - - - - + + + + + + var provides = null; var m = url.match(/(.*)(\.json|\.xml|\.html)$/); if (m) { - provides = m[2]; - url = m[1]; + provides = m[2]; + url = m[1]; } - + if ((this.restful === true || this.prettyUrls === true) && record instanceof Ext.data.Record && !record.phantom) { url += '/' + record.id; } return (provides === null) ? url : url + provides; }, - + destroy: function(){ this.purgeListeners(); } @@ -25558,17 +25558,17 @@ Ext.data.Request = function(params) { Ext.apply(this, params); }; Ext.data.Request.prototype = { - + action : undefined, - + rs : undefined, - + params: undefined, - + callback : Ext.emptyFn, - + scope : undefined, - + reader : undefined }; @@ -25576,17 +25576,17 @@ Ext.data.Response = function(params) { Ext.apply(this, params); }; Ext.data.Response.prototype = { - + action: undefined, - + success : undefined, - + message : undefined, - + data: undefined, - + raw: undefined, - + records: undefined }; @@ -25597,21 +25597,21 @@ Ext.data.ScriptTagProxy = function(config){ this.head = document.getElementsByTagName("head")[0]; - + }; Ext.data.ScriptTagProxy.TRANS_ID = 1000; Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { - - + + timeout : 30000, - + callbackParam : "callback", - + nocache : true, - + doRequest : function(action, rs, params, reader, callback, scope, arg) { var p = Ext.urlEncode(Ext.apply(params, this.extraParams)); @@ -25654,7 +25654,7 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { this.trans = trans; }, - + createCallback : function(action, rs, trans) { var self = this; return function(res) { @@ -25667,13 +25667,13 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { } }; }, - + onRead : function(action, trans, res) { var result; try { result = trans.reader.readRecords(res); }catch(e){ - + this.fireEvent("loadexception", this, trans, res, e); this.fireEvent('exception', this, 'response', action, trans, res, e); @@ -25681,7 +25681,7 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { return; } if (result.success === false) { - + this.fireEvent('loadexception', this, trans, res); this.fireEvent('exception', this, 'remote', action, trans, res, null); @@ -25690,11 +25690,11 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { } trans.callback.call(trans.scope||window, result, trans.arg, result.success); }, - + onWrite : function(action, trans, response, rs) { var reader = trans.reader; try { - + var res = reader.readResponse(action, response); } catch (e) { this.fireEvent('exception', this, 'response', action, trans, res, e); @@ -25710,19 +25710,19 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { trans.callback.call(trans.scope||window, res.data, res, true); }, - + isLoading : function(){ return this.trans ? true : false; }, - + abort : function(){ if(this.isLoading()){ this.destroyTrans(this.trans); } }, - + destroyTrans : function(trans, isLoaded){ this.head.removeChild(document.getElementById(trans.scriptId)); clearTimeout(trans.timeoutId); @@ -25732,7 +25732,7 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { delete window[trans.cb]; }catch(e){} }else{ - + window[trans.cb] = function(){ window[trans.cb] = undefined; try{ @@ -25742,12 +25742,12 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { } }, - + handleFailure : function(trans){ this.trans = false; this.destroyTrans(trans, false); if (trans.action === Ext.data.Api.actions.read) { - + this.fireEvent("loadexception", this, null, trans.arg); } @@ -25758,7 +25758,7 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { trans.callback.call(trans.scope||window, null, trans.arg, false); }, - + destroy: function(){ this.abort(); Ext.data.ScriptTagProxy.superclass.destroy.call(this); @@ -25767,18 +25767,18 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { Ext.data.HttpProxy = function(conn){ Ext.data.HttpProxy.superclass.constructor.call(this, conn); - + this.conn = conn; - - - - + + + + this.conn.url = null; this.useAjax = !conn || !conn.events; - + var actions = Ext.data.Api.actions; this.activeRequest = {}; for (var verb in actions) { @@ -25787,12 +25787,12 @@ Ext.data.HttpProxy = function(conn){ }; Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { - + getConnection : function() { return this.useAjax ? Ext.Ajax : this.conn; }, - + setUrl : function(url, makePermanent) { this.conn.url = url; if (makePermanent === true) { @@ -25802,7 +25802,7 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { } }, - + doRequest : function(action, rs, params, reader, cb, scope, arg) { var o = { method: (this.api[action]) ? this.api[action]['method'] : undefined, @@ -25816,8 +25816,8 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { scope: this }; - - + + if (params.jsonData) { o.jsonData = params.jsonData; } else if (params.xmlData) { @@ -25825,16 +25825,16 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { } else { o.params = params || {}; } - - - + + + this.conn.url = this.buildUrl(action, rs); if(this.useAjax){ Ext.applyIf(o, this.conn); - + if (action == Ext.data.Api.actions.read && this.activeRequest[action]) { Ext.Ajax.abort(this.activeRequest[action]); } @@ -25842,18 +25842,18 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { }else{ this.conn.request(o); } - + this.conn.url = null; }, - + createCallback : function(action, rs) { return function(o, success, response) { this.activeRequest[action] = undefined; if (!success) { if (action === Ext.data.Api.actions.read) { - - + + this.fireEvent('loadexception', this, o, response); } this.fireEvent('exception', this, 'response', action, o, response); @@ -25868,14 +25868,14 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { }; }, - + onRead : function(action, o, response) { var result; try { result = o.reader.read(response); }catch(e){ - - + + this.fireEvent('loadexception', this, o, response, e); this.fireEvent('exception', this, 'response', action, o, response, e); @@ -25883,23 +25883,23 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { return; } if (result.success === false) { - - + + this.fireEvent('loadexception', this, o, response); - + var res = o.reader.readResponse(action, response); this.fireEvent('exception', this, 'remote', action, o, res, null); } else { this.fireEvent('load', this, o, o.request.arg); } - - - + + + o.request.callback.call(o.request.scope, result, o.request.arg, result.success); }, - + onWrite : function(action, o, response, rs) { var reader = o.reader; var res; @@ -25915,13 +25915,13 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { } else { this.fireEvent('exception', this, 'remote', action, o, res, rs); } - - - + + + o.request.callback.call(o.request.scope, res.data, res, res.success); }, - + destroy: function(){ if(!this.useAjax){ this.conn.abort(); @@ -25937,7 +25937,7 @@ Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, { } }); Ext.data.MemoryProxy = function(data){ - + var api = {}; api[Ext.data.Api.actions.read] = true; Ext.data.MemoryProxy.superclass.constructor.call(this, { @@ -25947,17 +25947,17 @@ Ext.data.MemoryProxy = function(data){ }; Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { - - + + doRequest : function(action, rs, params, reader, callback, scope, arg) { - + params = params || {}; var result; try { result = reader.readRecords(this.data); }catch(e){ - + this.fireEvent("loadexception", this, null, arg, e); this.fireEvent('exception', this, 'response', action, arg, null, e); @@ -25970,24 +25970,24 @@ Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, { Ext.data.Types = new function(){ var st = Ext.data.SortTypes; Ext.apply(this, { - + stripRe: /[\$,%]/g, - - + + AUTO: { convert: function(v){ return v; }, sortType: st.none, type: 'auto' }, - + STRING: { convert: function(v){ return (v === undefined || v === null) ? '' : String(v); }, sortType: st.asUCString, type: 'string' }, - + INT: { convert: function(v){ return v !== undefined && v !== null && v !== '' ? @@ -25996,8 +25996,8 @@ Ext.data.Types = new function(){ sortType: st.none, type: 'int' }, - - + + FLOAT: { convert: function(v){ return v !== undefined && v !== null && v !== '' ? @@ -26006,15 +26006,15 @@ Ext.data.Types = new function(){ sortType: st.none, type: 'float' }, - - + + BOOL: { convert: function(v){ return v === true || v === 'true' || v == 1; }, sortType: st.none, type: 'bool' }, - - + + DATE: { convert: function(v){ var df = this.dateFormat; @@ -26040,49 +26040,49 @@ Ext.data.Types = new function(){ type: 'date' } }); - + Ext.apply(this, { - + BOOLEAN: this.BOOL, - + INTEGER: this.INT, - - NUMBER: this.FLOAT + + NUMBER: this.FLOAT }); }; Ext.data.JsonWriter = Ext.extend(Ext.data.DataWriter, { - + encode : true, - + encodeDelete: false, - + constructor : function(config){ - Ext.data.JsonWriter.superclass.constructor.call(this, config); + Ext.data.JsonWriter.superclass.constructor.call(this, config); }, - + render : function(params, baseParams, data) { if (this.encode === true) { - + Ext.apply(params, baseParams); params[this.meta.root] = Ext.encode(data); } else { - + var jdata = Ext.apply({}, baseParams); jdata[this.meta.root] = data; params.jsonData = jdata; } }, - + createRecord : function(rec) { return this.toHash(rec); }, - + updateRecord : function(rec) { return this.toHash(rec); }, - + destroyRecord : function(rec){ if(this.encodeDelete){ var data = {}; @@ -26095,10 +26095,10 @@ Ext.data.JsonWriter = Ext.extend(Ext.data.DataWriter, { }); Ext.data.JsonReader = function(meta, recordType){ meta = meta || {}; - - - - + + + + Ext.applyIf(meta, { idProperty: 'id', successProperty: 'success', @@ -26108,8 +26108,8 @@ Ext.data.JsonReader = function(meta, recordType){ Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields); }; Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { - - + + read : function(response){ var json = response.responseText; var o = Ext.decode(json); @@ -26119,8 +26119,8 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { return this.readRecords(o); }, - - + + readResponse : function(action, response) { var o = (response.responseText !== undefined) ? Ext.decode(response.responseText) : response; if(!o) { @@ -26139,7 +26139,7 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { } } - + var res = new Ext.data.Response({ action: action, success: success, @@ -26148,16 +26148,16 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { raw: o }); - + if (Ext.isEmpty(res.success)) { throw new Ext.data.JsonReader.Error('successProperty-response', this.meta.successProperty); } return res; }, - + readRecords : function(o){ - + this.jsonData = o; if(o.metaData){ this.onMetaChange(o.metaData); @@ -26179,15 +26179,15 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { } } - + return { success : success, - records : this.extractData(root, true), + records : this.extractData(root, true), totalRecords : totalRecords }; }, - + buildExtractors : function() { if(this.ef){ return; @@ -26223,12 +26223,12 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { this.ef = ef; }, - + simpleAccess : function(obj, subsc) { return obj[subsc]; }, - + createAccessor : function(){ var re = /[\[\.]/; return function(expr) { @@ -26249,7 +26249,7 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { }; }(), - + extractValues : function(data, items, len) { var f, values = {}; for(var j = 0; j < len; j++){ @@ -26280,10 +26280,10 @@ Ext.apply(Ext.data.JsonReader.Error.prototype, { }); Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, { - - - - + + + + readRecords : function(o){ this.arrayData = o; var s = this.meta, @@ -26335,7 +26335,7 @@ Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, { } }); Ext.data.ArrayStore = Ext.extend(Ext.data.Store, { - + constructor: function(config){ Ext.data.ArrayStore.superclass.constructor.call(this, Ext.apply(config, { reader: new Ext.data.ArrayReader(config) @@ -26359,7 +26359,7 @@ Ext.reg('arraystore', Ext.data.ArrayStore); Ext.data.SimpleStore = Ext.data.ArrayStore; Ext.reg('simplestore', Ext.data.SimpleStore); Ext.data.JsonStore = Ext.extend(Ext.data.Store, { - + constructor: function(config){ Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(config, { reader: new Ext.data.JsonReader(config) @@ -26369,26 +26369,26 @@ Ext.data.JsonStore = Ext.extend(Ext.data.Store, { Ext.reg('jsonstore', Ext.data.JsonStore); Ext.data.XmlWriter = function(params) { Ext.data.XmlWriter.superclass.constructor.apply(this, arguments); - + this.tpl = (typeof(this.tpl) === 'string') ? new Ext.XTemplate(this.tpl).compile() : this.tpl.compile(); }; Ext.extend(Ext.data.XmlWriter, Ext.data.DataWriter, { - + documentRoot: 'xrequest', - + forceDocumentRoot: false, - + root: 'records', - + xmlVersion : '1.0', - + xmlEncoding: 'ISO-8859-15', - - + + tpl: '<\u003fxml version="{version}" encoding="{encoding}"\u003f><{documentRoot}><{name}>{value}<{root}><{parent.record}><{name}>{value}', - + render : function(params, baseParams, data) { baseParams = this.toArray(baseParams); params.xmlData = this.tpl.applyTemplate({ @@ -26402,17 +26402,17 @@ Ext.extend(Ext.data.XmlWriter, Ext.data.DataWriter, { }); }, - + createRecord : function(rec) { return this.toArray(this.toHash(rec)); }, - + updateRecord : function(rec) { return this.toArray(this.toHash(rec)); }, - + destroyRecord : function(rec) { var data = {}; data[this.meta.idProperty] = rec.id; @@ -26423,7 +26423,7 @@ Ext.extend(Ext.data.XmlWriter, Ext.data.DataWriter, { Ext.data.XmlReader = function(meta, recordType){ meta = meta || {}; - + Ext.applyIf(meta, { idProperty: meta.idProperty || meta.idPath || meta.id, successProperty: meta.successProperty || meta.success @@ -26432,7 +26432,7 @@ Ext.data.XmlReader = function(meta, recordType){ Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType || meta.fields); }; Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { - + read : function(response){ var doc = response.responseXML; if(!doc) { @@ -26441,9 +26441,9 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { return this.readRecords(doc); }, - + readRecords : function(doc){ - + this.xmlData = doc; var root = doc.documentElement || doc, @@ -26458,9 +26458,9 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { success = this.getSuccess(root); } - var records = this.extractData(q.select(this.meta.record, root), true); + var records = this.extractData(q.select(this.meta.record, root), true); + - return { success : success, records : records, @@ -26468,13 +26468,13 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { }; }, - + readResponse : function(action, response) { var q = Ext.DomQuery, doc = response.responseXML, root = doc.documentElement || doc; - + var res = new Ext.data.Response({ action: action, success : this.getSuccess(root), @@ -26487,7 +26487,7 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { throw new Ext.data.DataReader.Error('successProperty-response', this.meta.successProperty); } - + if (action === Ext.data.Api.actions.create) { var def = Ext.isDefined(res.data); if (def && Ext.isEmpty(res.data)) { @@ -26504,7 +26504,7 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { return true; }, - + buildExtractors : function() { if(this.ef){ return; @@ -26545,7 +26545,7 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { this.ef = ef; }, - + createAccessor : function(){ var q = Ext.DomQuery; return function(key) { @@ -26574,7 +26574,7 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { }; }(), - + extractValues : function(data, items, len) { var f, values = {}; for(var j = 0; j < len; j++){ @@ -26586,7 +26586,7 @@ Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, { } }); Ext.data.XmlStore = Ext.extend(Ext.data.Store, { - + constructor: function(config){ Ext.data.XmlStore.superclass.constructor.call(this, Ext.apply(config, { reader: new Ext.data.XmlReader(config) @@ -26596,14 +26596,14 @@ Ext.data.XmlStore = Ext.extend(Ext.data.Store, { Ext.reg('xmlstore', Ext.data.XmlStore); Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { - + constructor: function(config) { config = config || {}; - - - - + + + + this.hasMultiSort = true; this.multiSortInfo = this.multiSortInfo || {sorters: []}; @@ -26612,7 +26612,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { sortInfo = config.sortInfo || this.sortInfo, groupDir = config.groupDir || this.groupDir; - + if(groupField){ sorters.push({ field : groupField, @@ -26620,7 +26620,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { }); } - + if (sortInfo) { sorters.push(sortInfo); } @@ -26628,23 +26628,23 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { Ext.data.GroupingStore.superclass.constructor.call(this, config); this.addEvents( - + 'groupchange' ); this.applyGroupField(); }, - - + + remoteGroup : false, - + groupOnSort:false, - + groupDir : 'ASC', - + clearGrouping : function(){ this.groupField = false; @@ -26666,16 +26666,16 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { } }, - + groupBy : function(field, forceRegroup, direction) { direction = direction ? (String(direction).toUpperCase() == 'DESC' ? 'DESC' : 'ASC') : this.groupDir; if (this.groupField == field && this.groupDir == direction && !forceRegroup) { - return; + return; } - - + + var sorters = this.multiSortInfo.sorters; if (sorters.length > 0 && sorters[0].field == this.groupField) { sorters.shift(); @@ -26704,8 +26704,8 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { } }, - - + + sort : function(fieldName, dir) { if (this.remoteSort) { return Ext.data.GroupingStore.superclass.sort.call(this, fieldName, dir); @@ -26713,16 +26713,16 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { var sorters = []; - + if (Ext.isArray(arguments[0])) { sorters = arguments[0]; } else if (fieldName == undefined) { - - + + sorters = this.sortInfo ? [this.sortInfo] : []; } else { - - + + var field = this.fields.get(fieldName); if (!field) return false; @@ -26731,7 +26731,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { sortToggle = this.sortToggle ? this.sortToggle[name] : null; if (!dir) { - if (sortInfo && sortInfo.field == name) { + if (sortInfo && sortInfo.field == name) { dir = (this.sortToggle[name] || 'ASC').toggle('ASC', 'DESC'); } else { dir = field.sortDir; @@ -26744,7 +26744,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { sorters = [this.sortInfo]; } - + if (this.groupField) { sorters.unshift({direction: this.groupDir, field: this.groupField}); } @@ -26752,7 +26752,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { return this.multiSort.call(this, sorters, dir); }, - + applyGroupField: function(){ if (this.remoteGroup) { if(!this.baseParams){ @@ -26768,13 +26768,13 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { if (lo && lo.params) { lo.params.groupDir = this.groupDir; - + delete lo.params.groupBy; } } }, - + applyGrouping : function(alwaysFireChange){ if(this.groupField !== false){ this.groupBy(this.groupField, true, this.groupDir); @@ -26787,7 +26787,7 @@ Ext.data.GroupingStore = Ext.extend(Ext.data.Store, { } }, - + getGroupState : function(){ return this.groupOnSort && this.groupField !== false ? (this.sortInfo ? this.sortInfo.field : undefined) : this.groupField; @@ -26804,26 +26804,26 @@ Ext.data.DirectProxy = function(config){ }; Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { - + paramOrder: undefined, - + paramsAsHash: true, - + directFn : undefined, - + doRequest : function(action, rs, params, reader, callback, scope, options) { var args = [], directFn = this.api[action] || this.directFn; switch (action) { case Ext.data.Api.actions.create: - args.push(params.jsonData); + args.push(params.jsonData); break; case Ext.data.Api.actions.read: - + if(directFn.directCfg.method.len > 0){ if(this.paramOrder){ for(var i = 0, len = this.paramOrder.length; i < len; i++){ @@ -26835,10 +26835,10 @@ Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { } break; case Ext.data.Api.actions.update: - args.push(params.jsonData); + args.push(params.jsonData); break; case Ext.data.Api.actions.destroy: - args.push(params.jsonData); + args.push(params.jsonData); break; } @@ -26856,12 +26856,12 @@ Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { directFn.apply(window, args); }, - + createCallback : function(action, rs, trans) { var me = this; return function(result, res) { if (!res.status) { - + if (action === Ext.data.Api.actions.read) { me.fireEvent("loadexception", me, trans, res, null); } @@ -26877,14 +26877,14 @@ Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { }; }, - + onRead : function(action, trans, result, res) { var records; try { records = trans.reader.readRecords(result); } catch (ex) { - + this.fireEvent("loadexception", this, trans, res, ex); this.fireEvent('exception', this, 'response', action, trans, res, ex); @@ -26894,7 +26894,7 @@ Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { this.fireEvent("load", this, res, trans.request.arg); trans.request.callback.call(trans.request.scope, records, trans.request.arg, true); }, - + onWrite : function(action, trans, result, res, rs) { var data = trans.reader.extractData(trans.reader.getRoot(result), false); var success = trans.reader.getSuccess(result); @@ -26910,7 +26910,7 @@ Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, { Ext.data.DirectStore = Ext.extend(Ext.data.Store, { constructor : function(config){ - + var c = Ext.apply({}, { batchTransactions: false }, config); @@ -26923,9 +26923,9 @@ Ext.data.DirectStore = Ext.extend(Ext.data.Store, { Ext.reg('directstore', Ext.data.DirectStore); Ext.Direct = Ext.extend(Ext.util.Observable, { - - + + exceptions: { TRANSPORT: 'xhr', PARSE: 'parse', @@ -26933,19 +26933,19 @@ Ext.Direct = Ext.extend(Ext.util.Observable, { SERVER: 'exception' }, - + constructor: function(){ this.addEvents( - + 'event', - + 'exception' ); this.transactions = {}; this.providers = {}; }, - + addProvider : function(provider){ var a = arguments; if(a.length > 1){ @@ -26955,7 +26955,7 @@ Ext.Direct = Ext.extend(Ext.util.Observable, { return; } - + if(!provider.events){ provider = new Ext.Direct.PROVIDERS[provider.type](provider); } @@ -26973,7 +26973,7 @@ Ext.Direct = Ext.extend(Ext.util.Observable, { return provider; }, - + getProvider : function(id){ return this.providers[id]; }, @@ -27071,39 +27071,39 @@ Ext.Direct.eventTypes = { 'exception': Ext.Direct.ExceptionEvent }; -Ext.direct.Provider = Ext.extend(Ext.util.Observable, { - - - +Ext.direct.Provider = Ext.extend(Ext.util.Observable, { + + + priority: 1, - - - + + + constructor : function(config){ Ext.apply(this, config); this.addEvents( - + 'connect', - + 'disconnect', - + 'data', - + 'exception' ); Ext.direct.Provider.superclass.constructor.call(this, config); }, - + isConnected: function(){ return false; }, - + connect: Ext.emptyFn, - - + + disconnect: Ext.emptyFn }); @@ -27143,34 +27143,34 @@ Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, { } }); Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, { - - + + priority: 3, - + interval: 3000, - - - + + + constructor : function(config){ Ext.direct.PollingProvider.superclass.constructor.call(this, config); this.addEvents( - + 'beforepoll', - + 'poll' ); }, - + isConnected: function(){ return !!this.pollTask; }, - + connect: function(){ if(this.url && !this.pollTask){ this.pollTask = Ext.TaskMgr.start({ @@ -27197,7 +27197,7 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, { } }, - + disconnect: function(){ if(this.pollTask){ Ext.TaskMgr.stop(this.pollTask); @@ -27206,7 +27206,7 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, { } }, - + onData: function(opt, success, xhr){ if(success){ var events = this.getEvents(xhr); @@ -27227,30 +27227,30 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, { }); Ext.Direct.PROVIDERS['polling'] = Ext.direct.PollingProvider; -Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { - - - - - - - - - +Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { + + + + + + + + + enableBuffer: 10, - - + + maxRetries: 1, - - + + timeout: undefined, constructor : function(config){ Ext.direct.RemotingProvider.superclass.constructor.call(this, config); this.addEvents( - - 'beforecall', - + + 'beforecall', + 'call' ); this.namespace = (Ext.isString(this.namespace)) ? Ext.ns(this.namespace) : this.namespace || window; @@ -27258,7 +27258,7 @@ Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { this.callBuffer = []; }, - + initAPI : function(){ var o = this.actions; for(var c in o){ @@ -27271,7 +27271,7 @@ Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { } }, - + isConnected: function(){ return !!this.connected; }, @@ -27434,9 +27434,9 @@ Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { extType: 'rpc', extUpload: String(isUpload) }; - - - + + + Ext.apply(t, { form: Ext.getDom(form), isUpload: isUpload, @@ -27446,7 +27446,7 @@ Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, { this.processForm(t); } }, - + processForm: function(t){ Ext.Ajax.request({ url: this.url, @@ -27516,7 +27516,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } } - + this.proxy = this.el.createProxy({tag: 'div', cls: 'x-resizable-proxy', id: this.el.id + '-rzproxy'}, Ext.getBody()); this.proxy.unselectable(); this.proxy.enableDisplayMode('block'); @@ -27527,12 +27527,12 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { this.disableTrackOver = true; this.el.addClass('x-resizable-pinned'); } - + var position = this.el.getStyle('position'); if(position != 'absolute' && position != 'fixed'){ this.el.setStyle('position', 'relative'); } - if(!this.handles){ + if(!this.handles){ this.handles = 's,e,se'; if(this.multiDirectional){ this.handles += ',n,w'; @@ -27549,7 +27549,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent, this.handleCls); } } - + this.corner = this.southeast; if(this.handles.indexOf('n') != -1 || this.handles.indexOf('w') != -1){ @@ -27590,9 +27590,9 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } this.addEvents( - + 'beforeresize', - + 'resize' ); @@ -27607,72 +27607,72 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { Ext.Resizable.superclass.constructor.call(this); }, - + adjustments : [0, 0], - + animate : false, - - + + disableTrackOver : false, - + draggable: false, - + duration : 0.35, - + dynamic : false, - + easing : 'easeOutStrong', - + enabled : true, - - + + handles : false, - + multiDirectional : false, - + height : null, - + width : null, - + heightIncrement : 0, - + widthIncrement : 0, - + minHeight : 5, - + minWidth : 5, - + maxHeight : 10000, - + maxWidth : 10000, - + minX: 0, - + minY: 0, - + pinned : false, - + preserveRatio : false, - + resizeChild : false, - + transparent: false, - - - - + + + + resizeTo : function(width, height){ this.el.setSize(width, height); this.updateChildSize(); this.fireEvent('resize', this, width, height, null); }, - + startSizing : function(e, handle){ this.fireEvent('beforeresize', this, e); - if(this.enabled){ + if(this.enabled){ if(!this.overlay){ this.overlay = this.el.createProxy({tag: 'div', cls: 'x-resizable-overlay', html: ' '}, Ext.getBody()); @@ -27705,7 +27705,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { ); } - this.proxy.setStyle('visibility', 'hidden'); + this.proxy.setStyle('visibility', 'hidden'); this.proxy.show(); this.proxy.setBox(this.startBox); if(!this.dynamic){ @@ -27714,7 +27714,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } }, - + onMouseDown : function(handle, e){ if(this.enabled){ e.stopEvent(); @@ -27723,7 +27723,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } }, - + onMouseUp : function(e){ this.activeHandle = null; var size = this.resizeElement(); @@ -27734,7 +27734,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { this.fireEvent('resize', this, size.width, size.height, e); }, - + updateChildSize : function(){ if(this.resizeChild){ var el = this.el; @@ -27744,10 +27744,10 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { var b = el.getSize(true); child.setSize(b.width+adj[0], b.height+adj[1]); } - - - - + + + + if(Ext.isIE9m){ setTimeout(function(){ if(el.dom.offsetWidth){ @@ -27759,7 +27759,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } }, - + snap : function(value, inc, min){ if(!inc || !value){ return value; @@ -27776,7 +27776,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { return Math.max(min, newValue); }, - + resizeElement : function(){ var box = this.proxy.getBox(); if(this.updateBox){ @@ -27795,7 +27795,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { return box; }, - + constrain : function(v, diff, m, mx){ if(v - diff < m){ diff = v - m; @@ -27805,7 +27805,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { return diff; }, - + onMouseMove : function(e){ if(this.enabled && this.activeHandle){ try{ @@ -27814,7 +27814,7 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { return; } - + var curSize = this.curSize || this.startBox, x = this.startBox.x, y = this.startBox.y, ox = x, @@ -27971,31 +27971,31 @@ Ext.Resizable = Ext.extend(Ext.util.Observable, { } }, - + handleOver : function(){ if(this.enabled){ this.el.addClass('x-resizable-over'); } }, - + handleOut : function(){ if(!this.resizing){ this.el.removeClass('x-resizable-over'); } }, - + getEl : function(){ return this.el; }, - + getResizeChild : function(){ return this.resizeChild; }, - + destroy : function(removeEl){ Ext.destroy(this.dd, this.overlay, this.proxy); this.overlay = null; @@ -28035,7 +28035,7 @@ Ext.Resizable.positions = { Ext.Resizable.Handle = Ext.extend(Object, { constructor : function(rz, pos, disableTrackOver, transparent, cls){ if(!this.tpl){ - + var tpl = Ext.DomHelper.createTemplate( {tag: 'div', cls: 'x-resizable-handle x-resizable-handle-{0}'} ); @@ -28062,23 +28062,23 @@ Ext.Resizable.Handle = Ext.extend(Object, { } }, - + afterResize : function(rz){ - + }, - + onMouseDown : function(e){ this.rz.onMouseDown(this, e); }, - + onMouseOver : function(e){ this.rz.handleOver(this, e); }, - + onMouseOut : function(e){ this.rz.handleOut(this, e); }, - + destroy : function(){ Ext.destroy(this.el); this.el = null; @@ -28086,87 +28086,87 @@ Ext.Resizable.Handle = Ext.extend(Object, { }); Ext.Window = Ext.extend(Ext.Panel, { - - - - - - - - - - - - + + + + + + + + + + + + baseCls : 'x-window', - + resizable : true, - + draggable : true, - + closable : true, - + closeAction : 'close', - + constrain : false, - + constrainHeader : false, - + plain : false, - + minimizable : false, - + maximizable : false, - + minHeight : 100, - + minWidth : 200, - + expandOnShow : true, - - + + showAnimDuration: 0.25, - - + + hideAnimDuration: 0.25, - + collapsible : false, - + initHidden : undefined, - + hidden : true, - - - - - + + + + + elements : 'header,body', - + frame : true, - + floating : true, - + initComponent : function(){ this.initTools(); Ext.Window.superclass.initComponent.call(this); this.addEvents( - - - + + + 'resize', - + 'maximize', - + 'minimize', - + 'restore' ); - + if(Ext.isDefined(this.initHidden)){ this.hidden = this.initHidden; } @@ -28176,12 +28176,12 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + getState : function(){ return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox(true)); }, - + onRender : function(ct, position){ Ext.Window.superclass.onRender.call(this, ct, position); @@ -28189,7 +28189,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this.el.addClass('x-window-plain'); } - + this.focusEl = this.el.createChild({ tag: 'a', href:'#', cls:'x-dlg-focus', tabIndex:'-1', html: ' '}); @@ -28209,7 +28209,7 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + initEvents : function(){ Ext.Window.superclass.initEvents.call(this); if(this.animateTarget){ @@ -28247,11 +28247,11 @@ Ext.Window = Ext.extend(Ext.Panel, { }, initDraggable : function(){ - + this.dd = new Ext.Window.DD(this); }, - + onEsc : function(k, e){ if (this.activeGhost) { this.unghost(); @@ -28260,7 +28260,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this[this.closeAction](); }, - + beforeDestroy : function(){ if(this.rendered){ this.hide(); @@ -28276,7 +28276,7 @@ Ext.Window = Ext.extend(Ext.Panel, { Ext.Window.superclass.beforeDestroy.call(this); }, - + onDestroy : function(){ if(this.manager){ this.manager.unregister(this); @@ -28284,7 +28284,7 @@ Ext.Window = Ext.extend(Ext.Panel, { Ext.Window.superclass.onDestroy.call(this); }, - + initTools : function(){ if(this.minimizable){ this.addTool({ @@ -28311,7 +28311,7 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + resizerAction : function(){ var box = this.proxy.getBox(); this.proxy.hide(); @@ -28319,14 +28319,14 @@ Ext.Window = Ext.extend(Ext.Panel, { return box; }, - + beforeResize : function(){ - this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); + this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); this.resizer.minWidth = Math.max(this.minWidth, this.getFrameWidth() + 40); this.resizeBox = this.el.getBox(); }, - + updateHandles : function(){ if(Ext.isIE9m && this.resizer){ this.resizer.syncHandleHeight(); @@ -28334,7 +28334,7 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + handleResize : function(box){ var rz = this.resizeBox; if(rz.x != box.x || rz.y != box.y){ @@ -28350,7 +28350,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this.saveState(); }, - + focus : function(){ var f = this.focusEl, db = this.defaultButton, @@ -28377,13 +28377,13 @@ Ext.Window = Ext.extend(Ext.Panel, { f.focus.defer(10, f); }, - + setAnimateTarget : function(el){ el = Ext.get(el); this.animateTarget = el; }, - + beforeShow : function(){ delete this.el.lastXY; delete this.el.lastLT; @@ -28406,7 +28406,7 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + show : function(animateTarget, cb, scope){ if(!this.rendered){ this.render(Ext.getBody()); @@ -28434,7 +28434,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + afterShow : function(isAnim){ if (this.isDestroyed){ return false; @@ -28445,7 +28445,7 @@ Ext.Window = Ext.extend(Ext.Panel, { if(this.maximized){ this.fitContainer(); } - if(Ext.isMac && Ext.isGecko2){ + if(Ext.isMac && Ext.isGecko2){ this.cascade(this.setAutoScroll); } @@ -28467,7 +28467,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this.fireEvent('show', this); }, - + animShow : function(){ this.proxy.show(); this.proxy.setBox(this.animateTarget.getBox()); @@ -28483,7 +28483,7 @@ Ext.Window = Ext.extend(Ext.Panel, { })); }, - + hide : function(animateTarget, cb, scope){ if(this.hidden || this.fireEvent('beforehide', this) === false){ return this; @@ -28508,7 +28508,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + afterHide : function(){ this.proxy.hide(); if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){ @@ -28521,7 +28521,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this.fireEvent('hide', this); }, - + animHide : function(){ this.proxy.setOpacity(0.5); this.proxy.show(); @@ -28537,13 +28537,13 @@ Ext.Window = Ext.extend(Ext.Panel, { })); }, - + onShow : Ext.emptyFn, - + onHide : Ext.emptyFn, - + onWindowResize : function(){ if(this.maximized){ this.fitContainer(); @@ -28556,7 +28556,7 @@ Ext.Window = Ext.extend(Ext.Panel, { this.doConstrain(); }, - + doConstrain : function(){ if(this.constrain || this.constrainHeader){ var offsets; @@ -28581,7 +28581,7 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + ghost : function(cls){ var ghost = this.createGhost(cls); var box = this.getBox(true); @@ -28592,7 +28592,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return ghost; }, - + unghost : function(show, matchPosition){ if(!this.activeGhost) { return; @@ -28600,7 +28600,7 @@ Ext.Window = Ext.extend(Ext.Panel, { if(show !== false){ this.el.show(); this.focus.defer(10, this); - if(Ext.isMac && Ext.isGecko2){ + if(Ext.isMac && Ext.isGecko2){ this.cascade(this.setAutoScroll); } } @@ -28612,13 +28612,13 @@ Ext.Window = Ext.extend(Ext.Panel, { delete this.activeGhost; }, - + minimize : function(){ this.fireEvent('minimize', this); return this; }, - + close : function(){ if(this.fireEvent('beforeclose', this) !== false){ if(this.hidden){ @@ -28629,13 +28629,13 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + doClose : function(){ this.fireEvent('close', this); this.destroy(); }, - + maximize : function(){ if(!this.maximized){ this.expand(false); @@ -28664,7 +28664,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + restore : function(){ if(this.maximized){ var t = this.tools; @@ -28696,19 +28696,19 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + toggleMaximize : function(){ return this[this.maximized ? 'restore' : 'maximize'](); }, - + fitContainer : function(){ var vs = this.container.getViewSize(false); this.setSize(vs.width, vs.height); }, - - + + setZIndex : function(index){ if(this.modal){ this.mask.setStyle('z-index', index); @@ -28723,14 +28723,14 @@ Ext.Window = Ext.extend(Ext.Panel, { this.lastZIndex = index; }, - + alignTo : function(element, position, offsets){ var xy = this.el.getAlignToXY(element, position, offsets); this.setPagePosition(xy[0], xy[1]); return this; }, - + anchorTo : function(el, alignment, offsets, monitorScroll){ this.clearAnchor(); this.anchorTarget = { @@ -28748,14 +28748,14 @@ Ext.Window = Ext.extend(Ext.Panel, { return this.doAnchor(); }, - + doAnchor : function(){ var o = this.anchorTarget; this.alignTo(o.el, o.alignment, o.offsets); return this; }, - + clearAnchor : function(){ if(this.anchorTarget){ Ext.EventManager.removeResizeListener(this.doAnchor, this); @@ -28765,7 +28765,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + toFront : function(e){ if(this.manager.bringToFront(this)){ if(!e || !e.getTarget().focus){ @@ -28775,7 +28775,7 @@ Ext.Window = Ext.extend(Ext.Panel, { return this; }, - + setActive : function(active){ if(active){ if(!this.maximized){ @@ -28788,33 +28788,33 @@ Ext.Window = Ext.extend(Ext.Panel, { } }, - + toBack : function(){ this.manager.sendToBack(this); return this; }, - + center : function(){ var xy = this.el.getAlignToXY(this.container, 'c-c'); this.setPagePosition(xy[0], xy[1]); return this; } - + }); Ext.reg('window', Ext.Window); Ext.Window.DD = Ext.extend(Ext.dd.DD, { - + constructor : function(win){ this.win = win; Ext.Window.DD.superclass.constructor.call(this, win.el.id, 'WindowDD-'+win.id); this.setHandleElId(win.header.id); - this.scroll = false; + this.scroll = false; }, - + moveOnly:true, headerOffsets:[100, 25], startDrag : function(){ @@ -28845,12 +28845,12 @@ Ext.WindowGroup = function(){ var accessList = []; var front = null; - + var sortWindows = function(d1, d2){ return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1; }; - + var orderWindows = function(){ var a = accessList, len = a.length; if(len > 0){ @@ -28866,7 +28866,7 @@ Ext.WindowGroup = function(){ activateLast(); }; - + var setActiveWin = function(win){ if(win != front){ if(front){ @@ -28879,7 +28879,7 @@ Ext.WindowGroup = function(){ } }; - + var activateLast = function(){ for(var i = accessList.length-1; i >=0; --i) { if(!accessList[i].hidden){ @@ -28887,15 +28887,15 @@ Ext.WindowGroup = function(){ return; } } - + setActiveWin(null); }; return { - + zseed : 9000, - + register : function(win){ if(win.manager){ win.manager.unregister(win); @@ -28907,7 +28907,7 @@ Ext.WindowGroup = function(){ win.on('hide', activateLast); }, - + unregister : function(win){ delete win.manager; delete list[win.id]; @@ -28915,12 +28915,12 @@ Ext.WindowGroup = function(){ accessList.remove(win); }, - + get : function(id){ return typeof id == "object" ? id : list[id]; }, - + bringToFront : function(win){ win = this.get(win); if(win != front){ @@ -28931,7 +28931,7 @@ Ext.WindowGroup = function(){ return false; }, - + sendToBack : function(win){ win = this.get(win); win._lastAccess = -(new Date().getTime()); @@ -28939,7 +28939,7 @@ Ext.WindowGroup = function(){ return win; }, - + hideAll : function(){ for(var id in list){ if(list[id] && typeof list[id] != "function" && list[id].isVisible()){ @@ -28948,12 +28948,12 @@ Ext.WindowGroup = function(){ } }, - + getActive : function(){ return front; }, - + getBy : function(fn, scope){ var r = []; for(var i = accessList.length-1; i >=0; --i) { @@ -28965,7 +28965,7 @@ Ext.WindowGroup = function(){ return r; }, - + each : function(fn, scope){ for(var id in list){ if(list[id] && typeof list[id] != "function"){ @@ -28987,7 +28987,7 @@ Ext.MessageBox = function(){ buttons, activeTextEl, bwidth, bufferIcon = '', iconCls = '', buttonNames = ['ok', 'yes', 'no', 'cancel']; - + var handleButton = function(button){ buttons[button].blur(); if(dlg.isVisible()){ @@ -28997,15 +28997,15 @@ Ext.MessageBox = function(){ } }; - + var handleHide = function(){ if(opt && opt.cls){ dlg.el.removeClass(opt.cls); } - progressBar.reset(); + progressBar.reset(); }; - + var handleEsc = function(d, k, e){ if(opt && opt.closable !== false){ dlg.hide(); @@ -29016,7 +29016,7 @@ Ext.MessageBox = function(){ } }; - + var updateButtons = function(b){ var width = 0, cfg; @@ -29041,11 +29041,11 @@ Ext.MessageBox = function(){ }; return { - + getDialog : function(titleText){ if(!dlg){ var btns = []; - + buttons = {}; Ext.each(buttonNames, function(name){ btns.push(buttons[name] = new Ext.Button({ @@ -29114,12 +29114,12 @@ Ext.MessageBox = function(){ return dlg; }, - + updateText : function(text){ if(!dlg.isVisible() && !opt.width){ - dlg.setSize(this.maxWidth, 100); + dlg.setSize(this.maxWidth, 100); } - + msgEl.update(text ? text + ' ' : ' '); var iw = iconCls != '' ? (iconEl.getWidth() + iconEl.getMargins('lr')) : 0, @@ -29127,7 +29127,7 @@ Ext.MessageBox = function(){ fw = dlg.getFrameWidth('lr'), bw = dlg.body.getFrameWidth('lr'), w; - + w = Math.max(Math.min(opt.width || iw+mw+fw+bw, opt.maxWidth || this.maxWidth), Math.max(opt.minWidth || this.minWidth, bwidth || 0)); @@ -29138,14 +29138,14 @@ Ext.MessageBox = function(){ progressBar.setSize(w-iw-fw-bw); } if(Ext.isIE9m && w == bwidth){ - w += 4; + w += 4; } msgEl.update(text || ' '); dlg.setSize(w, 'auto').center(); return this; }, - + updateProgress : function(value, progressText, msg){ progressBar.updateProgress(value, progressText); if(msg){ @@ -29154,27 +29154,27 @@ Ext.MessageBox = function(){ return this; }, - + isVisible : function(){ return dlg && dlg.isVisible(); }, - + hide : function(){ var proxy = dlg ? dlg.activeGhost : null; if(this.isVisible() || proxy){ dlg.hide(); handleHide(); if (proxy){ - - + + dlg.unghost(false, false); - } + } } return this; }, - + show : function(options){ if(this.isVisible()){ this.hide(); @@ -29231,10 +29231,10 @@ Ext.MessageBox = function(){ d.modal = opt.modal !== false; d.mask = opt.modal !== false ? mask : false; if(!d.isVisible()){ - + document.body.appendChild(dlg.el.dom); d.setAnimateTarget(opt.animEl); - + d.on('show', function(){ if(allowClose === true){ d.keyMap.enable(); @@ -29250,7 +29250,7 @@ Ext.MessageBox = function(){ return this; }, - + setIcon : function(icon){ if(!dlg){ bufferIcon = icon; @@ -29270,7 +29270,7 @@ Ext.MessageBox = function(){ return this; }, - + progress : function(title, msg, progressText){ this.show({ title : title, @@ -29284,7 +29284,7 @@ Ext.MessageBox = function(){ return this; }, - + wait : function(msg, title, config){ this.show({ title : title, @@ -29299,7 +29299,7 @@ Ext.MessageBox = function(){ return this; }, - + alert : function(title, msg, fn, scope){ this.show({ title : title, @@ -29312,7 +29312,7 @@ Ext.MessageBox = function(){ return this; }, - + confirm : function(title, msg, fn, scope){ this.show({ title : title, @@ -29326,7 +29326,7 @@ Ext.MessageBox = function(){ return this; }, - + prompt : function(title, msg, fn, scope, multiline, value){ this.show({ title : title, @@ -29342,36 +29342,36 @@ Ext.MessageBox = function(){ return this; }, - + OK : {ok:true}, - + CANCEL : {cancel:true}, - + OKCANCEL : {ok:true, cancel:true}, - + YESNO : {yes:true, no:true}, - + YESNOCANCEL : {yes:true, no:true, cancel:true}, - + INFO : 'ext-mb-info', - + WARNING : 'ext-mb-warning', - + QUESTION : 'ext-mb-question', - + ERROR : 'ext-mb-error', - + defaultTextHeight : 75, - + maxWidth : 600, - + minWidth : 100, - + minProgressWidth : 250, - + minPromptWidth: 250, - + buttonText : { ok : "OK", cancel : "Cancel", @@ -29384,39 +29384,39 @@ Ext.MessageBox = function(){ Ext.Msg = Ext.MessageBox; Ext.dd.PanelProxy = Ext.extend(Object, { - + constructor : function(panel, config){ this.panel = panel; this.id = this.panel.id +'-ddproxy'; - Ext.apply(this, config); + Ext.apply(this, config); }, - - + + insertProxy : true, - + setStatus : Ext.emptyFn, reset : Ext.emptyFn, update : Ext.emptyFn, stop : Ext.emptyFn, sync: Ext.emptyFn, - + getEl : function(){ return this.ghost; }, - + getGhost : function(){ return this.ghost; }, - + getProxy : function(){ return this.proxy; }, - + hide : function(){ if(this.ghost){ if(this.proxy){ @@ -29429,7 +29429,7 @@ Ext.dd.PanelProxy = Ext.extend(Object, { } }, - + show : function(){ if(!this.ghost){ this.ghost = this.panel.createGhost(this.panel.initialConfig.cls, undefined, Ext.getBody()); @@ -29442,7 +29442,7 @@ Ext.dd.PanelProxy = Ext.extend(Object, { } }, - + repair : function(xy, callback, scope){ this.hide(); if(typeof callback == "function"){ @@ -29450,7 +29450,7 @@ Ext.dd.PanelProxy = Ext.extend(Object, { } }, - + moveProxy : function(parentNode, before){ if(this.proxy){ parentNode.insertBefore(this.proxy.dom, before); @@ -29460,7 +29460,7 @@ Ext.dd.PanelProxy = Ext.extend(Object, { Ext.Panel.DD = Ext.extend(Ext.dd.DragSource, { - + constructor : function(panel, cfg){ this.panel = panel; this.dragData = {panel: panel}; @@ -29473,9 +29473,9 @@ Ext.Panel.DD = Ext.extend(Ext.dd.DragSource, { el = panel.header; } el.setStyle('cursor', 'move'); - this.scroll = false; + this.scroll = false; }, - + showFrame: Ext.emptyFn, startDrag: Ext.emptyFn, b4StartDrag: function(x, y) { @@ -29506,35 +29506,35 @@ Ext.Panel.DD = Ext.extend(Ext.dd.DragSource, { } }); Ext.state.Provider = Ext.extend(Ext.util.Observable, { - + constructor : function(){ - + this.addEvents("statechange"); this.state = {}; Ext.state.Provider.superclass.constructor.call(this); }, - - + + get : function(name, defaultValue){ return typeof this.state[name] == "undefined" ? defaultValue : this.state[name]; }, - + clear : function(name){ delete this.state[name]; this.fireEvent("statechange", this, name, null); }, - + set : function(name, value){ this.state[name] = value; this.fireEvent("statechange", this, name, value); }, - + decodeValue : function(cookie){ - + var re = /^(a|n|d|b|s|o|e)\:(.*)$/, matches = re.exec(unescape(cookie)), all, @@ -29542,7 +29542,7 @@ Ext.state.Provider = Ext.extend(Ext.util.Observable, { v, kv; if(!matches || !matches[1]){ - return; + return; } type = matches[1]; v = matches[2]; @@ -29577,7 +29577,7 @@ Ext.state.Provider = Ext.extend(Ext.util.Observable, { } }, - + encodeValue : function(v){ var enc, flat = '', @@ -29585,7 +29585,7 @@ Ext.state.Provider = Ext.extend(Ext.util.Observable, { len, key; if(v == null){ - return 'e:1'; + return 'e:1'; }else if(typeof v == 'number'){ enc = 'n:' + v; }else if(typeof v == 'boolean'){ @@ -29618,27 +29618,27 @@ Ext.state.Manager = function(){ var provider = new Ext.state.Provider(); return { - + setProvider : function(stateProvider){ provider = stateProvider; }, - + get : function(key, defaultValue){ return provider.get(key, defaultValue); }, - + set : function(key, value){ provider.set(key, value); }, - + clear : function(key){ provider.clear(key); }, - + getProvider : function(){ return provider; } @@ -29646,18 +29646,18 @@ Ext.state.Manager = function(){ }(); Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, { - + constructor : function(config){ Ext.state.CookieProvider.superclass.constructor.call(this); this.path = "/"; - this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); + this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); this.domain = null; this.secure = false; Ext.apply(this, config); this.state = this.readCookies(); }, - - + + set : function(name, value){ if(typeof value == "undefined" || value === null){ this.clear(name); @@ -29667,13 +29667,13 @@ Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, { Ext.state.CookieProvider.superclass.set.call(this, name, value); }, - + clear : function(name){ this.clearCookie(name); Ext.state.CookieProvider.superclass.clear.call(this, name); }, - + readCookies : function(){ var cookies = {}, c = document.cookie + ";", @@ -29691,7 +29691,7 @@ Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, { return cookies; }, - + setCookie : function(name, value){ document.cookie = "ys-"+ name + "=" + this.encodeValue(value) + ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + @@ -29700,7 +29700,7 @@ Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, { ((this.secure == true) ? "; secure" : ""); }, - + clearCookie : function(name){ document.cookie = "ys-" + name + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + ((this.path == null) ? "" : ("; path=" + this.path)) + @@ -29709,31 +29709,31 @@ Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, { } }); Ext.DataView = Ext.extend(Ext.BoxComponent, { - - - - - - - - - + + + + + + + + + selectedClass : "x-view-selected", - + emptyText : "", - + deferEmptyText: true, - + trackOver: false, - - + + blockRefresh: false, - + last: false, - + initComponent : function(){ Ext.DataView.superclass.initComponent.call(this); if(Ext.isString(this.tpl) || Ext.isArray(this.tpl)){ @@ -29741,26 +29741,26 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } this.addEvents( - + "beforeclick", - + "click", - + "mouseenter", - + "mouseleave", - + "containerclick", - + "dblclick", - + "contextmenu", - + "containercontextmenu", - + "selectionchange", - + "beforeselect" ); @@ -29769,7 +29769,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { this.selected = new Ext.CompositeElementLite(); }, - + afterRender : function(){ Ext.DataView.superclass.afterRender.call(this); @@ -29793,12 +29793,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + refresh : function() { this.clearSelections(false, true); var el = this.getTemplateTarget(), records = this.store.getRange(); - + el.update(''); if(records.length < 1){ if(!this.deferEmptyText || this.hasSkippedEmptyText){ @@ -29817,12 +29817,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return this.el; }, - + prepareData : function(data){ return data; }, - + collectData : function(records, startIndex){ var r = [], i = 0, @@ -29833,14 +29833,14 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return r; }, - + bufferRender : function(records, index){ var div = document.createElement('div'); this.tpl.overwrite(div, this.collectData(records, index)); return Ext.query(this.itemSelector, div); }, - + onUpdate : function(ds, record){ var index = this.store.indexOf(record); if(index > -1){ @@ -29857,7 +29857,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + onAdd : function(ds, records, index){ if(this.all.getCount() === 0){ this.refresh(); @@ -29874,7 +29874,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { this.updateIndexes(index); }, - + onRemove : function(ds, record, index){ this.deselect(index); this.all.removeElement(index, true); @@ -29884,12 +29884,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + refreshNode : function(index){ this.onUpdate(this.store, this.store.getAt(index)); }, - + updateIndexes : function(startIndex, endIndex){ var ns = this.all.elements; startIndex = startIndex || 0; @@ -29898,13 +29898,13 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { ns[i].viewIndex = i; } }, - - + + getStore : function(){ return this.store; }, - + bindStore : function(store, initial){ if(!initial && this.store){ if(store !== this.store && this.store.autoDestroy){ @@ -29938,20 +29938,20 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { this.refresh(); } }, - - + + onDataChanged: function() { if (this.blockRefresh !== true) { this.refresh.apply(this, arguments); } }, - + findItemFromChild : function(node){ return Ext.fly(node).findParent(this.itemSelector, this.getTemplateTarget()); }, - + onClick : function(e){ var item = e.getTarget(this.itemSelector, this.getTemplateTarget()), index; @@ -29971,7 +29971,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { this.clearSelections(); }, - + onContextMenu : function(e){ var item = e.getTarget(this.itemSelector, this.getTemplateTarget()); if(item){ @@ -29981,7 +29981,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + onDblClick : function(e){ var item = e.getTarget(this.itemSelector, this.getTemplateTarget()); if(item){ @@ -29989,7 +29989,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + onMouseOver : function(e){ var item = e.getTarget(this.itemSelector, this.getTemplateTarget()); if(item && item !== this.lastItem){ @@ -29999,7 +29999,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + onMouseOut : function(e){ if(this.lastItem){ if(!e.within(this.lastItem, true, true)){ @@ -30010,7 +30010,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + onItemClick : function(item, index, e){ if(this.fireEvent("beforeclick", this, index, item, e) === false){ return false; @@ -30025,7 +30025,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return true; }, - + doSingleSelection : function(item, index, e){ if(e.ctrlKey && this.isSelected(index)){ this.deselect(index); @@ -30034,12 +30034,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + doMultiSelection : function(item, index, e){ if(e.shiftKey && this.last !== false){ var last = this.last; this.selectRange(last, index, e.ctrlKey); - this.last = last; + this.last = last; }else{ if((e.ctrlKey||this.simpleSelect) && this.isSelected(index)){ this.deselect(index); @@ -30049,52 +30049,52 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + getSelectionCount : function(){ return this.selected.getCount(); }, - + getSelectedNodes : function(){ return this.selected.elements; }, - + getSelectedIndexes : function(){ - var indexes = [], + var indexes = [], selected = this.selected.elements, i = 0, len = selected.length; - + for(; i < len; i++){ indexes.push(selected[i].viewIndex); } return indexes; }, - + getSelectedRecords : function(){ return this.getRecords(this.selected.elements); }, - + getRecords : function(nodes){ - var records = [], + var records = [], i = 0, len = nodes.length; - + for(; i < len; i++){ records[records.length] = this.store.getAt(nodes[i].viewIndex); } return records; }, - + getRecord : function(node){ return this.store.getAt(node.viewIndex); }, - + clearSelections : function(suppressEvent, skipUpdate){ if((this.multiSelect || this.singleSelect) && this.selected.getCount() > 0){ if(!skipUpdate){ @@ -30108,12 +30108,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + isSelected : function(node){ return this.selected.contains(this.getNode(node)); }, - + deselect : function(node){ if(this.isSelected(node)){ node = this.getNode(node); @@ -30126,7 +30126,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + select : function(nodeInfo, keepExisting, suppressEvent){ if(Ext.isArray(nodeInfo)){ if(!keepExisting){ @@ -30156,7 +30156,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { } }, - + selectRange : function(start, end, keepExisting){ if(!keepExisting){ this.clearSelections(true); @@ -30164,7 +30164,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { this.select(this.getNodes(start, end), true); }, - + getNode : function(nodeInfo){ if(Ext.isString(nodeInfo)){ return document.getElementById(nodeInfo); @@ -30177,12 +30177,12 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return nodeInfo; }, - + getNodes : function(start, end){ var ns = this.all.elements, nodes = [], i; - + start = start || 0; end = !Ext.isDefined(end) ? Math.max(ns.length - 1, 0) : end; if(start <= end){ @@ -30197,7 +30197,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return nodes; }, - + indexOf : function(node){ node = this.getNode(node); if(Ext.isNumber(node.viewIndex)){ @@ -30206,7 +30206,7 @@ Ext.DataView = Ext.extend(Ext.BoxComponent, { return this.all.indexOf(node); }, - + onBeforeLoad : function(){ if(this.loadingText){ this.clearSelections(false, true); @@ -30229,25 +30229,25 @@ Ext.DataView.prototype.setStore = Ext.DataView.prototype.bindStore; Ext.reg('dataview', Ext.DataView); Ext.list.ListView = Ext.extend(Ext.DataView, { - - - + + + itemSelector: 'dl', - + selectedClass:'x-list-selected', - + overClass:'x-list-over', - - + + scrollOffset : undefined, - + columnResize: true, - - + + columnSort: true, - - + + maxColumnWidth: Ext.isIE9m ? 99 : 100, initComponent : function(){ @@ -30313,7 +30313,7 @@ Ext.list.ListView = Ext.extend(Ext.DataView, { cs = this.columns = columns; - + if(colsWithWidth < len){ var remaining = len - colsWithWidth; if(allocatedWidth < this.maxColumnWidth){ @@ -30349,7 +30349,7 @@ Ext.list.ListView = Ext.extend(Ext.DataView, { return this.innerBody; }, - + collectData : function(){ var rs = Ext.list.ListView.superclass.collectData.apply(this, arguments); return { @@ -30364,13 +30364,13 @@ Ext.list.ListView = Ext.extend(Ext.DataView, { } }, - + onResize : function(w, h){ var body = this.innerBody.dom, header = this.innerHd.dom, scrollWidth = w - Ext.num(this.scrollOffset, Ext.getScrollBarWidth()) + 'px', parentNode; - + if(!body){ return; } @@ -30402,7 +30402,7 @@ Ext.list.ListView = Ext.extend(Ext.DataView, { findHeaderIndex : function(header){ header = header.dom || header; - var parentNode = header.parentNode, + var parentNode = header.parentNode, children = parentNode.parentNode.childNodes, i = 0, c; @@ -30419,7 +30419,7 @@ Ext.list.ListView = Ext.extend(Ext.DataView, { i = 0, columns = this.columns, len = columns.length; - + for(; i < len; i++){ els[i].style.width = (columns[i].width*100) + '%'; } @@ -30431,24 +30431,24 @@ Ext.reg('listview', Ext.list.ListView); Ext.ListView = Ext.list.ListView; Ext.list.Column = Ext.extend(Object, { - + isColumn: true, - - + + align: 'left', - + header: '', - - + + width: null, - + cls: '', - - - - + + + + constructor : function(c){ if(!c.tpl){ c.tpl = new Ext.XTemplate('{' + c.dataIndex + '}'); @@ -30456,7 +30456,7 @@ Ext.list.Column = Ext.extend(Object, { else if(Ext.isString(c.tpl)){ c.tpl = new Ext.XTemplate(c.tpl); } - + Ext.apply(this, c); } }); @@ -30465,11 +30465,11 @@ Ext.reg('lvcolumn', Ext.list.Column); Ext.list.NumberColumn = Ext.extend(Ext.list.Column, { - + format: '0,000.00', - + constructor : function(c) { - c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':number("' + (c.format || this.format) + '")}'); + c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':number("' + (c.format || this.format) + '")}'); Ext.list.NumberColumn.superclass.constructor.call(this, c); } }); @@ -30480,7 +30480,7 @@ Ext.reg('lvnumbercolumn', Ext.list.NumberColumn); Ext.list.DateColumn = Ext.extend(Ext.list.Column, { format: 'm/d/Y', constructor : function(c) { - c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':date("' + (c.format || this.format) + '")}'); + c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':date("' + (c.format || this.format) + '")}'); Ext.list.DateColumn.superclass.constructor.call(this, c); } }); @@ -30488,16 +30488,16 @@ Ext.reg('lvdatecolumn', Ext.list.DateColumn); Ext.list.BooleanColumn = Ext.extend(Ext.list.Column, { - + trueText: 'true', - + falseText: 'false', - + undefinedText: ' ', - + constructor : function(c) { c.tpl = c.tpl || new Ext.XTemplate('{' + c.dataIndex + ':this.format}'); - + var t = this.trueText, f = this.falseText, u = this.undefinedText; c.tpl.format = function(v){ if(v === undefined){ @@ -30508,14 +30508,14 @@ Ext.list.BooleanColumn = Ext.extend(Ext.list.Column, { } return t; }; - + Ext.list.DateColumn.superclass.constructor.call(this, c); } }); Ext.reg('lvbooleancolumn', Ext.list.BooleanColumn); Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { - + minPct: .05, constructor: function(config){ @@ -30569,28 +30569,28 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { }, onStart: function(e){ - + var me = this, view = me.view, dragHeader = me.dragHd, - x = me.tracker.getXY()[0]; - + x = me.tracker.getXY()[0]; + me.proxy = view.el.createChild({cls:'x-list-resizer'}); me.dragX = dragHeader.getX(); me.headerIndex = view.findHeaderIndex(dragHeader); - + me.headersDisabled = view.disableHeaders; view.disableHeaders = true; - + me.proxy.setHeight(view.el.getHeight()); me.proxy.setX(me.dragX); me.proxy.setWidth(x - me.dragX); - + this.setBoundaries(); - + }, - - + + setBoundaries: function(relativeX){ var view = this.view, headerIndex = this.headerIndex, @@ -30603,7 +30603,7 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { minX = minWidth + relativeX, maxX = maxWidth + relativeX, header; - + if (numColumns == 2) { this.minX = minX; this.maxX = maxX; @@ -30612,10 +30612,10 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { this.minX = headers.item(headerIndex).getX() + minWidth; this.maxX = header ? header.getX() - minWidth : maxX; if (headerIndex == 0) { - + this.minX = minX; } else if (headerIndex == numColumns - 2) { - + this.maxX = maxX; } } @@ -30624,12 +30624,12 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { onDrag: function(e){ var me = this, cursorX = me.tracker.getXY()[0].constrain(me.minX, me.maxX); - + me.proxy.setWidth(cursorX - this.dragX); }, onEnd: function(e){ - + var newWidth = this.proxy.getWidth(), index = this.headerIndex, view = this.view, @@ -30645,11 +30645,11 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { headerCol.width = newPercent; otherCol.width = totalPercent - newPercent; - + delete this.dragHd; view.setHdWidths(); view.refresh(); - + setTimeout(function(){ view.disableHeaders = disabled; }, 100); @@ -30659,7 +30659,7 @@ Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, { Ext.ListView.ColumnResizer = Ext.list.ColumnResizer; Ext.list.Sorter = Ext.extend(Ext.util.Observable, { - + sortClasses : ["sort-asc", "sort-desc"], constructor: function(config){ @@ -30716,68 +30716,68 @@ Ext.list.Sorter = Ext.extend(Ext.util.Observable, { Ext.ListView.Sorter = Ext.list.Sorter; Ext.TabPanel = Ext.extend(Ext.Panel, { - - - + + + deferredRender : true, - + tabWidth : 120, - + minTabWidth : 30, - + resizeTabs : false, - + enableTabScroll : false, - + scrollIncrement : 0, - + scrollRepeatInterval : 400, - + scrollDuration : 0.35, - + animScroll : true, - + tabPosition : 'top', - + baseCls : 'x-tab-panel', - + autoTabs : false, - + autoTabSelector : 'div.x-tab', - + activeTab : undefined, - + tabMargin : 2, - + plain : false, - + wheelIncrement : 20, - + idDelimiter : '__', - + itemCls : 'x-tab-item', - + elements : 'body', headerAsText : false, frame : false, hideBorders :true, - + initComponent : function(){ this.frame = false; Ext.TabPanel.superclass.initComponent.call(this); this.addEvents( - + 'beforetabchange', - + 'tabchange', - + 'contextmenu' ); - + this.setLayout(new Ext.layout.CardLayout(Ext.apply({ layoutOnCardChange: this.layoutOnTabChange, deferredRender: this.deferredRender @@ -30796,7 +30796,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.initItems(); }, - + onRender : function(ct, position){ Ext.TabPanel.superclass.onRender.call(this, ct, position); @@ -30814,13 +30814,13 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { st.createChild({cls:'x-tab-strip-spacer'}, beforeEl); this.strip = new Ext.Element(this.stripWrap.dom.firstChild); - + this.edge = this.strip.createChild({tag:'li', cls:'x-tab-edge', cn: [{tag: 'span', cls: 'x-tab-strip-text', cn: ' '}]}); this.strip.createChild({cls:'x-clear'}); this.body.addClass('x-tab-panel-body-'+this.tabPosition); - + if(!this.itemTpl){ var tt = new Ext.Template( '
  • ', @@ -30836,7 +30836,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.items.each(this.initTab, this); }, - + afterRender : function(){ Ext.TabPanel.superclass.afterRender.call(this); if(this.autoTabs){ @@ -30849,7 +30849,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + initEvents : function(){ Ext.TabPanel.superclass.initEvents.call(this); this.mon(this.strip, { @@ -30862,7 +30862,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + findTargets : function(e){ var item = null, itemEl = e.getTarget('li:not(.x-tab-edge)', this.strip); @@ -30884,7 +30884,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { }; }, - + onStripMouseDown : function(e){ if(e.button !== 0){ return; @@ -30903,7 +30903,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onStripContextMenu : function(e){ e.preventDefault(); var t = this.findTargets(e); @@ -30912,7 +30912,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + readTabs : function(removeExisting){ if(removeExisting === true){ this.items.each(function(item){ @@ -30931,7 +30931,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + initTab : function(item, index){ var before = this.strip.dom.childNodes[index], p = this.getTemplateArgs(item), @@ -30954,7 +30954,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } item.tabEl = el; - + tabEl.select('a').on('click', function(e){ if(!e.getPageX()){ this.onStripMouseDown(e); @@ -30973,7 +30973,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { - + getTemplateArgs : function(item) { var cls = item.closable ? 'x-tab-strip-closable' : ''; if(item.disabled){ @@ -30994,7 +30994,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { }; }, - + onAdd : function(c){ Ext.TabPanel.superclass.onAdd.call(this, c); if(this.rendered){ @@ -31004,7 +31004,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onBeforeAdd : function(item){ var existing = item.events ? (this.items.containsKey(item.getItemId()) ? item : null) : this.items.get(item); if(existing){ @@ -31017,10 +31017,10 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { item.border = (item.border === true); }, - + onRemove : function(c){ var te = Ext.get(c.tabEl); - + if(te){ te.select('a').removeAllListeners(); Ext.destroy(te); @@ -31048,7 +31048,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onBeforeShowItem : function(item){ if(item != this.activeTab){ this.setActiveTab(item); @@ -31056,7 +31056,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onItemDisabled : function(item){ var el = this.getTabEl(item); if(el){ @@ -31065,7 +31065,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.stack.remove(item); }, - + onItemEnabled : function(item){ var el = this.getTabEl(item); if(el){ @@ -31073,7 +31073,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onItemTitleChanged : function(item){ var el = this.getTabEl(item); if(el){ @@ -31082,7 +31082,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onItemIconChanged : function(item, iconCls, oldCls){ var el = this.getTabEl(item); if(el){ @@ -31093,30 +31093,30 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + getTabEl : function(item){ var c = this.getComponent(item); return c ? c.tabEl : null; }, - + onResize : function(){ Ext.TabPanel.superclass.onResize.apply(this, arguments); this.delegateUpdates(); }, - + beginUpdate : function(){ this.suspendUpdates = true; }, - + endUpdate : function(){ this.suspendUpdates = false; this.delegateUpdates(); }, - + hideTabStripItem : function(item){ item = this.getComponent(item); var el = this.getTabEl(item); @@ -31127,7 +31127,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.stack.remove(item); }, - + unhideTabStripItem : function(item){ item = this.getComponent(item); var el = this.getTabEl(item); @@ -31137,7 +31137,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + delegateUpdates : function(){ var rendered = this.rendered; if(this.suspendUpdates){ @@ -31151,18 +31151,18 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + autoSizeTabs : function(){ var count = this.items.length, ce = this.tabPosition != 'bottom' ? 'header' : 'footer', ow = this[ce].dom.offsetWidth, aw = this[ce].dom.clientWidth; - if(!this.resizeTabs || count < 1 || !aw){ + if(!this.resizeTabs || count < 1 || !aw){ return; } - var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); + var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); this.lastTabWidth = each; var lis = this.strip.query('li:not(.x-tab-edge)'); for(var i = 0, len = lis.length; i < len; i++) { @@ -31174,7 +31174,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + adjustBodyWidth : function(w){ if(this.header){ this.header.setWidth(w); @@ -31185,7 +31185,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { return w; }, - + setActiveTab : function(item){ item = this.getComponent(item); if(this.fireEvent('beforetabchange', this, item, this.activeTab) === false){ @@ -31209,7 +31209,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.stack.add(item); this.layout.setActiveItem(item); - + this.delegateUpdates(); if(this.scrolling){ this.scrollToTab(item, this.animScroll); @@ -31219,17 +31219,17 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + getActiveTab : function(){ return this.activeTab || null; }, - + getItem : function(item){ return this.getComponent(item); }, - + autoScrollTabs : function(){ this.pos = this.tabPosition=='bottom' ? this.footer : this.header; var count = this.items.length, @@ -31241,11 +31241,11 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { pos = this.getScrollPos(), l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos; - if(!this.enableTabScroll || cw < 20){ + if(!this.enableTabScroll || cw < 20){ return; } if(count == 0 || l <= tw){ - + wd.scrollLeft = 0; wrap.setWidth(tw); if(this.scrolling){ @@ -31253,7 +31253,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.pos.removeClass('x-tab-scrolling'); this.scrollLeft.hide(); this.scrollRight.hide(); - + if(Ext.isAir || Ext.isWebKit){ wd.style.marginLeft = ''; wd.style.marginRight = ''; @@ -31262,7 +31262,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { }else{ if(!this.scrolling){ this.pos.addClass('x-tab-scrolling'); - + if(Ext.isAir || Ext.isWebKit){ wd.style.marginLeft = '18px'; wd.style.marginRight = '18px'; @@ -31279,21 +31279,21 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } } this.scrolling = true; - if(pos > (l-tw)){ + if(pos > (l-tw)){ wd.scrollLeft = l-tw; - }else{ + }else{ this.scrollToTab(this.activeTab, false); } this.updateScrollButtons(); } }, - + createScrollers : function(){ this.pos.addClass('x-tab-scrolling-' + this.tabPosition); var h = this.stripWrap.dom.offsetHeight; - + var sl = this.pos.insertFirst({ cls:'x-tab-scroller-left' }); @@ -31306,7 +31306,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { }); this.scrollLeft = sl; - + var sr = this.pos.insertFirst({ cls:'x-tab-scroller-right' }); @@ -31320,32 +31320,32 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { this.scrollRight = sr; }, - + getScrollWidth : function(){ return this.edge.getOffsetsTo(this.stripWrap)[0] + this.getScrollPos(); }, - + getScrollPos : function(){ return parseInt(this.stripWrap.dom.scrollLeft, 10) || 0; }, - + getScrollArea : function(){ return parseInt(this.stripWrap.dom.clientWidth, 10) || 0; }, - + getScrollAnim : function(){ return {duration:this.scrollDuration, callback: this.updateScrollButtons, scope: this}; }, - + getScrollIncrement : function(){ return this.scrollIncrement || (this.resizeTabs ? this.lastTabWidth+2 : 100); }, - + scrollToTab : function(item, animate){ if(!item){ @@ -31363,7 +31363,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + scrollTo : function(pos, animate){ this.stripWrap.scrollTo('left', pos, animate ? this.getScrollAnim() : false); if(!animate){ @@ -31385,7 +31385,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onScrollRight : function(){ var sw = this.getScrollWidth()-this.getScrollArea(), pos = this.getScrollPos(), @@ -31395,7 +31395,7 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + onScrollLeft : function(){ var pos = this.getScrollPos(), s = Math.max(0, pos - this.getScrollIncrement()); @@ -31404,14 +31404,14 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { } }, - + updateScrollButtons : function(){ var pos = this.getScrollPos(); this.scrollLeft[pos === 0 ? 'addClass' : 'removeClass']('x-tab-scroller-left-disabled'); this.scrollRight[pos >= (this.getScrollWidth()-this.getScrollArea()) ? 'addClass' : 'removeClass']('x-tab-scroller-right-disabled'); }, - + beforeDestroy : function() { Ext.destroy(this.leftRepeater, this.rightRepeater); this.deleteMembers('strip', 'edge', 'scrollLeft', 'scrollRight', 'stripWrap'); @@ -31419,18 +31419,18 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { Ext.TabPanel.superclass.beforeDestroy.apply(this); } - - - - - - - - - - - - + + + + + + + + + + + + }); Ext.reg('tabpanel', Ext.TabPanel); @@ -31465,99 +31465,99 @@ Ext.TabPanel.AccessStack = function(){ }; Ext.Button = Ext.extend(Ext.BoxComponent, { - + hidden : false, - + disabled : false, - + pressed : false, - - - + + + enableToggle : false, - - - + + + menuAlign : 'tl-bl?', - - - + + + type : 'button', - + menuClassTarget : 'tr:nth(2)', - + clickEvent : 'click', - + handleMouseEvents : true, - + tooltipType : 'qtip', - + buttonSelector : 'button:first-child', - + scale : 'small', - - + + iconAlign : 'left', - + arrowAlign : 'right', - - - - + + + + initComponent : function(){ if(this.menu){ - - + + if (Ext.isArray(this.menu)){ this.menu = { items: this.menu }; } - - - + + + if (Ext.isObject(this.menu)){ this.menu.ownerCt = this; } - + this.menu = Ext.menu.MenuMgr.get(this.menu); this.menu.ownerCt = undefined; } - + Ext.Button.superclass.initComponent.call(this); this.addEvents( - + 'click', - + 'toggle', - + 'mouseover', - + 'mouseout', - + 'menushow', - + 'menuhide', - + 'menutriggerover', - + 'menutriggerout' ); - + if(Ext.isString(this.toggleGroup)){ this.enableToggle = true; } @@ -31568,7 +31568,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return [this.type, 'x-btn-' + this.scale + ' x-btn-icon-' + this.scale + '-' + this.iconAlign, this.getMenuClass(), this.cls, this.id]; }, - + setButtonClass : function(){ if(this.useSetClass){ if(!Ext.isEmpty(this.oldCls)){ @@ -31579,16 +31579,16 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + getMenuClass : function(){ return this.menu ? (this.arrowAlign != 'bottom' ? 'x-btn-arrow' : 'x-btn-arrow-bottom') : ''; }, - + onRender : function(ct, position){ if(!this.template){ if(!Ext.Button.buttonTemplate){ - + Ext.Button.buttonTemplate = new Ext.Template( '
  • ', '', @@ -31607,7 +31607,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { }else{ btn = this.template.append(ct, targs, true); } - + this.btnEl = btn.child(this.buttonSelector); this.mon(this.btnEl, { scope: this, @@ -31620,7 +31620,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { Ext.ButtonToggleMgr.register(this); }, - + initButtonEl : function(btn, btnEl){ this.el = btn; this.setIcon(this.icon); @@ -31640,8 +31640,8 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { mousedown: this.onMouseDown }); - - + + } if(this.menu){ @@ -31660,7 +31660,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + afterRender : function(){ Ext.Button.superclass.afterRender.call(this); this.useSetClass = true; @@ -31669,7 +31669,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { this.doAutoWidth(); }, - + setIconClass : function(cls){ this.iconCls = cls; if(this.el){ @@ -31680,7 +31680,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + setTooltip : function(tooltip, initial){ if(this.rendered){ if(!initial){ @@ -31700,14 +31700,14 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + clearTip : function(){ if(Ext.isObject(this.tooltip)){ Ext.QuickTips.unregister(this.btnEl); } }, - + beforeDestroy : function(){ if(this.rendered){ this.clearTip(); @@ -31718,7 +31718,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { Ext.destroy(this.repeater); }, - + onDestroy : function(){ if(this.rendered){ this.doc.un('mouseover', this.monitorMouseOver, this); @@ -31730,7 +31730,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { Ext.Button.superclass.onDestroy.call(this); }, - + doAutoWidth : function(){ if(this.autoWidth !== false && this.el && this.text && this.width === undefined){ this.el.setWidth('auto'); @@ -31749,14 +31749,14 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + setHandler : function(handler, scope){ this.handler = handler; this.scope = scope; return this; }, - + setText : function(text){ this.text = text; if(this.el){ @@ -31767,7 +31767,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + setIcon : function(icon){ this.icon = icon; if(this.el){ @@ -31777,12 +31777,12 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + getText : function(){ return this.text; }, - + toggle : function(state, suppressEvent){ state = state === undefined ? !this.pressed : !!state; if(state != this.pressed){ @@ -31800,12 +31800,12 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + onDisable : function(){ this.onDisableChange(true); }, - + onEnable : function(){ this.onDisableChange(false); }, @@ -31820,7 +31820,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { this.disabled = disabled; }, - + showMenu : function(){ if(this.rendered && this.menu){ if(this.tooltip){ @@ -31835,7 +31835,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + hideMenu : function(){ if(this.hasVisibleMenu()){ this.menu.hide(); @@ -31843,17 +31843,17 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { return this; }, - + hasVisibleMenu : function(){ return this.menu && this.menu.ownerCt == this && this.menu.isVisible(); }, - - + + onRepeatClick : function(repeat, e){ this.onClick(e); }, - + onClick : function(e){ if(e){ e.preventDefault(); @@ -31868,30 +31868,30 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } this.fireEvent('click', this, e); if(this.handler){ - + this.handler.call(this.scope || this, this, e); } } }, - - + + doToggle: function(){ if (this.enableToggle && (this.allowDepress !== false || !this.pressed)) { this.toggle(); } }, - + isMenuTriggerOver : function(e, internal){ return this.menu && !internal; }, - + isMenuTriggerOut : function(e, internal){ return this.menu && !internal; }, - + onMouseOver : function(e){ if(!this.disabled){ var internal = e.within(this.el, true); @@ -31909,7 +31909,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + monitorMouseOver : function(e){ if(e.target != this.el.dom && !e.within(this.el)){ if(this.monitoringMouseOver){ @@ -31920,7 +31920,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + onMouseOut : function(e){ var internal = e.within(this.el) && e.target != this.el.dom; this.el.removeClass('x-btn-over'); @@ -31938,37 +31938,37 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { this.btnEl.blur(); }, - + onFocus : function(e){ if(!this.disabled){ this.el.addClass('x-btn-focus'); } }, - + onBlur : function(e){ this.el.removeClass('x-btn-focus'); }, - + getClickEl : function(e, isUp){ return this.el; }, - + onMouseDown : function(e){ if(!this.disabled && e.button === 0){ this.getClickEl(e).addClass('x-btn-click'); this.doc.on('mouseup', this.onMouseUp, this); } }, - + onMouseUp : function(e){ if(e.button === 0){ this.getClickEl(e, true).removeClass('x-btn-click'); this.doc.un('mouseup', this.onMouseUp, this); } }, - + onMenuShow : function(e){ if(this.menu.ownerCt == this){ this.menu.ownerCt = this; @@ -31977,7 +31977,7 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { this.fireEvent('menushow', this, this.menu); } }, - + onMenuHide : function(e){ if(this.menu.ownerCt == this){ this.el.removeClass('x-btn-menu-active'); @@ -31987,17 +31987,17 @@ Ext.Button = Ext.extend(Ext.BoxComponent, { } }, - + restoreClick : function(){ this.ignoreNextClick = 0; } - - - - - - + + + + + + }); Ext.reg('button', Ext.Button); @@ -32040,7 +32040,7 @@ Ext.ButtonToggleMgr = function(){ } }, - + getPressed : function(group){ var g = groups[group]; if(g){ @@ -32056,18 +32056,18 @@ Ext.ButtonToggleMgr = function(){ }(); Ext.SplitButton = Ext.extend(Ext.Button, { - + arrowSelector : 'em', split: true, - + initComponent : function(){ Ext.SplitButton.superclass.initComponent.call(this); - + this.addEvents("arrowclick"); }, - + onRender : function(){ Ext.SplitButton.superclass.onRender.apply(this, arguments); if(this.arrowTooltip){ @@ -32075,7 +32075,7 @@ Ext.SplitButton = Ext.extend(Ext.Button, { } }, - + setArrowHandler : function(handler, scope){ this.arrowHandler = handler; this.scope = scope; @@ -32095,7 +32095,7 @@ Ext.SplitButton = Ext.extend(Ext.Button, { } }, - + onClick : function(e, t){ e.preventDefault(); if(!this.disabled){ @@ -32117,12 +32117,12 @@ Ext.SplitButton = Ext.extend(Ext.Button, { } }, - + isMenuTriggerOver : function(e){ return this.menu && e.target.tagName == this.arrowSelector; }, - + isMenuTriggerOut : function(e, internal){ return this.menu && e.target.tagName != this.arrowSelector; } @@ -32130,14 +32130,14 @@ Ext.SplitButton = Ext.extend(Ext.Button, { Ext.reg('splitbutton', Ext.SplitButton); Ext.CycleButton = Ext.extend(Ext.SplitButton, { - - - - - - - - + + + + + + + + getItemText : function(item){ if(item && this.showText === true){ var text = ''; @@ -32150,7 +32150,7 @@ Ext.CycleButton = Ext.extend(Ext.SplitButton, { return undefined; }, - + setActiveItem : function(item, suppressEvent){ if(!Ext.isObject(item)){ item = this.menu.getComponent(item); @@ -32179,15 +32179,15 @@ Ext.CycleButton = Ext.extend(Ext.SplitButton, { } }, - + getActiveItem : function(){ return this.activeItem; }, - + initComponent : function(){ this.addEvents( - + "change" ); @@ -32218,28 +32218,28 @@ Ext.CycleButton = Ext.extend(Ext.SplitButton, { this.setActiveItem(checked, true); }, - + checkHandler : function(item, pressed){ if(pressed){ this.setActiveItem(item); } }, - + toggleSelected : function(){ var m = this.menu; m.render(); - + if(!m.hasLayout){ m.doLayout(); } - + var nextIdx, checkItem; for (var i = 1; i < this.itemCount; i++) { nextIdx = (this.activeItem.itemIndex + i) % this.itemCount; - + checkItem = m.items.itemAt(nextIdx); - + if (!checkItem.disabled) { checkItem.setChecked(true); break; @@ -32270,12 +32270,12 @@ Ext.extend(T, Ext.Container, { defaultType: 'button', - + enableOverflow : false, - - + + trackMenus : true, internalDefaults: {removeMode: 'container', hideParent: true}, @@ -32284,11 +32284,11 @@ Ext.extend(T, Ext.Container, { initComponent : function(){ T.superclass.initComponent.call(this); - + this.addEvents('overflowchange'); }, - + onRender : function(ct, position){ if(!this.el){ if(!this.autoCreate){ @@ -32301,9 +32301,9 @@ Ext.extend(T, Ext.Container, { } }, - - + + lookupComponent : function(c){ if(Ext.isString(c)){ if(c == '-'){ @@ -32317,20 +32317,20 @@ Ext.extend(T, Ext.Container, { } this.applyDefaults(c); }else{ - if(c.isFormField || c.render){ + if(c.isFormField || c.render){ c = this.createComponent(c); - }else if(c.tag){ + }else if(c.tag){ c = new T.Item({autoEl: c}); - }else if(c.tagName){ + }else if(c.tagName){ c = new T.Item({el:c}); - }else if(Ext.isObject(c)){ + }else if(Ext.isObject(c)){ c = c.xtype ? this.createComponent(c) : this.constructButton(c); } } return c; }, - + applyDefaults : function(c){ if(!Ext.isString(c)){ c = Ext.Toolbar.superclass.applyDefaults.call(this, c); @@ -32345,32 +32345,32 @@ Ext.extend(T, Ext.Container, { return c; }, - + addSeparator : function(){ return this.add(new T.Separator()); }, - + addSpacer : function(){ return this.add(new T.Spacer()); }, - + addFill : function(){ this.add(new T.Fill()); }, - + addElement : function(el){ return this.addItem(new T.Item({el:el})); }, - + addItem : function(item){ return this.add.apply(this, arguments); }, - + addButton : function(config){ if(Ext.isArray(config)){ var buttons = []; @@ -32382,22 +32382,22 @@ Ext.extend(T, Ext.Container, { return this.add(this.constructButton(config)); }, - + addText : function(text){ return this.addItem(new T.TextItem(text)); }, - + addDom : function(config){ return this.add(new T.Item({autoEl: config})); }, - + addField : function(field){ return this.add(field); }, - + insertButton : function(index, item){ if(Ext.isArray(item)){ var buttons = []; @@ -32409,7 +32409,7 @@ Ext.extend(T, Ext.Container, { return Ext.Toolbar.superclass.insert.call(this, index, item); }, - + trackMenu : function(item, remove){ if(this.trackMenus && item.menu){ var method = remove ? 'mun' : 'mon'; @@ -32419,13 +32419,13 @@ Ext.extend(T, Ext.Container, { } }, - + constructButton : function(item){ var b = item.events ? item : this.createComponent(item, item.split ? 'splitbutton' : this.defaultType); return b; }, - + onAdd : function(c){ Ext.Toolbar.superclass.onAdd.call(this); this.trackMenu(c); @@ -32434,7 +32434,7 @@ Ext.extend(T, Ext.Container, { } }, - + onRemove : function(c){ Ext.Toolbar.superclass.onRemove.call(this); if (c == this.activeMenuBtn) { @@ -32443,7 +32443,7 @@ Ext.extend(T, Ext.Container, { this.trackMenu(c, true); }, - + onDisable : function(){ this.items.each(function(item){ if(item.disable){ @@ -32452,7 +32452,7 @@ Ext.extend(T, Ext.Container, { }); }, - + onEnable : function(){ this.items.each(function(item){ if(item.enable){ @@ -32461,7 +32461,7 @@ Ext.extend(T, Ext.Container, { }); }, - + onButtonTriggerOver : function(btn){ if(this.activeMenuBtn && this.activeMenuBtn != btn){ this.activeMenuBtn.hideMenu(); @@ -32470,12 +32470,12 @@ Ext.extend(T, Ext.Container, { } }, - + onButtonMenuShow : function(btn){ this.activeMenuBtn = btn; }, - + onButtonMenuHide : function(btn){ delete this.activeMenuBtn; } @@ -32484,11 +32484,11 @@ Ext.reg('toolbar', Ext.Toolbar); T.Item = Ext.extend(Ext.BoxComponent, { - hideParent: true, + hideParent: true, enable:Ext.emptyFn, disable:Ext.emptyFn, focus:Ext.emptyFn - + }); Ext.reg('tbitem', T.Item); @@ -32502,7 +32502,7 @@ Ext.reg('tbseparator', T.Separator); T.Spacer = Ext.extend(T.Item, { - + onRender : function(ct, position){ this.el = ct.createChild({tag:'div', cls:'xtb-spacer', style: this.width?'width:'+this.width+'px':''}, position); @@ -32512,7 +32512,7 @@ Ext.reg('tbspacer', T.Spacer); T.Fill = Ext.extend(T.Item, { - + render : Ext.emptyFn, isFill : true }); @@ -32520,19 +32520,19 @@ Ext.reg('tbfill', T.Fill); T.TextItem = Ext.extend(T.Item, { - + constructor: function(config){ T.TextItem.superclass.constructor.call(this, Ext.isString(config) ? {text: config} : config); }, - + onRender : function(ct, position) { this.autoEl = {cls: 'xtb-text', html: this.text || ''}; T.TextItem.superclass.onRender.call(this, ct, position); }, - + setText : function(t) { if(this.rendered){ this.el.update(t); @@ -32552,13 +32552,13 @@ Ext.reg('tbsplit', T.SplitButton); })(); Ext.ButtonGroup = Ext.extend(Ext.Panel, { - - + + baseCls: 'x-btn-group', - + layout:'table', defaultType: 'button', - + frame: true, internalDefaults: {removeMode: 'container', hideParent: true}, @@ -32591,7 +32591,7 @@ Ext.ButtonGroup = Ext.extend(Ext.Panel, { this.body.setWidth(bodyWidth); this.el.setWidth(bodyWidth + this.getFrameWidth()); } - + }); Ext.reg('buttongroup', Ext.ButtonGroup); @@ -32601,35 +32601,35 @@ Ext.reg('buttongroup', Ext.ButtonGroup); var T = Ext.Toolbar; Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { - - - + + + pageSize : 20, - - + + displayMsg : 'Displaying {0} - {1} of {2}', - + emptyMsg : 'No data to display', - + beforePageText : 'Page', - + afterPageText : 'of {0}', - + firstText : 'First Page', - + prevText : 'Previous Page', - + nextText : 'Next Page', - + lastText : 'Last Page', - + refreshText : 'Refresh', - - - + + + initComponent : function(){ var pagingItems = [this.first = new T.Button({ @@ -32697,9 +32697,9 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { } Ext.PagingToolbar.superclass.initComponent.call(this); this.addEvents( - + 'change', - + 'beforechange' ); this.on('afterlayout', this.onFirstLayout, this, {single: true}); @@ -32707,14 +32707,14 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { this.bindStore(this.store, true); }, - + onFirstLayout : function(){ if(this.dsLoaded){ this.onLoad.apply(this, this.dsLoaded); } }, - + updateInfo : function(){ if(this.displayItem){ var count = this.store.getCount(); @@ -32728,7 +32728,7 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { } }, - + onLoad : function(store, r, o){ if(!this.rendered){ this.dsLoaded = [store, r, o]; @@ -32749,7 +32749,7 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { this.fireEvent('change', this, d); }, - + getPageData : function(){ var total = this.store.getTotalCount(); return { @@ -32759,12 +32759,12 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { }; }, - + changePage : function(page){ this.doLoad(((page-1) * this.pageSize).constrain(0, this.store.getTotalCount())); }, - + onLoadError : function(){ if(!this.rendered){ return; @@ -32772,7 +32772,7 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { this.refresh.enable(); }, - + readPage : function(d){ var v = this.inputItem.getValue(), pageNum; if (!v || isNaN(pageNum = parseInt(v, 10))) { @@ -32786,12 +32786,12 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { this.inputItem.select(); }, - + onPagingBlur : function(e){ this.inputItem.setValue(this.getPageData().activePage); }, - + onPagingKeyDown : function(field, e){ var k = e.getKey(), d = this.getPageData(), pageNum; if (k == e.RETURN) { @@ -32820,20 +32820,20 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { } }, - + getParams : function(){ - + return this.paramNames || this.store.paramNames; }, - + beforeLoad : function(){ if(this.rendered && this.refresh){ this.refresh.disable(); } }, - + doLoad : function(start){ var o = {}, pn = this.getParams(); o[pn.start] = start; @@ -32843,22 +32843,22 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { } }, - + moveFirst : function(){ this.doLoad(0); }, - + movePrevious : function(){ this.doLoad(Math.max(0, this.cursor-this.pageSize)); }, - + moveNext : function(){ this.doLoad(this.cursor+this.pageSize); }, - + moveLast : function(){ var total = this.store.getTotalCount(), extra = total % this.pageSize; @@ -32866,12 +32866,12 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { this.doLoad(extra ? (total - extra) : total - this.pageSize); }, - + doRefresh : function(){ this.doLoad(this.cursor); }, - + bindStore : function(store, initial){ var doLoad; if(!initial && this.store){ @@ -32902,17 +32902,17 @@ Ext.PagingToolbar = Ext.extend(Ext.Toolbar, { } }, - + unbind : function(store){ this.bindStore(null); }, - + bind : function(store){ this.bindStore(store); }, - + onDestroy : function(){ this.bindStore(null); Ext.PagingToolbar.superclass.onDestroy.call(this); @@ -32929,7 +32929,7 @@ Ext.History = (function () { function getHash() { var href = location.href, i = href.indexOf("#"), hash = i >= 0 ? href.substr(i + 1) : null; - + if (Ext.isGecko) { hash = decodeURIComponent(hash); } @@ -33018,14 +33018,14 @@ Ext.History = (function () { } return { - + fieldId: 'x-history-field', - + iframeId: 'x-history-frame', events:{}, - + init: function (onReady, scope) { if(ready) { Ext.callback(onReady, scope, [this]); @@ -33042,9 +33042,9 @@ Ext.History = (function () { iframe = Ext.getDom(Ext.History.iframeId); } this.addEvents( - + 'ready', - + 'change' ); if(onReady){ @@ -33053,7 +33053,7 @@ Ext.History = (function () { startUp(); }, - + add: function (token, preventDup) { if(preventDup !== false){ if(this.getToken() == token){ @@ -33068,17 +33068,17 @@ Ext.History = (function () { } }, - + back: function(){ history.go(-1); }, - + forward: function(){ history.go(1); }, - + getToken: function() { return ready ? currentToken : getHash(); } @@ -33086,20 +33086,20 @@ Ext.History = (function () { })(); Ext.apply(Ext.History, new Ext.util.Observable()); Ext.Tip = Ext.extend(Ext.Panel, { - - - + + + minWidth : 40, - + maxWidth : 300, - + shadow : "sides", - + defaultAlign : "tl-bl?", autoRender: true, quickShowInterval : 250, - + frame:true, hidden:true, baseCls: 'x-tip', @@ -33108,7 +33108,7 @@ Ext.Tip = Ext.extend(Ext.Panel, { closeAction: 'hide', - + initComponent : function(){ Ext.Tip.superclass.initComponent.call(this); if(this.closable && !this.title){ @@ -33116,7 +33116,7 @@ Ext.Tip = Ext.extend(Ext.Panel, { } }, - + afterRender : function(){ Ext.Tip.superclass.afterRender.call(this); if(this.closable){ @@ -33128,7 +33128,7 @@ Ext.Tip = Ext.extend(Ext.Panel, { } }, - + showAt : function(xy){ Ext.Tip.superclass.show.call(this); if(this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != 'number')){ @@ -33140,7 +33140,7 @@ Ext.Tip = Ext.extend(Ext.Panel, { this.setPagePosition(xy[0], xy[1]); }, - + doAutoWidth : function(adjust){ adjust = adjust || 0; var bw = this.body.getTextWidth(); @@ -33149,15 +33149,15 @@ Ext.Tip = Ext.extend(Ext.Panel, { } bw += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr") + adjust; this.setWidth(bw.constrain(this.minWidth, this.maxWidth)); - - + + if(Ext.isIE7 && !this.repainted){ this.el.repaint(); this.repainted = true; } }, - + showBy : function(el, pos){ if(!this.rendered){ this.render(Ext.getBody()); @@ -33194,30 +33194,30 @@ Ext.extend(Ext.Tip.DD, Ext.dd.DD, { } }); Ext.ToolTip = Ext.extend(Ext.Tip, { - - - - + + + + showDelay : 500, - + hideDelay : 200, - + dismissDelay : 5000, - - + + trackMouse : false, - + anchorToTarget : true, - + anchorOffset : 0, - - + + targetCounter : 0, constrainPosition : false, - + initComponent : function(){ Ext.ToolTip.superclass.initComponent.call(this); this.lastActive = new Date(); @@ -33225,7 +33225,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { this.origAnchor = this.anchor; }, - + onRender : function(ct, position){ Ext.ToolTip.superclass.onRender.call(this, ct, position); this.anchorCls = 'x-tip-anchor-' + this.getAnchorPosition(); @@ -33234,13 +33234,13 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { }); }, - + afterRender : function(){ Ext.ToolTip.superclass.afterRender.call(this); this.anchorEl.setStyle('z-index', this.el.getZIndex() + 1).setVisibilityMode(Ext.Element.DISPLAY); }, - + initTarget : function(target){ var t; if((t = Ext.get(target))){ @@ -33263,7 +33263,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + onMouseMove : function(e){ var t = this.delegate ? e.getTarget(this.delegate) : this.triggerElement = true; if (t) { @@ -33282,7 +33282,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + getTargetXY : function(){ if(this.delegate){ this.anchorTarget = this.triggerElement; @@ -33299,7 +33299,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { scrollY = (de.scrollTop || bd.scrollTop || 0) + 5, axy = [xy[0] + offsets[0], xy[1] + offsets[1]], sz = this.getSize(); - + this.anchorEl.removeClass(this.anchorCls); if(this.targetCounter < 2){ @@ -33356,7 +33356,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { return offset; }, - + getAnchorPosition : function(){ if(this.anchor){ this.tipAnchor = this.anchor.charAt(0); @@ -33376,7 +33376,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { return 'left'; }, - + getAnchorAlign : function(){ switch(this.anchor){ case 'top' : return 'tl-bl'; @@ -33386,9 +33386,9 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + getOffsets : function(){ - var offsets, + var offsets, ap = this.getAnchorPosition().charAt(0); if(this.anchorToTarget && !this.trackMouse){ switch(ap){ @@ -33428,7 +33428,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { return offsets; }, - + onTargetOver : function(e){ if(this.disabled || e.within(this.target.dom, true)){ return; @@ -33442,7 +33442,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + delayShow : function(){ if(this.hidden && !this.showTimer){ if(this.lastActive.getElapsed() < this.quickShowInterval){ @@ -33455,7 +33455,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + onTargetOut : function(e){ if(this.disabled || e.within(this.target.dom, true)){ return; @@ -33466,14 +33466,14 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + delayHide : function(){ if(!this.hidden && !this.hideTimer){ this.hideTimer = this.hide.defer(this.hideDelay, this); } }, - + hide: function(){ this.clearTimer('dismiss'); this.lastActive = new Date(); @@ -33484,11 +33484,11 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { delete this.triggerElement; }, - + show : function(){ if(this.anchor){ - - + + this.showAt([-1000,-1000]); this.origConstrainPosition = this.constrainPosition; this.constrainPosition = false; @@ -33505,7 +33505,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + showAt : function(xy){ this.lastActive = new Date(); this.clearTimers(); @@ -33521,7 +33521,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + syncAnchor : function(){ var anchorPos, targetPos, offset; switch(this.tipAnchor.charAt(0)){ @@ -33549,7 +33549,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { this.anchorEl.alignTo(this.el, anchorPos+'-'+targetPos, offset); }, - + setPagePosition : function(x, y){ Ext.ToolTip.superclass.setPagePosition.call(this, x, y); if(this.anchor){ @@ -33557,54 +33557,54 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } }, - + clearTimer : function(name){ name = name + 'Timer'; clearTimeout(this[name]); delete this[name]; }, - + clearTimers : function(){ this.clearTimer('show'); this.clearTimer('dismiss'); this.clearTimer('hide'); }, - + onShow : function(){ Ext.ToolTip.superclass.onShow.call(this); Ext.getDoc().on('mousedown', this.onDocMouseDown, this); }, - + onHide : function(){ Ext.ToolTip.superclass.onHide.call(this); Ext.getDoc().un('mousedown', this.onDocMouseDown, this); }, - + onDocMouseDown : function(e){ if(this.autoHide !== true && !this.closable && !e.within(this.el.dom)){ this.disable(); this.doEnable.defer(100, this); } }, - - + + doEnable : function(){ if(!this.isDestroyed){ this.enable(); } }, - + onDisable : function(){ this.clearTimers(); this.hide(); }, - + adjustPosition : function(x, y){ if(this.constrainPosition){ var ay = this.targetXY[1], h = this.getSize().height; @@ -33614,7 +33614,7 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { } return {x : x, y: y}; }, - + beforeDestroy : function(){ this.clearTimers(); Ext.destroy(this.anchorEl); @@ -33622,10 +33622,10 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { delete this.target; delete this.anchorTarget; delete this.triggerElement; - Ext.ToolTip.superclass.beforeDestroy.call(this); + Ext.ToolTip.superclass.beforeDestroy.call(this); }, - + onDestroy : function(){ Ext.getDoc().un('mousedown', this.onDocMouseDown, this); Ext.ToolTip.superclass.onDestroy.call(this); @@ -33634,11 +33634,11 @@ Ext.ToolTip = Ext.extend(Ext.Tip, { Ext.reg('tooltip', Ext.ToolTip); Ext.QuickTip = Ext.extend(Ext.ToolTip, { - - + + interceptTitles : false, - + tagConfig : { namespace : "ext", attribute : "qtip", @@ -33651,14 +33651,14 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { anchor : "anchor" }, - + initComponent : function(){ this.target = this.target || Ext.getDoc(); this.targets = this.targets || {}; Ext.QuickTip.superclass.initComponent.call(this); }, - + register : function(config){ var cs = Ext.isArray(config) ? config : arguments; for(var i = 0, len = cs.length; i < len; i++){ @@ -33676,12 +33676,12 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { } }, - + unregister : function(el){ delete this.targets[Ext.id(el)]; }, - - + + cancelShow: function(el){ var at = this.activeTarget; el = Ext.get(el).dom; @@ -33693,10 +33693,10 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { this.clearTimer('show'); } }, - + getTipCfg: function(e) { - var t = e.getTarget(), - ttp, + var t = e.getTarget(), + ttp, cfg; if(this.interceptTitles && t.title && Ext.isString(t.title)){ ttp = t.title; @@ -33710,7 +33710,7 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { return ttp; }, - + onTargetOver : function(e){ if(this.disabled){ return; @@ -33746,7 +33746,7 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { title: et.getAttribute(cfg.title, ns), cls: et.getAttribute(cfg.cls, ns), align: et.getAttribute(cfg.align, ns) - + }; this.anchor = et.getAttribute(cfg.anchor, ns); if(this.anchor){ @@ -33756,10 +33756,10 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { } }, - + onTargetOut : function(e){ - + if (this.activeTarget && e.within(this.activeTarget.el) && !this.getTipCfg(e)) { return; } @@ -33770,7 +33770,7 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { } }, - + showAt : function(xy){ var t = this.activeTarget; if(t){ @@ -33799,7 +33799,7 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { } if(this.anchor){ this.constrainPosition = false; - }else if(t.align){ + }else if(t.align){ xy = this.el.getAlignToXY(t.el, t.align); this.constrainPosition = false; }else{ @@ -33809,7 +33809,7 @@ Ext.QuickTip = Ext.extend(Ext.ToolTip, { Ext.QuickTip.superclass.showAt.call(this, xy); }, - + hide: function(){ delete this.activeTarget; Ext.QuickTip.superclass.hide.call(this); @@ -33819,9 +33819,9 @@ Ext.reg('quicktip', Ext.QuickTip); Ext.QuickTips = function(){ var tip, disabled = false; - + return { - + init : function(autoRender){ if(!tip){ if(!Ext.isReady){ @@ -33831,7 +33831,7 @@ Ext.QuickTips = function(){ return; } tip = new Ext.QuickTip({ - elements:'header,body', + elements:'header,body', disabled: disabled }); if(autoRender !== false){ @@ -33839,24 +33839,24 @@ Ext.QuickTips = function(){ } } }, - - + + ddDisable : function(){ - + if(tip && !disabled){ tip.disable(); - } + } }, - - + + ddEnable : function(){ - + if(tip && !disabled){ tip.enable(); } }, - + enable : function(){ if(tip){ tip.enable(); @@ -33864,7 +33864,7 @@ Ext.QuickTips = function(){ disabled = false; }, - + disable : function(){ if(tip){ tip.disable(); @@ -33872,27 +33872,27 @@ Ext.QuickTips = function(){ disabled = true; }, - + isEnabled : function(){ return tip !== undefined && !tip.disabled; }, - + getQuickTip : function(){ return tip; }, - + register : function(){ tip.register.apply(tip, arguments); }, - + unregister : function(){ tip.unregister.apply(tip, arguments); }, - + tips : function(){ tip.register.apply(tip, arguments); } @@ -33901,7 +33901,7 @@ Ext.QuickTips = function(){ Ext.slider.Tip = Ext.extend(Ext.Tip, { minWidth: 10, offsets : [0, -10], - + init: function(slider) { slider.on({ scope : this, @@ -33911,8 +33911,8 @@ Ext.slider.Tip = Ext.extend(Ext.Tip, { destroy : this.destroy }); }, - - + + onSlide : function(slider, e, thumb) { this.show(); this.body.update(this.getText(thumb)); @@ -33920,7 +33920,7 @@ Ext.slider.Tip = Ext.extend(Ext.Tip, { this.el.alignTo(thumb.el, 'b-t?', this.offsets); }, - + getText : function(thumb) { return String(thumb.value); } @@ -33936,7 +33936,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { hlDrop : Ext.enableFx, pathSeparator : '/', - + bubbleEvents : [], initComponent : function(){ @@ -33946,7 +33946,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { this.eventModel = new Ext.tree.TreeEventModel(this); } - + var l = this.loader; if(!l){ l = new Ext.tree.TreeLoader({ @@ -33960,7 +33960,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { this.nodeHash = {}; - + if(this.root){ var r = this.root; delete this.root; @@ -33970,70 +33970,70 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { this.addEvents( - + 'append', - + 'remove', - + 'movenode', - + 'insert', - + 'beforeappend', - + 'beforeremove', - + 'beforemovenode', - + 'beforeinsert', - + 'beforeload', - + 'load', - + 'textchange', - + 'beforeexpandnode', - + 'beforecollapsenode', - + 'expandnode', - + 'disabledchange', - + 'collapsenode', - + 'beforeclick', - + 'click', - + 'containerclick', - + 'checkchange', - + 'beforedblclick', - + 'dblclick', - + 'containerdblclick', - + 'contextmenu', - + 'containercontextmenu', - + 'beforechildrenrendered', - + 'startdrag', - + 'enddrag', - + 'dragdrop', - + 'beforenodedrop', - + 'nodedrop', - + 'nodedragover' ); if(this.singleExpand){ @@ -34041,25 +34041,25 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { } }, - + proxyNodeEvent : function(ename, a1, a2, a3, a4, a5, a6){ if(ename == 'collapse' || ename == 'expand' || ename == 'beforecollapse' || ename == 'beforeexpand' || ename == 'move' || ename == 'beforemove'){ ename = ename+'node'; } - + return this.fireEvent(ename, a1, a2, a3, a4, a5, a6); }, - + getRootNode : function(){ return this.root; }, - + setRootNode : function(node){ this.destroyRoot(); - if(!node.render){ + if(!node.render){ node = this.loader.createNode(node); } this.root = node; @@ -34076,12 +34076,12 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { } return node; }, - + clearInnerCt : function(){ - this.innerCt.update(''); + this.innerCt.update(''); }, - - + + renderRoot : function(){ this.root.render(); if(!this.rootVisible){ @@ -34089,27 +34089,27 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { } }, - + getNodeById : function(id){ return this.nodeHash[id]; }, - + registerNode : function(node){ this.nodeHash[node.id] = node; }, - + unregisterNode : function(node){ delete this.nodeHash[node.id]; }, - + toString : function(){ return '[Tree'+(this.id?' '+this.id:'')+']'; }, - + restrictExpand : function(node){ var p = node.parentNode; if(p){ @@ -34120,7 +34120,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { } }, - + getChecked : function(a, startNode){ startNode = startNode || this.root; var r = []; @@ -34133,22 +34133,22 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { return r; }, - + getLoader : function(){ return this.loader; }, - + expandAll : function(){ this.root.expand(true); }, - + collapseAll : function(){ this.root.collapse(true); }, - + getSelectionModel : function(){ if(!this.selModel){ this.selModel = new Ext.tree.DefaultSelectionModel(); @@ -34156,7 +34156,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { return this.selModel; }, - + expandPath : function(path, attr, callback){ if(Ext.isEmpty(path)){ if(callback){ @@ -34167,7 +34167,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { attr = attr || 'id'; var keys = path.split(this.pathSeparator); var curNode = this.root; - if(curNode.attributes[attr] != keys[1]){ + if(curNode.attributes[attr] != keys[1]){ if(callback){ callback(false, null); } @@ -34194,7 +34194,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { curNode.expand(false, false, f); }, - + selectPath : function(path, attr, callback){ if(Ext.isEmpty(path)){ if(callback){ @@ -34232,12 +34232,12 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { } }, - + getTreeEl : function(){ return this.body; }, - + onRender : function(ct, position){ Ext.tree.TreePanel.superclass.onRender.call(this, ct, position); this.el.addClass('x-tree'); @@ -34246,7 +34246,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { (this.useArrows ? 'x-tree-arrows' : this.lines ? 'x-tree-lines' : 'x-tree-no-lines')}); }, - + initEvents : function(){ Ext.tree.TreePanel.superclass.initEvents.call(this); @@ -34254,13 +34254,13 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { Ext.dd.ScrollManager.register(this.body); } if((this.enableDD || this.enableDrop) && !this.dropZone){ - + this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || { ddGroup: this.ddGroup || 'TreeDD', appendOnly: this.ddAppendOnly === true }); } if((this.enableDD || this.enableDrag) && !this.dragZone){ - + this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || { ddGroup: this.ddGroup || 'TreeDD', scroll: this.ddScroll @@ -34269,7 +34269,7 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { this.getSelectionModel().init(this); }, - + afterRender : function(){ Ext.tree.TreePanel.superclass.afterRender.call(this); this.renderRoot(); @@ -34285,62 +34285,62 @@ Ext.tree.TreePanel = Ext.extend(Ext.Panel, { this.nodeHash = this.root = this.loader = null; Ext.tree.TreePanel.superclass.beforeDestroy.call(this); }, - - + + destroyRoot : function(){ if(this.root && this.root.destroy){ this.root.destroy(true); } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }); Ext.tree.TreePanel.nodeTypes = {}; @@ -34408,11 +34408,11 @@ Ext.tree.TreeEventModel.prototype = { if(!this.beforeEvent(e)){ return; } - if(Ext.isGecko && !this.trackingDoc){ + if(Ext.isGecko && !this.trackingDoc){ Ext.getBody().on('mouseover', this.trackExit, this); this.trackingDoc = true; } - if(this.lastEcOver){ + if(this.lastEcOver){ this.onIconOut(e, this.lastEcOver); delete this.lastEcOver; } @@ -34470,13 +34470,13 @@ Ext.tree.TreeEventModel.prototype = { this.checkContainerEvent(e, 'contextmenu'); } }, - + checkContainerEvent: function(e, type){ if(this.disabled){ e.stopEvent(); return false; } - this.onContainerEvent(e, type); + this.onContainerEvent(e, type); }, onContainerEvent: function(e, type){ @@ -34538,35 +34538,35 @@ Ext.tree.TreeEventModel.prototype = { } }; Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { - + constructor : function(config){ this.selNode = null; - + this.addEvents( - + 'selectionchange', - + 'beforeselect' ); Ext.apply(this, config); - Ext.tree.DefaultSelectionModel.superclass.constructor.call(this); + Ext.tree.DefaultSelectionModel.superclass.constructor.call(this); }, - + init : function(tree){ this.tree = tree; tree.mon(tree.getTreeEl(), 'keydown', this.onKeyDown, this); tree.on('click', this.onNodeClick, this); }, - + onNodeClick : function(node, e){ this.select(node); }, - - + + select : function(node, selectNextNode){ - + if (!Ext.fly(node.ui.wrap).isVisible() && selectNextNode) { return selectNextNode.call(this, node); } @@ -34583,15 +34583,15 @@ Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { } return node; }, - - + + unselect : function(node, silent){ if(this.selNode == node){ this.clearSelections(silent); - } + } }, - - + + clearSelections : function(silent){ var n = this.selNode; if(n){ @@ -34603,23 +34603,23 @@ Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { } return n; }, - - + + getSelectedNode : function(){ - return this.selNode; + return this.selNode; }, - - + + isSelected : function(node){ - return this.selNode == node; + return this.selNode == node; }, - + selectPrevious : function( s){ if(!(s = s || this.selNode || this.lastSelNode)){ return null; } - + var ps = s.previousSibling; if(ps){ if(!ps.isExpanded() || ps.childNodes.length < 1){ @@ -34637,12 +34637,12 @@ Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { return null; }, - + selectNext : function( s){ if(!(s = s || this.selNode || this.lastSelNode)){ return null; } - + if(s.firstChild && s.isExpanded() && Ext.fly(s.ui.wrap).isVisible()){ return this.select(s.firstChild, this.selectNext); }else if(s.nextSibling){ @@ -34662,7 +34662,7 @@ Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { onKeyDown : function(e){ var s = this.selNode || this.lastSelNode; - + var sm = this; if(!s){ return; @@ -34701,24 +34701,24 @@ Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, { Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { - + constructor : function(config){ this.selNodes = []; this.selMap = {}; this.addEvents( - + 'selectionchange' ); Ext.apply(this, config); - Ext.tree.MultiSelectionModel.superclass.constructor.call(this); + Ext.tree.MultiSelectionModel.superclass.constructor.call(this); }, - + init : function(tree){ this.tree = tree; tree.mon(tree.getTreeEl(), 'keydown', this.onKeyDown, this); tree.on('click', this.onNodeClick, this); }, - + onNodeClick : function(node, e){ if(e.ctrlKey && this.isSelected(node)){ this.unselect(node); @@ -34726,8 +34726,8 @@ Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { this.select(node, e, e.ctrlKey); } }, - - + + select : function(node, e, keepExisting){ if(keepExisting !== true){ this.clearSelections(true); @@ -34743,8 +34743,8 @@ Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { this.fireEvent('selectionchange', this, this.selNodes); return node; }, - - + + unselect : function(node){ if(this.selMap[node.id]){ node.ui.onSelectedChange(false); @@ -34757,8 +34757,8 @@ Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { this.fireEvent('selectionchange', this, this.selNodes); } }, - - + + clearSelections : function(suppressEvent){ var sn = this.selNodes; if(sn.length > 0){ @@ -34772,13 +34772,13 @@ Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { } } }, - - + + isSelected : function(node){ - return this.selMap[node.id] ? true : false; + return this.selMap[node.id] ? true : false; }, - - + + getSelectedNodes : function(){ return this.selNodes.concat([]); }, @@ -34790,49 +34790,49 @@ Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, { selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious }); Ext.data.Tree = Ext.extend(Ext.util.Observable, { - + constructor: function(root){ this.nodeHash = {}; - + this.root = null; if(root){ this.setRootNode(root); } this.addEvents( - + "append", - + "remove", - + "move", - + "insert", - + "beforeappend", - + "beforeremove", - + "beforemove", - + "beforeinsert" ); - Ext.data.Tree.superclass.constructor.call(this); + Ext.data.Tree.superclass.constructor.call(this); }, - - + + pathSeparator: "/", - + proxyNodeEvent : function(){ return this.fireEvent.apply(this, arguments); }, - + getRootNode : function(){ return this.root; }, - + setRootNode : function(node){ this.root = node; node.ownerTree = this; @@ -34841,17 +34841,17 @@ Ext.data.Tree = Ext.extend(Ext.util.Observable, { return node; }, - + getNodeById : function(id){ return this.nodeHash[id]; }, - + registerNode : function(node){ this.nodeHash[node.id] = node; }, - + unregisterNode : function(node){ delete this.nodeHash[node.id]; }, @@ -34863,59 +34863,59 @@ Ext.data.Tree = Ext.extend(Ext.util.Observable, { Ext.data.Node = Ext.extend(Ext.util.Observable, { - + constructor: function(attributes){ - + this.attributes = attributes || {}; this.leaf = this.attributes.leaf; - + this.id = this.attributes.id; if(!this.id){ this.id = Ext.id(null, "xnode-"); this.attributes.id = this.id; } - + this.childNodes = []; - + this.parentNode = null; - + this.firstChild = null; - + this.lastChild = null; - + this.previousSibling = null; - + this.nextSibling = null; this.addEvents({ - + "append" : true, - + "remove" : true, - + "move" : true, - + "insert" : true, - + "beforeappend" : true, - + "beforeremove" : true, - + "beforemove" : true, - + "beforeinsert" : true }); this.listeners = this.attributes.listeners; - Ext.data.Node.superclass.constructor.call(this); + Ext.data.Node.superclass.constructor.call(this); }, - - + + fireEvent : function(evtName){ - + if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){ return false; } - + var ot = this.getOwnerTree(); if(ot){ if(ot.proxyNodeEvent.apply(ot, arguments) === false){ @@ -34925,43 +34925,43 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return true; }, - + isLeaf : function(){ return this.leaf === true; }, - + setFirstChild : function(node){ this.firstChild = node; }, - + setLastChild : function(node){ this.lastChild = node; }, - + isLast : function(){ return (!this.parentNode ? true : this.parentNode.lastChild == this); }, - + isFirst : function(){ return (!this.parentNode ? true : this.parentNode.firstChild == this); }, - + hasChildNodes : function(){ return !this.isLeaf() && this.childNodes.length > 0; }, - + isExpandable : function(){ return this.attributes.expandable || this.hasChildNodes(); }, - + appendChild : function(node){ var multi = false; if(Ext.isArray(node)){ @@ -34969,7 +34969,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { }else if(arguments.length > 1){ multi = arguments; } - + if(multi){ for(var i = 0, len = multi.length; i < len; i++) { this.appendChild(multi[i]); @@ -34980,7 +34980,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } var index = this.childNodes.length; var oldParent = node.parentNode; - + if(oldParent){ if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){ return false; @@ -35011,7 +35011,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + removeChild : function(node, destroy){ var index = this.childNodes.indexOf(node); if(index == -1){ @@ -35021,10 +35021,10 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return false; } - + this.childNodes.splice(index, 1); - + if(node.previousSibling){ node.previousSibling.nextSibling = node.nextSibling; } @@ -35032,7 +35032,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { node.nextSibling.previousSibling = node.previousSibling; } - + if(this.firstChild == node){ this.setFirstChild(node.nextSibling); } @@ -35049,9 +35049,9 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return node; }, - + clear : function(destroy){ - + this.setOwnerTree(null, destroy); this.parentNode = this.previousSibling = this.nextSibling = null; if(destroy){ @@ -35059,9 +35059,9 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + destroy : function( silent){ - + if(silent === true){ this.purgeListeners(); this.clear(true); @@ -35074,12 +35074,12 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + insertBefore : function(node, refNode){ - if(!refNode){ + if(!refNode){ return this.appendChild(node); } - + if(node == refNode){ return false; } @@ -35091,12 +35091,12 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { var oldParent = node.parentNode; var refIndex = index; - + if(oldParent == this && this.childNodes.indexOf(node) < index){ refIndex--; } - + if(oldParent){ if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){ return false; @@ -35125,7 +35125,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return node; }, - + remove : function(destroy){ if (this.parentNode) { this.parentNode.removeChild(this, destroy); @@ -35133,7 +35133,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return this; }, - + removeAll : function(destroy){ var cn = this.childNodes, n; @@ -35143,12 +35143,12 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return this; }, - + item : function(index){ return this.childNodes[index]; }, - + replaceChild : function(newChild, oldChild){ var s = oldChild ? oldChild.nextSibling : null; this.removeChild(oldChild); @@ -35156,14 +35156,14 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return oldChild; }, - + indexOf : function(child){ return this.childNodes.indexOf(child); }, - + getOwnerTree : function(){ - + if(!this.ownerTree){ var p = this; while(p){ @@ -35177,7 +35177,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return this.ownerTree; }, - + getDepth : function(){ var depth = 0; var p = this; @@ -35188,15 +35188,15 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return depth; }, - + setOwnerTree : function(tree, destroy){ - + if(tree != this.ownerTree){ if(this.ownerTree){ this.ownerTree.unregisterNode(this); } this.ownerTree = tree; - + if(destroy !== true){ Ext.each(this.childNodes, function(n){ n.setOwnerTree(tree); @@ -35208,7 +35208,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + setId: function(id){ if(id !== this.id){ var t = this.ownerTree; @@ -35223,10 +35223,10 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + onIdChange: Ext.emptyFn, - + getPath : function(attr){ attr = attr || "id"; var p = this.parentNode; @@ -35239,7 +35239,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return sep + b.join(sep); }, - + bubble : function(fn, scope, args){ var p = this; while(p){ @@ -35250,7 +35250,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + cascade : function(fn, scope, args){ if(fn.apply(scope || this, args || [this]) !== false){ var cs = this.childNodes; @@ -35260,7 +35260,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + eachChild : function(fn, scope, args){ var cs = this.childNodes; for(var i = 0, len = cs.length; i < len; i++) { @@ -35270,14 +35270,14 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + findChild : function(attribute, value, deep){ return this.findChildBy(function(){ return this.attributes[attribute] == value; }, null, deep); }, - + findChildBy : function(fn, scope, deep){ var cs = this.childNodes, len = cs.length, @@ -35294,12 +35294,12 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { return res; } } - + } return null; }, - + sort : function(fn, scope){ var cs = this.childNodes; var len = cs.length; @@ -35320,12 +35320,12 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }, - + contains : function(node){ return node.isAncestor(this); }, - + isAncestor : function(node){ var p = this.parentNode; while(p){ @@ -35342,7 +35342,7 @@ Ext.data.Node = Ext.extend(Ext.util.Observable, { } }); Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { - + constructor : function(attributes){ attributes = attributes || {}; if(Ext.isString(attributes)){ @@ -35356,50 +35356,50 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.draggable = attributes.draggable !== false && attributes.allowDrag !== false; this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false; - + this.text = attributes.text; - + this.disabled = attributes.disabled === true; - + this.hidden = attributes.hidden === true; - + this.addEvents( - + 'textchange', - + 'beforeexpand', - + 'beforecollapse', - + 'expand', - + 'disabledchange', - + 'collapse', - + 'beforeclick', - + 'click', - + 'checkchange', - + 'beforedblclick', - + 'dblclick', - + 'contextmenu', - + 'beforechildrenrendered' ); - + var uiClass = this.attributes.uiProvider || this.defaultUI || Ext.tree.TreeNodeUI; - - - this.ui = new uiClass(this); + + + this.ui = new uiClass(this); }, - + preventHScroll : true, - + isExpanded : function(){ return this.expanded; }, @@ -35414,7 +35414,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { return this.loader || ((owner = this.getOwnerTree()) && owner.loader ? owner.loader : (this.loader = new Ext.tree.TreeLoader())); }, - + setFirstChild : function(node){ var of = this.firstChild; Ext.tree.TreeNode.superclass.setFirstChild.call(this, node); @@ -35426,7 +35426,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + setLastChild : function(node){ var ol = this.lastChild; Ext.tree.TreeNode.superclass.setLastChild.call(this, node); @@ -35438,8 +35438,8 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - - + + appendChild : function(n){ if(!n.render && !Ext.isArray(n)){ n = this.getLoader().createNode(n); @@ -35452,14 +35452,14 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { return node; }, - + removeChild : function(node, destroy){ this.ownerTree.getSelectionModel().unselect(node); Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); - + if(!destroy){ var rendered = node.ui.rendered; - + if(rendered){ node.ui.remove(); } @@ -35475,7 +35475,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { return node; }, - + insertBefore : function(node, refNode){ if(!node.render){ node = this.getLoader().createNode(node); @@ -35488,17 +35488,17 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { return newNode; }, - + setText : function(text){ var oldText = this.text; this.text = this.attributes.text = text; - if(this.rendered){ + if(this.rendered){ this.ui.onTextChange(this, text, oldText); } this.fireEvent('textchange', this, text, oldText); }, - - + + setIconCls : function(cls){ var old = this.attributes.iconCls; this.attributes.iconCls = cls; @@ -35506,8 +35506,8 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.ui.onIconClsChange(this, cls, old); } }, - - + + setTooltip : function(tip, title){ this.attributes.qtip = tip; this.attributes.qtipTitle = title; @@ -35515,16 +35515,16 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.ui.onTipChange(this, tip, title); } }, - - + + setIcon : function(icon){ this.attributes.icon = icon; if(this.rendered){ this.ui.onIconChange(this, icon); } }, - - + + setHref : function(href, target){ this.attributes.href = href; this.attributes.hrefTarget = target; @@ -35532,8 +35532,8 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.ui.onHrefChange(this, href, target); } }, - - + + setCls : function(cls){ var old = this.attributes.cls; this.attributes.cls = cls; @@ -35542,7 +35542,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + select : function(){ var t = this.getOwnerTree(); if(t){ @@ -35550,7 +35550,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + unselect : function(silent){ var t = this.getOwnerTree(); if(t){ @@ -35558,13 +35558,13 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + isSelected : function(){ var t = this.getOwnerTree(); return t ? t.getSelectionModel().isSelected(this) : false; }, - + expand : function(deep, anim, callback, scope){ if(!this.expanded){ if(this.fireEvent('beforeexpand', this, deep, anim) === false){ @@ -35606,7 +35606,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { return this.isRoot && !this.getOwnerTree().rootVisible; }, - + collapse : function(deep, anim, callback, scope){ if(this.expanded && !this.isHiddenRoot()){ if(this.fireEvent('beforecollapse', this, deep, anim) === false){ @@ -35638,14 +35638,14 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + delayedExpand : function(delay){ if(!this.expandProcId){ this.expandProcId = this.expand.defer(delay, this); } }, - + cancelExpand : function(){ if(this.expandProcId){ clearTimeout(this.expandProcId); @@ -35653,7 +35653,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.expandProcId = false; }, - + toggle : function(){ if(this.expanded){ this.collapse(); @@ -35662,17 +35662,17 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + ensureVisible : function(callback, scope){ var tree = this.getOwnerTree(); tree.expandPath(this.parentNode ? this.parentNode.getPath() : this.getPath(), false, function(){ - var node = tree.getNodeById(this.id); + var node = tree.getNodeById(this.id); tree.getTreeEl().scrollChildIntoView(node.ui.anchor); this.runCallback(callback, scope || this, [this]); }.createDelegate(this)); }, - + expandChildNodes : function(deep, anim) { var cs = this.childNodes, i, @@ -35682,7 +35682,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + collapseChildNodes : function(deep){ var cs = this.childNodes; for(var i = 0, len = cs.length; i < len; i++) { @@ -35690,26 +35690,26 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + disable : function(){ this.disabled = true; this.unselect(); - if(this.rendered && this.ui.onDisableChange){ + if(this.rendered && this.ui.onDisableChange){ this.ui.onDisableChange(this, true); } this.fireEvent('disabledchange', this, true); }, - + enable : function(){ this.disabled = false; - if(this.rendered && this.ui.onDisableChange){ + if(this.rendered && this.ui.onDisableChange){ this.ui.onDisableChange(this, false); } this.fireEvent('disabledchange', this, false); }, - + renderChildren : function(suppressEvent){ if(suppressEvent !== false){ this.fireEvent('beforechildrenrendered', this); @@ -35721,7 +35721,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.childrenRendered = true; }, - + sort : function(fn, scope){ Ext.tree.TreeNode.superclass.sort.apply(this, arguments); if(this.childrenRendered){ @@ -35732,11 +35732,11 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + render : function(bulkRender){ this.ui.render(bulkRender); if(!this.rendered){ - + this.getOwnerTree().registerNode(this); this.rendered = true; if(this.expanded){ @@ -35746,7 +35746,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + renderIndent : function(deep, refresh){ if(refresh){ this.ui.childIndent = null; @@ -35770,7 +35770,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { } }, - + destroy : function(silent){ if(silent === true){ this.unselect(true); @@ -35780,7 +35780,7 @@ Ext.tree.TreeNode = Ext.extend(Ext.data.Node, { this.ui = this.loader = null; }, - + onIdChange : function(id){ this.ui.onIdChange(id); } @@ -35791,17 +35791,17 @@ Ext.tree.TreePanel.nodeTypes.node = Ext.tree.TreeNode; this.loaded = config && config.loaded === true; this.loading = false; Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); - + this.addEvents('beforeload', 'load'); - - + + }; Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { expand : function(deep, anim, callback, scope){ - if(this.loading){ + if(this.loading){ var timer; var f = function(){ - if(!this.loading){ + if(!this.loading){ clearInterval(timer); this.expand(deep, anim, callback, scope); } @@ -35823,12 +35823,12 @@ Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { } Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback, scope); }, - - + + isLoading : function(){ - return this.loading; + return this.loading; }, - + loadComplete : function(deep, anim, callback, scope){ this.loading = false; this.loaded = true; @@ -35836,12 +35836,12 @@ Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { this.fireEvent("load", this); this.expand(deep, anim, callback, scope); }, - - + + isLoaded : function(){ return this.loaded; }, - + hasChildNodes : function(){ if(!this.isLeaf() && !this.loaded){ return true; @@ -35850,7 +35850,7 @@ Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { } }, - + reload : function(callback, scope){ this.collapse(false, false); while(this.firstChild){ @@ -35867,7 +35867,7 @@ Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, { Ext.tree.TreePanel.nodeTypes.async = Ext.tree.AsyncTreeNode; Ext.tree.TreeNodeUI = Ext.extend(Object, { - + constructor : function(node){ Ext.apply(this, { node: node, @@ -35875,52 +35875,52 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { animating: false, wasLeaf: true, ecc: 'x-tree-ec-icon x-tree-elbow', - emptyIcon: Ext.BLANK_IMAGE_URL + emptyIcon: Ext.BLANK_IMAGE_URL }); }, - - + + removeChild : function(node){ if(this.rendered){ this.ctNode.removeChild(node.ui.getEl()); } }, - + beforeLoad : function(){ this.addClass("x-tree-node-loading"); }, - + afterLoad : function(){ this.removeClass("x-tree-node-loading"); }, - + onTextChange : function(node, text, oldText){ if(this.rendered){ this.textNode.innerHTML = text; } }, - - + + onIconClsChange : function(node, cls, oldCls){ if(this.rendered){ Ext.fly(this.iconNode).replaceClass(oldCls, cls); } }, - - + + onIconChange : function(node, icon){ if(this.rendered){ - + var empty = Ext.isEmpty(icon); this.iconNode.src = empty ? this.emptyIcon : icon; Ext.fly(this.iconNode)[empty ? 'removeClass' : 'addClass']('x-tree-node-inline-icon'); } }, - - + + onTipChange : function(node, tip, title){ if(this.rendered){ var hasTitle = Ext.isDefined(title); @@ -35937,8 +35937,8 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } } }, - - + + onHrefChange : function(node, href, target){ if(this.rendered){ this.anchor.href = this.getHref(href); @@ -35947,15 +35947,15 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } } }, - - + + onClsChange : function(node, cls, oldCls){ if(this.rendered){ Ext.fly(this.elNode).replaceClass(oldCls, cls); - } + } }, - + onDisableChange : function(node, state){ this.disabled = state; if (this.checkbox) { @@ -35964,18 +35964,18 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { this[state ? 'addClass' : 'removeClass']('x-tree-node-disabled'); }, - + onSelectedChange : function(state){ if(state){ this.focus(); this.addClass("x-tree-selected"); }else{ - + this.removeClass("x-tree-selected"); } }, - + onMove : function(tree, node, oldParent, newParent, index, refNode){ this.childIndent = null; if(this.rendered){ @@ -36009,7 +36009,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + remove : function(){ if(this.rendered){ this.holder = document.createElement("div"); @@ -36017,12 +36017,12 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + fireEvent : function(){ return this.node.fireEvent.apply(this.node, arguments); }, - + initEvents : function(){ this.node.on("move", this.onMove, this); @@ -36043,7 +36043,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + getDDHandles : function(){ return [this.iconNode, this.textNode, this.elNode]; }, @@ -36064,7 +36064,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + onContextMenu : function(e){ if (this.node.hasListener("contextmenu") || this.node.getOwnerTree().hasListener("contextmenu")) { e.preventDefault(); @@ -36073,7 +36073,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + onClick : function(e){ if(this.dropping){ e.stopEvent(); @@ -36102,7 +36102,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + onDblClick : function(e){ e.preventDefault(); if(this.disabled){ @@ -36127,41 +36127,41 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { this.removeClass('x-tree-node-over'); }, - + onCheckChange : function(){ var checked = this.checkbox.checked; - + this.checkbox.defaultChecked = checked; this.node.attributes.checked = checked; this.fireEvent('checkchange', this.node, checked); }, - + ecClick : function(e){ if(!this.animating && this.node.isExpandable()){ this.node.toggle(); } }, - + startDrop : function(){ this.dropping = true; }, - + endDrop : function(){ setTimeout(function(){ this.dropping = false; }.createDelegate(this), 50); }, - + expand : function(){ this.updateExpandIcon(); this.ctNode.style.display = ""; }, - + focus : function(){ if(!this.node.preventHScroll){ try{this.anchor.focus(); @@ -36185,14 +36185,14 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + blur : function(){ try{ this.anchor.blur(); }catch(e){} }, - + animExpand : function(callback){ var ct = Ext.get(this.ctNode); ct.stopFx(); @@ -36215,7 +36215,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { }); }, - + highlight : function(){ var tree = this.node.getOwnerTree(); Ext.fly(this.wrap).highlight( @@ -36224,13 +36224,13 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { ); }, - + collapse : function(){ this.updateExpandIcon(); this.ctNode.style.display = "none"; }, - + animCollapse : function(callback){ var ct = Ext.get(this.ctNode); ct.enableDisplayMode('block'); @@ -36249,7 +36249,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { }); }, - + getContainer : function(){ return this.ctNode; }, @@ -36259,22 +36259,22 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { return this.wrap; }, - + appendDDGhost : function(ghostNode){ ghostNode.appendChild(this.elNode.cloneNode(true)); }, - + getDDRepairXY : function(){ return Ext.lib.Dom.getXY(this.iconNode); }, - + onRender : function(){ this.render(); }, - + render : function(bulkRender){ var n = this.node, a = n.attributes; var targetNode = n.parentNode ? @@ -36302,9 +36302,9 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + renderElements : function(n, a, targetNode, bulkRender){ - + this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : ''; var cb = Ext.isBoolean(a.checked), @@ -36335,15 +36335,15 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { var index = 3; if(cb){ this.checkbox = cs[3]; - + this.checkbox.defaultChecked = this.checkbox.checked; index++; } this.anchor = cs[index]; this.textNode = cs[index].firstChild; }, - - + + getHref : function(href){ return Ext.isEmpty(href) ? (Ext.isGecko ? '' : '#') : href; }, @@ -36368,7 +36368,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { return this.checkbox ? this.checkbox.checked : false; }, - + updateExpandIcon : function(){ if(this.rendered){ var n = this.node, @@ -36410,14 +36410,14 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { } }, - + onIdChange: function(id){ if(this.rendered){ this.elNode.setAttribute('ext:tree-node-id', id); } }, - + getChildIndent : function(){ if(!this.childIndent){ var buf = [], @@ -36437,7 +36437,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { return this.childIndent; }, - + renderIndent : function(){ if(this.rendered){ var indent = "", @@ -36445,7 +36445,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { if(p){ indent = p.ui.getChildIndent(); } - if(this.indentMarkup != indent){ + if(this.indentMarkup != indent){ this.indentNode.innerHTML = indent; this.indentMarkup = indent; } @@ -36470,7 +36470,7 @@ Ext.tree.TreeNodeUI = Ext.extend(Object, { Ext.tree.RootTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, { - + render : function(){ if(!this.rendered){ var targetNode = this.node.ownerTree.innerCt.dom; @@ -36487,11 +36487,11 @@ Ext.tree.TreeLoader = function(config){ Ext.apply(this, config); this.addEvents( - + "beforeload", - + "load", - + "loadexception" ); Ext.tree.TreeLoader.superclass.constructor.call(this); @@ -36501,38 +36501,38 @@ Ext.tree.TreeLoader = function(config){ }; Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { - - - - - - - + + + + + + + uiProviders : {}, - + clearOnLoad : true, - + paramOrder: undefined, - + paramsAsHash: false, - + nodeParameter: 'node', - + directFn : undefined, - + load : function(node, callback, scope){ if(this.clearOnLoad){ while(node.firstChild){ node.removeChild(node.firstChild); } } - if(this.doPreload(node)){ + if(this.doPreload(node)){ this.runCallback(callback, scope || node, [node]); }else if(this.directFn || this.dataUrl || this.url){ this.requestData(node, callback, scope || node); @@ -36541,7 +36541,7 @@ Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { doPreload : function(node){ if(node.attributes.children){ - if(node.childNodes.length < 1){ + if(node.childNodes.length < 1){ var cs = node.attributes.children; node.beginUpdate(); for(var i = 0, len = cs.length; i < len; i++){ @@ -36567,7 +36567,7 @@ Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { if(this.directFn){ var buf = [node.id]; if(po){ - + if(np && po.indexOf(np) > -1){ buf = []; } @@ -36602,8 +36602,8 @@ Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { }); } }else{ - - + + this.runCallback(callback, scope || node, []); } }, @@ -36622,7 +36622,7 @@ Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { } }, - + runCallback: function(cb, scope, args){ if(Ext.isFunction(cb)){ cb.apply(scope, args); @@ -36639,9 +36639,9 @@ Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, { } }, - + createNode : function(attr){ - + if(this.baseAttrs){ Ext.applyIf(attr, this.baseAttrs); } @@ -36709,13 +36709,13 @@ Ext.tree.TreeFilter.prototype = { autoClear:false, remove:false, - + filter : function(value, attr, startNode){ attr = attr || "text"; var f; if(typeof value == "string"){ var vlen = value.length; - + if(vlen == 0 && this.clearBlank){ this.clear(); return; @@ -36724,7 +36724,7 @@ Ext.tree.TreeFilter.prototype = { f = function(n){ return n.attributes[attr].substr(0, vlen).toLowerCase() == value; }; - }else if(value.exec){ + }else if(value.exec){ f = function(n){ return value.test(n.attributes[attr]); }; @@ -36734,7 +36734,7 @@ Ext.tree.TreeFilter.prototype = { this.filterBy(f, null, startNode); }, - + filterBy : function(fn, scope, startNode){ startNode = startNode || this.tree.root; if(this.autoClear){ @@ -36769,7 +36769,7 @@ Ext.tree.TreeFilter.prototype = { } }, - + clear : function(){ var t = this.tree; var af = this.filtered; @@ -36786,14 +36786,14 @@ Ext.tree.TreeFilter.prototype = { }; Ext.tree.TreeSorter = Ext.extend(Object, { - + constructor: function(tree, config){ - - - - - - + + + + + + Ext.apply(this, config); tree.on({ @@ -36817,7 +36817,7 @@ Ext.tree.TreeSorter = Ext.extend(Object, { this.sortFn = function(n1, n2){ var attr1 = n1.attributes, attr2 = n2.attributes; - + if(folderSort){ if(attr1[leafAttr] && !attr2[leafAttr]){ return 1; @@ -36830,7 +36830,7 @@ Ext.tree.TreeSorter = Ext.extend(Object, { prop2 = attr2[prop], v1 = sortType ? sortType(prop1, n1) : (caseSensitive ? prop1 : prop1.toUpperCase()), v2 = sortType ? sortType(prop2, n2) : (caseSensitive ? prop2 : prop2.toUpperCase()); - + if(v1 < v2){ return desc ? 1 : -1; }else if(v1 > v2){ @@ -36839,7 +36839,7 @@ Ext.tree.TreeSorter = Ext.extend(Object, { return 0; }; }, - + doSort : function(node){ node.sort(this.sortFn); }, @@ -36855,48 +36855,48 @@ Ext.tree.TreeSorter = Ext.extend(Object, { if(p && p.childrenRendered){ this.doSort.defer(1, this, [p]); } - } + } }); if(Ext.dd.DropZone){ - + Ext.tree.TreeDropZone = function(tree, config){ - + this.allowParentInsert = config.allowParentInsert || false; - + this.allowContainerDrop = config.allowContainerDrop || false; - + this.appendOnly = config.appendOnly || false; Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.getTreeEl(), config); - + this.tree = tree; - + this.dragOverData = {}; - + this.lastInsertClass = "x-tree-no-status"; }; Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { - + ddGroup : "TreeDD", - + expandDelay : 1000, - + expandNode : function(node){ if(node.hasChildNodes() && !node.isExpanded()){ node.expand(false, null, this.triggerCacheRefresh.createDelegate(this)); } }, - + queueExpand : function(node){ this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]); }, - + cancelExpand : function(){ if(this.expandProcId){ clearTimeout(this.expandProcId); @@ -36904,12 +36904,12 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { } }, - + isValidDropPoint : function(n, pt, dd, e, data){ if(!n || !data){ return false; } var targetNode = n.node; var dropNode = data.node; - + if(!(targetNode && targetNode.isTarget && pt)){ return false; } @@ -36922,7 +36922,7 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){ return false; } - + var overEvent = this.dragOverData; overEvent.tree = this.tree; overEvent.target = targetNode; @@ -36931,16 +36931,16 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { overEvent.source = dd; overEvent.rawEvent = e; overEvent.dropNode = dropNode; - overEvent.cancel = false; + overEvent.cancel = false; var result = this.tree.fireEvent("nodedragover", overEvent); return overEvent.cancel === false && result !== false; }, - + getDropPoint : function(e, n, dd){ var tn = n.node; if(tn.isRoot){ - return tn.allowChildren !== false ? "append" : false; + return tn.allowChildren !== false ? "append" : false; } var dragEl = n.ddel; var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight; @@ -36963,11 +36963,11 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { } }, - + onNodeEnter : function(n, dd, e, data){ this.cancelExpand(); }, - + onContainerOver : function(dd, e, data) { if (this.allowContainerDrop && this.isValidDropPoint({ ddel: this.tree.getRootNode().ui.elNode, node: this.tree.getRootNode() }, "append", dd, e, data)) { return this.dropAllowed; @@ -36975,19 +36975,19 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { return this.dropNotAllowed; }, - + onNodeOver : function(n, dd, e, data){ var pt = this.getDropPoint(e, n, dd); var node = n.node; - - + + if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){ this.queueExpand(node); }else if(pt != "append"){ this.cancelExpand(); } - - + + var returnCls = this.dropNotAllowed; if(this.isValidDropPoint(n, pt, dd, e, data)){ if(pt){ @@ -37012,13 +37012,13 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { return returnCls; }, - + onNodeOut : function(n, dd, e, data){ this.cancelExpand(); this.removeDropIndicators(n); }, - + onNodeDrop : function(n, dd, e, data){ var point = this.getDropPoint(e, n, dd); var targetNode = n.node; @@ -37027,22 +37027,22 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { targetNode.ui.endDrop(); return false; } - + var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null); return this.processDrop(targetNode, data, point, dd, e, dropNode); }, - + onContainerDrop : function(dd, e, data){ if (this.allowContainerDrop && this.isValidDropPoint({ ddel: this.tree.getRootNode().ui.elNode, node: this.tree.getRootNode() }, "append", dd, e, data)) { - var targetNode = this.tree.getRootNode(); + var targetNode = this.tree.getRootNode(); targetNode.ui.startDrop(); var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, 'append', e) : null); return this.processDrop(targetNode, data, 'append', dd, e, dropNode); } return false; }, - - + + processDrop: function(target, data, point, dd, e, dropNode){ var dropEvent = { tree : this.tree, @@ -37060,7 +37060,7 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { target.ui.endDrop(); return dropEvent.dropStatus; } - + target = dropEvent.target; if(point == 'append' && !target.isExpanded()){ target.expand(false, null, function(){ @@ -37072,7 +37072,7 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { return true; }, - + completeDrop : function(de){ var ns = de.dropNode, p = de.point, t = de.target; if(!Ext.isArray(ns)){ @@ -37097,7 +37097,7 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { this.tree.fireEvent("nodedrop", de); }, - + afterNodeMoved : function(dd, data, e, targetNode, dropNode){ if(Ext.enableFx && this.tree.hlDrop){ dropNode.ui.focus(); @@ -37106,12 +37106,12 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e); }, - + getTree : function(){ return this.tree; }, - + removeDropIndicators : function(n){ if(n && n.ddel){ var el = n.ddel; @@ -37123,40 +37123,40 @@ Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, { } }, - + beforeDragDrop : function(target, e, id){ this.cancelExpand(); return true; }, - + afterRepair : function(data){ if(data && Ext.enableFx){ data.node.ui.highlight(); } this.hideProxy(); - } + } }); } if(Ext.dd.DragZone){ Ext.tree.TreeDragZone = function(tree, config){ Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.innerCt, config); - + this.tree = tree; }; Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { - + ddGroup : "TreeDD", - + onBeforeDrag : function(data, e){ var n = data.node; return n && n.draggable && !n.disabled; }, - + onInitDrag : function(e){ var data = this.dragData; this.tree.getSelectionModel().select(data.node); @@ -37166,32 +37166,32 @@ Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { this.tree.fireEvent("startdrag", this.tree, data.node, e); }, - + getRepairXY : function(e, data){ return data.node.ui.getDDRepairXY(); }, - + onEndDrag : function(data, e){ this.tree.eventModel.enable.defer(100, this.tree.eventModel); this.tree.fireEvent("enddrag", this.tree, data.node, e); }, - + onValidDrop : function(dd, e, id){ this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e); this.hideProxy(); }, - + beforeInvalidDrop : function(e, id){ - + var sm = this.tree.getSelectionModel(); sm.clearSelections(); sm.select(this.dragData.node); }, - - + + afterRepair : function(){ if (Ext.enableFx && this.tree.hlDrop) { Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9"); @@ -37203,7 +37203,7 @@ Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, { Ext.tree.TreeEditor = function(tree, fc, config){ fc = fc || {}; var field = fc.events ? fc : new Ext.form.TextField(fc); - + Ext.tree.TreeEditor.superclass.constructor.call(this, field, config); this.tree = tree; @@ -37216,21 +37216,21 @@ Ext.tree.TreeEditor = function(tree, fc, config){ }; Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { - + alignment: "l-l", - + autoSize: false, - + hideEl : false, - + cls: "x-small-editor x-tree-editor", - + shim:false, - + shadow:"frame", - + maxWidth: 250, - + editDelay : 350, initEditor : function(tree){ @@ -37239,21 +37239,21 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { beforeclick: this.beforeNodeClick, dblclick : this.onNodeDblClick }); - + this.on({ scope : this, complete : this.updateNode, beforestartedit: this.fitToTree, specialkey : this.onSpecialKey }); - + this.on('startedit', this.bindScroll, this, {delay:10}); }, - + fitToTree : function(ed, el){ var td = this.tree.getTreeEl().dom, nd = el.dom; - if(td.scrollLeft > nd.offsetLeft){ + if(td.scrollLeft > nd.offsetLeft){ td.scrollLeft = nd.offsetLeft; } var w = Math.min( @@ -37262,11 +37262,11 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { this.setSize(w, ''); }, - + triggerEdit : function(node, defer){ this.completeEdit(); if(node.attributes.editable !== false){ - + this.editNode = node; if(this.tree.autoScroll){ Ext.fly(node.ui.getEl()).scrollIntoView(this.tree.body); @@ -37280,12 +37280,12 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { } }, - + bindScroll : function(){ this.tree.getTreeEl().on('scroll', this.cancelEdit, this); }, - + beforeNodeClick : function(node, e){ clearTimeout(this.autoEditTimer); if(this.tree.getSelectionModel().isSelected(node)){ @@ -37298,13 +37298,13 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { clearTimeout(this.autoEditTimer); }, - + updateNode : function(ed, value){ this.tree.getTreeEl().un('scroll', this.cancelEdit, this); this.editNode.setText(value); }, - + onHide : function(){ Ext.tree.TreeEditor.superclass.onHide.call(this); if(this.editNode){ @@ -37312,7 +37312,7 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { } }, - + onSpecialKey : function(field, e){ var k = e.getKey(); if(k == e.ESC){ @@ -37323,7 +37323,7 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { this.completeEdit(); } }, - + onDestroy : function(){ clearTimeout(this.autoEditTimer); Ext.tree.TreeEditor.superclass.onDestroy.call(this); @@ -37333,1494 +37333,50 @@ Ext.extend(Ext.tree.TreeEditor, Ext.Editor, { } }); -var swfobject = function() { - - var UNDEF = "undefined", - OBJECT = "object", - SHOCKWAVE_FLASH = "Shockwave Flash", - SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", - FLASH_MIME_TYPE = "application/x-shockwave-flash", - EXPRESS_INSTALL_ID = "SWFObjectExprInst", - ON_READY_STATE_CHANGE = "onreadystatechange", - - win = window, - doc = document, - nav = navigator, - - plugin = false, - domLoadFnArr = [main], - regObjArr = [], - objIdArr = [], - listenersArr = [], - storedAltContent, - storedAltContentId, - storedCallbackFn, - storedCallbackObj, - isDomLoaded = false, - isExpressInstallActive = false, - dynamicStylesheet, - dynamicStylesheetMedia, - autoHideShow = true, - - - ua = function() { - var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF, - u = nav.userAgent.toLowerCase(), - p = nav.platform.toLowerCase(), - windows = p ? (/win/).test(p) : /win/.test(u), - mac = p ? (/mac/).test(p) : /mac/.test(u), - webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, - ie = !+"\v1", - playerVersion = [0,0,0], - d = null; - if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) { - d = nav.plugins[SHOCKWAVE_FLASH].description; - if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { - plugin = true; - ie = false; - d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); - playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); - playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); - playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0; - } - } - else if (typeof win.ActiveXObject != UNDEF) { - try { - var a = new ActiveXObject(SHOCKWAVE_FLASH_AX); - if (a) { - d = a.GetVariable("$version"); - if (d) { - ie = true; - d = d.split(" ")[1].split(","); - playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; - } - } - } - catch(e) {} - } - return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac }; - }(), - - - onDomLoad = function() { - if (!ua.w3) { return; } - if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { - callDomLoadFunctions(); - } - if (!isDomLoaded) { - if (typeof doc.addEventListener != UNDEF) { - doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false); - } - if (ua.ie && ua.win) { - doc.attachEvent(ON_READY_STATE_CHANGE, function() { - if (doc.readyState == "complete") { - doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee); - callDomLoadFunctions(); - } - }); - if (win == top) { - (function(){ - if (isDomLoaded) { return; } - try { - doc.documentElement.doScroll("left"); - } - catch(e) { - setTimeout(arguments.callee, 0); - return; - } - callDomLoadFunctions(); - })(); - } - } - if (ua.wk) { - (function(){ - if (isDomLoaded) { return; } - if (!(/loaded|complete/).test(doc.readyState)) { - setTimeout(arguments.callee, 0); - return; - } - callDomLoadFunctions(); - })(); - } - addLoadEvent(callDomLoadFunctions); - } - }(); - - function callDomLoadFunctions() { - if (isDomLoaded) { return; } - try { - var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span")); - t.parentNode.removeChild(t); - } - catch (e) { return; } - isDomLoaded = true; - var dl = domLoadFnArr.length; - for (var i = 0; i < dl; i++) { - domLoadFnArr[i](); - } - } - - function addDomLoadEvent(fn) { - if (isDomLoaded) { - fn(); - } - else { - domLoadFnArr[domLoadFnArr.length] = fn; - } - } - - - function addLoadEvent(fn) { - if (typeof win.addEventListener != UNDEF) { - win.addEventListener("load", fn, false); - } - else if (typeof doc.addEventListener != UNDEF) { - doc.addEventListener("load", fn, false); - } - else if (typeof win.attachEvent != UNDEF) { - addListener(win, "onload", fn); - } - else if (typeof win.onload == "function") { - var fnOld = win.onload; - win.onload = function() { - fnOld(); - fn(); - }; - } - else { - win.onload = fn; - } - } - - - function main() { - if (plugin) { - testPlayerVersion(); - } - else { - matchVersions(); - } - } - - - function testPlayerVersion() { - var b = doc.getElementsByTagName("body")[0]; - var o = createElement(OBJECT); - o.setAttribute("type", FLASH_MIME_TYPE); - var t = b.appendChild(o); - if (t) { - var counter = 0; - (function(){ - if (typeof t.GetVariable != UNDEF) { - var d = t.GetVariable("$version"); - if (d) { - d = d.split(" ")[1].split(","); - ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; - } - } - else if (counter < 10) { - counter++; - setTimeout(arguments.callee, 10); - return; - } - b.removeChild(o); - t = null; - matchVersions(); - })(); - } - else { - matchVersions(); - } - } - - - function matchVersions() { - var rl = regObjArr.length; - if (rl > 0) { - for (var i = 0; i < rl; i++) { - var id = regObjArr[i].id; - var cb = regObjArr[i].callbackFn; - var cbObj = {success:false, id:id}; - if (ua.pv[0] > 0) { - var obj = getElementById(id); - if (obj) { - if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { - setVisibility(id, true); - if (cb) { - cbObj.success = true; - cbObj.ref = getObjectById(id); - cb(cbObj); - } - } - else if (regObjArr[i].expressInstall && canExpressInstall()) { - var att = {}; - att.data = regObjArr[i].expressInstall; - att.width = obj.getAttribute("width") || "0"; - att.height = obj.getAttribute("height") || "0"; - if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); } - if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); } - - var par = {}; - var p = obj.getElementsByTagName("param"); - var pl = p.length; - for (var j = 0; j < pl; j++) { - if (p[j].getAttribute("name").toLowerCase() != "movie") { - par[p[j].getAttribute("name")] = p[j].getAttribute("value"); - } - } - showExpressInstall(att, par, id, cb); - } - else { - displayAltContent(obj); - if (cb) { cb(cbObj); } - } - } - } - else { - setVisibility(id, true); - if (cb) { - var o = getObjectById(id); - if (o && typeof o.SetVariable != UNDEF) { - cbObj.success = true; - cbObj.ref = o; - } - cb(cbObj); - } - } - } - } - } - - function getObjectById(objectIdStr) { - var r = null; - var o = getElementById(objectIdStr); - if (o && o.nodeName == "OBJECT") { - if (typeof o.SetVariable != UNDEF) { - r = o; - } - else { - var n = o.getElementsByTagName(OBJECT)[0]; - if (n) { - r = n; - } - } - } - return r; - } - - - function canExpressInstall() { - return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312); - } - - - function showExpressInstall(att, par, replaceElemIdStr, callbackFn) { - isExpressInstallActive = true; - storedCallbackFn = callbackFn || null; - storedCallbackObj = {success:false, id:replaceElemIdStr}; - var obj = getElementById(replaceElemIdStr); - if (obj) { - if (obj.nodeName == "OBJECT") { - storedAltContent = abstractAltContent(obj); - storedAltContentId = null; - } - else { - storedAltContent = obj; - storedAltContentId = replaceElemIdStr; - } - att.id = EXPRESS_INSTALL_ID; - if (typeof att.width == UNDEF || (!(/%$/).test(att.width) && parseInt(att.width, 10) < 310)) { - att.width = "310"; - } - - if (typeof att.height == UNDEF || (!(/%$/).test(att.height) && parseInt(att.height, 10) < 137)) { - att.height = "137"; - } - doc.title = doc.title.slice(0, 47) + " - Flash Player Installation"; - var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn", - fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title; - if (typeof par.flashvars != UNDEF) { - par.flashvars += "&" + fv; - } - else { - par.flashvars = fv; - } - - - if (ua.ie && ua.win && obj.readyState != 4) { - var newObj = createElement("div"); - replaceElemIdStr += "SWFObjectNew"; - newObj.setAttribute("id", replaceElemIdStr); - obj.parentNode.insertBefore(newObj, obj); - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - obj.parentNode.removeChild(obj); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - createSWF(att, par, replaceElemIdStr); - } - } - - - function displayAltContent(obj) { - if (ua.ie && ua.win && obj.readyState != 4) { - - - var el = createElement("div"); - obj.parentNode.insertBefore(el, obj); - el.parentNode.replaceChild(abstractAltContent(obj), el); - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - obj.parentNode.removeChild(obj); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - else { - obj.parentNode.replaceChild(abstractAltContent(obj), obj); - } - } - - function abstractAltContent(obj) { - var ac = createElement("div"); - if (ua.win && ua.ie) { - ac.innerHTML = obj.innerHTML; - } - else { - var nestedObj = obj.getElementsByTagName(OBJECT)[0]; - if (nestedObj) { - var c = nestedObj.childNodes; - if (c) { - var cl = c.length; - for (var i = 0; i < cl; i++) { - if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) { - ac.appendChild(c[i].cloneNode(true)); - } - } - } - } - } - return ac; - } - - - function createSWF(attObj, parObj, id) { - var r, el = getElementById(id); - if (ua.wk && ua.wk < 312) { return r; } - if (el) { - if (typeof attObj.id == UNDEF) { - attObj.id = id; - } - if (ua.ie && ua.win) { - var att = ""; - for (var i in attObj) { - if (attObj[i] != Object.prototype[i]) { - if (i.toLowerCase() == "data") { - parObj.movie = attObj[i]; - } - else if (i.toLowerCase() == "styleclass") { - att += ' class="' + attObj[i] + '"'; - } - else if (i.toLowerCase() != "classid") { - att += ' ' + i + '="' + attObj[i] + '"'; - } - } - } - var par = ""; - for (var j in parObj) { - if (parObj[j] != Object.prototype[j]) { - par += ''; - } - } - el.outerHTML = '' + par + ''; - objIdArr[objIdArr.length] = attObj.id; - r = getElementById(attObj.id); - } - else { - var o = createElement(OBJECT); - o.setAttribute("type", FLASH_MIME_TYPE); - for (var m in attObj) { - if (attObj[m] != Object.prototype[m]) { - if (m.toLowerCase() == "styleclass") { - o.setAttribute("class", attObj[m]); - } - else if (m.toLowerCase() != "classid") { - o.setAttribute(m, attObj[m]); - } - } - } - for (var n in parObj) { - if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { - createObjParam(o, n, parObj[n]); - } - } - el.parentNode.replaceChild(o, el); - r = o; - } - } - return r; - } - - function createObjParam(el, pName, pValue) { - var p = createElement("param"); - p.setAttribute("name", pName); - p.setAttribute("value", pValue); - el.appendChild(p); - } - - - function removeSWF(id) { - var obj = getElementById(id); - if (obj && obj.nodeName == "OBJECT") { - if (ua.ie && ua.win) { - obj.style.display = "none"; - (function(){ - if (obj.readyState == 4) { - removeObjectInIE(id); - } - else { - setTimeout(arguments.callee, 10); - } - })(); - } - else { - obj.parentNode.removeChild(obj); - } - } - } - - function removeObjectInIE(id) { - var obj = getElementById(id); - if (obj) { - for (var i in obj) { - if (typeof obj[i] == "function") { - obj[i] = null; - } - } - obj.parentNode.removeChild(obj); - } - } - - - function getElementById(id) { - var el = null; - try { - el = doc.getElementById(id); - } - catch (e) {} - return el; - } - - function createElement(el) { - return doc.createElement(el); - } - - - function addListener(target, eventType, fn) { - target.attachEvent(eventType, fn); - listenersArr[listenersArr.length] = [target, eventType, fn]; - } - - - function hasPlayerVersion(rv) { - var pv = ua.pv, v = rv.split("."); - v[0] = parseInt(v[0], 10); - v[1] = parseInt(v[1], 10) || 0; - v[2] = parseInt(v[2], 10) || 0; - return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; - } - - - function createCSS(sel, decl, media, newStyle) { - if (ua.ie && ua.mac) { return; } - var h = doc.getElementsByTagName("head")[0]; - if (!h) { return; } - var m = (media && typeof media == "string") ? media : "screen"; - if (newStyle) { - dynamicStylesheet = null; - dynamicStylesheetMedia = null; - } - if (!dynamicStylesheet || dynamicStylesheetMedia != m) { - - var s = createElement("style"); - s.setAttribute("type", "text/css"); - s.setAttribute("media", m); - dynamicStylesheet = h.appendChild(s); - if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) { - dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1]; - } - dynamicStylesheetMedia = m; - } - - if (ua.ie && ua.win) { - if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) { - dynamicStylesheet.addRule(sel, decl); - } - } - else { - if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) { - dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}")); - } - } - } - - function setVisibility(id, isVisible) { - if (!autoHideShow) { return; } - var v = isVisible ? "visible" : "hidden"; - if (isDomLoaded && getElementById(id)) { - getElementById(id).style.visibility = v; - } - else { - createCSS("#" + id, "visibility:" + v); - } - } - - - function urlEncodeIfNecessary(s) { - var regex = /[\\\"<>\.;]/; - var hasBadChars = regex.exec(s) != null; - return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s; - } - - - var cleanup = function() { - if (ua.ie && ua.win) { - window.attachEvent("onunload", function() { - - var ll = listenersArr.length; - for (var i = 0; i < ll; i++) { - listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]); - } - - var il = objIdArr.length; - for (var j = 0; j < il; j++) { - removeSWF(objIdArr[j]); - } - - for (var k in ua) { - ua[k] = null; - } - ua = null; - for (var l in swfobject) { - swfobject[l] = null; - } - swfobject = null; - window.detachEvent('onunload', arguments.callee); - }); - } - }(); - - return { - - registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) { - if (ua.w3 && objectIdStr && swfVersionStr) { - var regObj = {}; - regObj.id = objectIdStr; - regObj.swfVersion = swfVersionStr; - regObj.expressInstall = xiSwfUrlStr; - regObj.callbackFn = callbackFn; - regObjArr[regObjArr.length] = regObj; - setVisibility(objectIdStr, false); - } - else if (callbackFn) { - callbackFn({success:false, id:objectIdStr}); - } - }, - - getObjectById: function(objectIdStr) { - if (ua.w3) { - return getObjectById(objectIdStr); - } - }, - - embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) { - var callbackObj = {success:false, id:replaceElemIdStr}; - if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) { - setVisibility(replaceElemIdStr, false); - addDomLoadEvent(function() { - widthStr += ""; - heightStr += ""; - var att = {}; - if (attObj && typeof attObj === OBJECT) { - for (var i in attObj) { - att[i] = attObj[i]; - } - } - att.data = swfUrlStr; - att.width = widthStr; - att.height = heightStr; - var par = {}; - if (parObj && typeof parObj === OBJECT) { - for (var j in parObj) { - par[j] = parObj[j]; - } - } - if (flashvarsObj && typeof flashvarsObj === OBJECT) { - for (var k in flashvarsObj) { - if (typeof par.flashvars != UNDEF) { - par.flashvars += "&" + k + "=" + flashvarsObj[k]; - } - else { - par.flashvars = k + "=" + flashvarsObj[k]; - } - } - } - if (hasPlayerVersion(swfVersionStr)) { - var obj = createSWF(att, par, replaceElemIdStr); - if (att.id == replaceElemIdStr) { - setVisibility(replaceElemIdStr, true); - } - callbackObj.success = true; - callbackObj.ref = obj; - } - else if (xiSwfUrlStr && canExpressInstall()) { - att.data = xiSwfUrlStr; - showExpressInstall(att, par, replaceElemIdStr, callbackFn); - return; - } - else { - setVisibility(replaceElemIdStr, true); - } - if (callbackFn) { callbackFn(callbackObj); } - }); - } - else if (callbackFn) { callbackFn(callbackObj); } - }, - - switchOffAutoHideShow: function() { - autoHideShow = false; - }, - - ua: ua, - - getFlashPlayerVersion: function() { - return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; - }, - - hasFlashPlayerVersion: hasPlayerVersion, - - createSWF: function(attObj, parObj, replaceElemIdStr) { - if (ua.w3) { - return createSWF(attObj, parObj, replaceElemIdStr); - } - else { - return undefined; - } - }, - - showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) { - if (ua.w3 && canExpressInstall()) { - showExpressInstall(att, par, replaceElemIdStr, callbackFn); - } - }, - - removeSWF: function(objElemIdStr) { - if (ua.w3) { - removeSWF(objElemIdStr); - } - }, - - createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) { - if (ua.w3) { - createCSS(selStr, declStr, mediaStr, newStyleBoolean); - } - }, - - addDomLoadEvent: addDomLoadEvent, - - addLoadEvent: addLoadEvent, - - getQueryParamValue: function(param) { - var q = doc.location.search || doc.location.hash; - if (q) { - if (/\?/.test(q)) { q = q.split("?")[1]; } - if (param == null) { - return urlEncodeIfNecessary(q); - } - var pairs = q.split("&"); - for (var i = 0; i < pairs.length; i++) { - if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { - return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1))); - } - } - } - return ""; - }, - - - expressInstallCallback: function() { - if (isExpressInstallActive) { - var obj = getElementById(EXPRESS_INSTALL_ID); - if (obj && storedAltContent) { - obj.parentNode.replaceChild(storedAltContent, obj); - if (storedAltContentId) { - setVisibility(storedAltContentId, true); - if (ua.ie && ua.win) { storedAltContent.style.display = "block"; } - } - if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); } - } - isExpressInstallActive = false; - } - } - }; -}(); - -Ext.FlashComponent = Ext.extend(Ext.BoxComponent, { - - flashVersion : '9.0.115', - - - backgroundColor: '#ffffff', - - - wmode: 'opaque', - - - flashVars: undefined, - - - flashParams: undefined, - - - url: undefined, - swfId : undefined, - swfWidth: '100%', - swfHeight: '100%', - - - expressInstall: false, - - initComponent : function(){ - Ext.FlashComponent.superclass.initComponent.call(this); - - this.addEvents( - - 'initialize' - ); - }, - - onRender : function(){ - Ext.FlashComponent.superclass.onRender.apply(this, arguments); - - var params = Ext.apply({ - allowScriptAccess: 'always', - bgcolor: this.backgroundColor, - wmode: this.wmode - }, this.flashParams), vars = Ext.apply({ - allowedDomain: document.location.hostname, - YUISwfId: this.getId(), - YUIBridgeCallback: 'Ext.FlashEventProxy.onEvent' - }, this.flashVars); - - new swfobject.embedSWF(this.url, this.id, this.swfWidth, this.swfHeight, this.flashVersion, - this.expressInstall ? Ext.FlashComponent.EXPRESS_INSTALL_URL : undefined, vars, params); - - this.swf = Ext.getDom(this.id); - this.el = Ext.get(this.swf); - }, - - getSwfId : function(){ - return this.swfId || (this.swfId = "extswf" + (++Ext.Component.AUTO_ID)); - }, - - getId : function(){ - return this.id || (this.id = "extflashcmp" + (++Ext.Component.AUTO_ID)); - }, - - onFlashEvent : function(e){ - switch(e.type){ - case "swfReady": - this.initSwf(); - return; - case "log": - return; - } - e.component = this; - this.fireEvent(e.type.toLowerCase().replace(/event$/, ''), e); - }, - - initSwf : function(){ - this.onSwfReady(!!this.isInitialized); - this.isInitialized = true; - this.fireEvent('initialize', this); - }, - - beforeDestroy: function(){ - if(this.rendered){ - swfobject.removeSWF(this.swf.id); - } - Ext.FlashComponent.superclass.beforeDestroy.call(this); - }, - - onSwfReady : Ext.emptyFn -}); - - -Ext.FlashComponent.EXPRESS_INSTALL_URL = 'http:/' + '/swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf'; - -Ext.reg('flash', Ext.FlashComponent); -Ext.FlashEventProxy = { - onEvent : function(id, e){ - var fp = Ext.getCmp(id); - if(fp){ - fp.onFlashEvent(e); - }else{ - arguments.callee.defer(10, this, [id, e]); - } - } -}; - - Ext.chart.Chart = Ext.extend(Ext.FlashComponent, { - refreshBuffer: 100, - - - - - chartStyle: { - padding: 10, - animationEnabled: true, - font: { - name: 'Tahoma', - color: 0x444444, - size: 11 - }, - dataTip: { - padding: 5, - border: { - color: 0x99bbe8, - size:1 - }, - background: { - color: 0xDAE7F6, - alpha: .9 - }, - font: { - name: 'Tahoma', - color: 0x15428B, - size: 10, - bold: true - } - } - }, - - - - - extraStyle: null, - - - seriesStyles: null, - - - disableCaching: Ext.isIE || Ext.isOpera, - disableCacheParam: '_dc', - - initComponent : function(){ - Ext.chart.Chart.superclass.initComponent.call(this); - if(!this.url){ - this.url = Ext.chart.Chart.CHART_URL; - } - if(this.disableCaching){ - this.url = Ext.urlAppend(this.url, String.format('{0}={1}', this.disableCacheParam, new Date().getTime())); - } - this.addEvents( - 'itemmouseover', - 'itemmouseout', - 'itemclick', - 'itemdoubleclick', - 'itemdragstart', - 'itemdrag', - 'itemdragend', - - 'beforerefresh', - - 'refresh' - ); - this.store = Ext.StoreMgr.lookup(this.store); - }, - - - setStyle: function(name, value){ - this.swf.setStyle(name, Ext.encode(value)); - }, - - - setStyles: function(styles){ - this.swf.setStyles(Ext.encode(styles)); - }, - - - setSeriesStyles: function(styles){ - this.seriesStyles = styles; - var s = []; - Ext.each(styles, function(style){ - s.push(Ext.encode(style)); - }); - this.swf.setSeriesStyles(s); - }, - - setCategoryNames : function(names){ - this.swf.setCategoryNames(names); - }, - - setLegendRenderer : function(fn, scope){ - var chart = this; - scope = scope || chart; - chart.removeFnProxy(chart.legendFnName); - chart.legendFnName = chart.createFnProxy(function(name){ - return fn.call(scope, name); - }); - chart.swf.setLegendLabelFunction(chart.legendFnName); - }, - - setTipRenderer : function(fn, scope){ - var chart = this; - scope = scope || chart; - chart.removeFnProxy(chart.tipFnName); - chart.tipFnName = chart.createFnProxy(function(item, index, series){ - var record = chart.store.getAt(index); - return fn.call(scope, chart, record, index, series); - }); - chart.swf.setDataTipFunction(chart.tipFnName); - }, - - setSeries : function(series){ - this.series = series; - this.refresh(); - }, - - - bindStore : function(store, initial){ - if(!initial && this.store){ - if(store !== this.store && this.store.autoDestroy){ - this.store.destroy(); - }else{ - this.store.un("datachanged", this.refresh, this); - this.store.un("add", this.delayRefresh, this); - this.store.un("remove", this.delayRefresh, this); - this.store.un("update", this.delayRefresh, this); - this.store.un("clear", this.refresh, this); - } - } - if(store){ - store = Ext.StoreMgr.lookup(store); - store.on({ - scope: this, - datachanged: this.refresh, - add: this.delayRefresh, - remove: this.delayRefresh, - update: this.delayRefresh, - clear: this.refresh - }); - } - this.store = store; - if(store && !initial){ - this.refresh(); - } - }, - - onSwfReady : function(isReset){ - Ext.chart.Chart.superclass.onSwfReady.call(this, isReset); - var ref; - this.swf.setType(this.type); - - if(this.chartStyle){ - this.setStyles(Ext.apply({}, this.extraStyle, this.chartStyle)); - } - - if(this.categoryNames){ - this.setCategoryNames(this.categoryNames); - } - - if(this.tipRenderer){ - ref = this.getFunctionRef(this.tipRenderer); - this.setTipRenderer(ref.fn, ref.scope); - } - if(this.legendRenderer){ - ref = this.getFunctionRef(this.legendRenderer); - this.setLegendRenderer(ref.fn, ref.scope); - } - if(!isReset){ - this.bindStore(this.store, true); - } - this.refresh.defer(10, this); - }, - - delayRefresh : function(){ - if(!this.refreshTask){ - this.refreshTask = new Ext.util.DelayedTask(this.refresh, this); - } - this.refreshTask.delay(this.refreshBuffer); - }, - - refresh : function(){ - if(this.fireEvent('beforerefresh', this) !== false){ - var styleChanged = false; - - var data = [], rs = this.store.data.items; - for(var j = 0, len = rs.length; j < len; j++){ - data[j] = rs[j].data; - } - - - var dataProvider = []; - var seriesCount = 0; - var currentSeries = null; - var i = 0; - if(this.series){ - seriesCount = this.series.length; - for(i = 0; i < seriesCount; i++){ - currentSeries = this.series[i]; - var clonedSeries = {}; - for(var prop in currentSeries){ - if(prop == "style" && currentSeries.style !== null){ - clonedSeries.style = Ext.encode(currentSeries.style); - styleChanged = true; - - - - - } else{ - clonedSeries[prop] = currentSeries[prop]; - } - } - dataProvider.push(clonedSeries); - } - } - - if(seriesCount > 0){ - for(i = 0; i < seriesCount; i++){ - currentSeries = dataProvider[i]; - if(!currentSeries.type){ - currentSeries.type = this.type; - } - currentSeries.dataProvider = data; - } - } else{ - dataProvider.push({type: this.type, dataProvider: data}); - } - this.swf.setDataProvider(dataProvider); - if(this.seriesStyles){ - this.setSeriesStyles(this.seriesStyles); - } - this.fireEvent('refresh', this); - } - }, - - - createFnProxy : function(fn){ - var fnName = 'extFnProxy' + (++Ext.chart.Chart.PROXY_FN_ID); - Ext.chart.Chart.proxyFunction[fnName] = fn; - return 'Ext.chart.Chart.proxyFunction.' + fnName; - }, - - - removeFnProxy : function(fn){ - if(!Ext.isEmpty(fn)){ - fn = fn.replace('Ext.chart.Chart.proxyFunction.', ''); - delete Ext.chart.Chart.proxyFunction[fn]; - } - }, - - - getFunctionRef : function(val){ - if(Ext.isFunction(val)){ - return { - fn: val, - scope: this - }; - }else{ - return { - fn: val.fn, - scope: val.scope || this - }; - } - }, - - - onDestroy: function(){ - if (this.refreshTask && this.refreshTask.cancel){ - this.refreshTask.cancel(); - } - Ext.chart.Chart.superclass.onDestroy.call(this); - this.bindStore(null); - this.removeFnProxy(this.tipFnName); - this.removeFnProxy(this.legendFnName); - } -}); -Ext.reg('chart', Ext.chart.Chart); -Ext.chart.Chart.PROXY_FN_ID = 0; -Ext.chart.Chart.proxyFunction = {}; - - -Ext.chart.Chart.CHART_URL = 'http:/' + '/yui.yahooapis.com/2.8.2/build/charts/assets/charts.swf'; - - -Ext.chart.PieChart = Ext.extend(Ext.chart.Chart, { - type: 'pie', - - onSwfReady : function(isReset){ - Ext.chart.PieChart.superclass.onSwfReady.call(this, isReset); - - this.setDataField(this.dataField); - this.setCategoryField(this.categoryField); - }, - - setDataField : function(field){ - this.dataField = field; - this.swf.setDataField(field); - }, - - setCategoryField : function(field){ - this.categoryField = field; - this.swf.setCategoryField(field); - } -}); -Ext.reg('piechart', Ext.chart.PieChart); - - -Ext.chart.CartesianChart = Ext.extend(Ext.chart.Chart, { - onSwfReady : function(isReset){ - Ext.chart.CartesianChart.superclass.onSwfReady.call(this, isReset); - this.labelFn = []; - if(this.xField){ - this.setXField(this.xField); - } - if(this.yField){ - this.setYField(this.yField); - } - if(this.xAxis){ - this.setXAxis(this.xAxis); - } - if(this.xAxes){ - this.setXAxes(this.xAxes); - } - if(this.yAxis){ - this.setYAxis(this.yAxis); - } - if(this.yAxes){ - this.setYAxes(this.yAxes); - } - if(Ext.isDefined(this.constrainViewport)){ - this.swf.setConstrainViewport(this.constrainViewport); - } - }, - - setXField : function(value){ - this.xField = value; - this.swf.setHorizontalField(value); - }, - - setYField : function(value){ - this.yField = value; - this.swf.setVerticalField(value); - }, - - setXAxis : function(value){ - this.xAxis = this.createAxis('xAxis', value); - this.swf.setHorizontalAxis(this.xAxis); - }, - - setXAxes : function(value){ - var axis; - for(var i = 0; i < value.length; i++) { - axis = this.createAxis('xAxis' + i, value[i]); - this.swf.setHorizontalAxis(axis); - } - }, - - setYAxis : function(value){ - this.yAxis = this.createAxis('yAxis', value); - this.swf.setVerticalAxis(this.yAxis); - }, - - setYAxes : function(value){ - var axis; - for(var i = 0; i < value.length; i++) { - axis = this.createAxis('yAxis' + i, value[i]); - this.swf.setVerticalAxis(axis); - } - }, - - createAxis : function(axis, value){ - var o = Ext.apply({}, value), - ref, - old; - - if(this[axis]){ - old = this[axis].labelFunction; - this.removeFnProxy(old); - this.labelFn.remove(old); - } - if(o.labelRenderer){ - ref = this.getFunctionRef(o.labelRenderer); - o.labelFunction = this.createFnProxy(function(v){ - return ref.fn.call(ref.scope, v); - }); - delete o.labelRenderer; - this.labelFn.push(o.labelFunction); - } - if(axis.indexOf('xAxis') > -1 && o.position == 'left'){ - o.position = 'bottom'; - } - return o; - }, - - onDestroy : function(){ - Ext.chart.CartesianChart.superclass.onDestroy.call(this); - Ext.each(this.labelFn, function(fn){ - this.removeFnProxy(fn); - }, this); - } -}); -Ext.reg('cartesianchart', Ext.chart.CartesianChart); - - -Ext.chart.LineChart = Ext.extend(Ext.chart.CartesianChart, { - type: 'line' -}); -Ext.reg('linechart', Ext.chart.LineChart); - - -Ext.chart.ColumnChart = Ext.extend(Ext.chart.CartesianChart, { - type: 'column' -}); -Ext.reg('columnchart', Ext.chart.ColumnChart); - - -Ext.chart.StackedColumnChart = Ext.extend(Ext.chart.CartesianChart, { - type: 'stackcolumn' -}); -Ext.reg('stackedcolumnchart', Ext.chart.StackedColumnChart); - - -Ext.chart.BarChart = Ext.extend(Ext.chart.CartesianChart, { - type: 'bar' -}); -Ext.reg('barchart', Ext.chart.BarChart); - - -Ext.chart.StackedBarChart = Ext.extend(Ext.chart.CartesianChart, { - type: 'stackbar' -}); -Ext.reg('stackedbarchart', Ext.chart.StackedBarChart); - - - - -Ext.chart.Axis = function(config){ - Ext.apply(this, config); -}; - -Ext.chart.Axis.prototype = -{ - - type: null, - - - orientation: "horizontal", - - - reverse: false, - - - labelFunction: null, - - - hideOverlappingLabels: true, - - - labelSpacing: 2 -}; - - -Ext.chart.NumericAxis = Ext.extend(Ext.chart.Axis, { - type: "numeric", - - - minimum: NaN, - - - maximum: NaN, - - - majorUnit: NaN, - - - minorUnit: NaN, - - - snapToUnits: true, - - - alwaysShowZero: true, - - - scale: "linear", - - - roundMajorUnit: true, - - - calculateByLabelSize: true, - - - position: 'left', - - - adjustMaximumByMajorUnit: true, - - - adjustMinimumByMajorUnit: true - -}); - - -Ext.chart.TimeAxis = Ext.extend(Ext.chart.Axis, { - type: "time", - - - minimum: null, - - - maximum: null, - - - majorUnit: NaN, - - - majorTimeUnit: null, - - - minorUnit: NaN, - - - minorTimeUnit: null, - - - snapToUnits: true, - - - stackingEnabled: false, - - - calculateByLabelSize: true - -}); - - -Ext.chart.CategoryAxis = Ext.extend(Ext.chart.Axis, { - type: "category", - - - categoryNames: null, - - - calculateCategoryCount: false - -}); - - -Ext.chart.Series = function(config) { Ext.apply(this, config); }; - -Ext.chart.Series.prototype = -{ - - type: null, - - - displayName: null -}; - - -Ext.chart.CartesianSeries = Ext.extend(Ext.chart.Series, { - - xField: null, - - - yField: null, - - - showInLegend: true, - - - axis: 'primary' -}); - - -Ext.chart.ColumnSeries = Ext.extend(Ext.chart.CartesianSeries, { - type: "column" -}); - - -Ext.chart.LineSeries = Ext.extend(Ext.chart.CartesianSeries, { - type: "line" -}); - - -Ext.chart.BarSeries = Ext.extend(Ext.chart.CartesianSeries, { - type: "bar" -}); +Ext.menu.Menu = Ext.extend(Ext.Container, { -Ext.chart.PieSeries = Ext.extend(Ext.chart.Series, { - type: "pie", - dataField: null, - categoryField: null -}); -Ext.menu.Menu = Ext.extend(Ext.Container, { - - - minWidth : 120, - + shadow : 'sides', - + subMenuAlign : 'tl-tr?', - + defaultAlign : 'tl-bl?', - + allowOtherMenus : false, - + ignoreParentClicks : false, - + enableScrolling : true, - + maxHeight : null, - + scrollIncrement : 24, - + showSeparator : true, - + defaultOffsets : [0, 0], - + plain : false, - + floating : true, - + zIndex: 15000, - + hidden : true, - + layout : 'menu', - hideMode : 'offsets', + hideMode : 'offsets', scrollerHeight : 8, - autoLayout : true, + autoLayout : true, defaultType : 'menuitem', bufferResize : false, @@ -38829,13 +37385,13 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { Ext.apply(this, {items:this.initialConfig}); } this.addEvents( - + 'click', - + 'mouseover', - + 'mouseout', - + 'itemclick' ); Ext.menu.MenuMgr.register(this); @@ -38857,12 +37413,12 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + getLayoutTarget : function() { return this.ul; }, - + onRender : function(ct, position){ if(!ct){ ct = Ext.getBody(); @@ -38893,7 +37449,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { if(!this.keyNav){ this.keyNav = new Ext.menu.MenuNav(this); } - + this.focusEl = this.el.child('a.x-menu-focus'); this.ul = this.el.child('ul.x-menu-list'); this.mon(this.ul, { @@ -38912,7 +37468,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + findTargetItem : function(e){ var t = e.getTarget('.x-menu-list-item', this.ul, true); if(t && t.menuItemId){ @@ -38920,7 +37476,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + onClick : function(e){ var t = this.findTargetItem(e); if(t){ @@ -38938,7 +37494,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + setActiveItem : function(item, autoExpand){ if(item != this.activeItem){ this.deactivateActive(); @@ -38956,7 +37512,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { var a = this.activeItem; if(a){ if(a.isFormField){ - + if(a.collapse){ a.collapse(); } @@ -38967,7 +37523,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + tryActivate : function(start, step){ var items = this.items; for(var i = start, len = items.length; i >= 0 && i < len; i+= step){ @@ -38980,7 +37536,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { return false; }, - + onMouseOver : function(e){ var t = this.findTargetItem(e); if(t){ @@ -38992,7 +37548,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { this.fireEvent('mouseover', this, e, t); }, - + onMouseOut : function(e){ var t = this.findTargetItem(e); if(t){ @@ -39005,7 +37561,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { this.fireEvent('mouseout', this, e, t); }, - + onScroll : function(e, t){ if(e){ e.stopEvent(); @@ -39017,7 +37573,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + onScrollerIn : function(e, t){ var ul = this.ul.dom, top = Ext.fly(t).is('.x-menu-scroller-top'); if(top ? ul.scrollTop > 0 : ul.scrollTop + this.activeMax < ul.scrollHeight){ @@ -39025,12 +37581,12 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + onScrollerOut : function(e, t){ Ext.fly(t).removeClass(['x-menu-item-active', 'x-menu-scroller-active']); }, - + show : function(el, pos, parentMenu){ if(this.floating){ this.parentMenu = parentMenu; @@ -39044,7 +37600,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + showAt : function(xy, parentMenu){ if(this.fireEvent('beforeshow', this) !== false){ this.parentMenu = parentMenu; @@ -39052,20 +37608,20 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { this.render(); } if(this.enableScrolling){ - + this.el.setXY(xy); - + xy[1] = this.constrainScroll(xy[1]); xy = [this.el.adjustForConstraints(xy)[0], xy[1]]; }else{ - + xy = this.el.adjustForConstraints(xy); } this.el.setXY(xy); this.el.show(); Ext.menu.Menu.superclass.onShow.call(this); if(Ext.isIE9m){ - + this.fireEvent('autosize', this); if(!Ext.isIE8){ this.el.repaint(); @@ -39084,13 +37640,13 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { parentEl = Ext.fly(this.el.dom.parentNode); scrollTop = parentEl.getScroll().top; viewHeight = parentEl.getViewSize().height; - - + + normalY = y - scrollTop; max = this.maxHeight ? this.maxHeight : viewHeight - normalY; if(full > viewHeight) { max = viewHeight; - + returnY = y - normalY; } else if(max < full) { returnY = y - (full - max); @@ -39099,7 +37655,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { }else{ max = this.getHeight(); } - + if (this.maxHeight){ max = Math.min(this.maxHeight, max); } @@ -39169,7 +37725,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + hide : function(deep){ if (!this.isDestroyed) { this.deepHide = deep; @@ -39178,7 +37734,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + onHide : function(){ Ext.menu.Menu.superclass.onHide.call(this); this.deactivateActive(); @@ -39195,7 +37751,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { } }, - + lookupComponent : function(c){ if(Ext.isString(c)){ c = (c == 'separator' || c == '-') ? new Ext.menu.Separator() : new Ext.menu.TextItem(c); @@ -39203,7 +37759,7 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { }else{ if(Ext.isObject(c)){ c = this.getMenuItem(c); - }else if(c.tagName || c.el){ + }else if(c.tagName || c.el){ c = new Ext.BoxComponent({ el: c }); @@ -39228,10 +37784,10 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { return c; }, - + getMenuItem : function(config) { config.ownerCt = this; - + if (!config.isXType) { if (!config.xtype && Ext.isBoolean(config.checked)) { return new Ext.menu.CheckItem(config); @@ -39241,34 +37797,34 @@ Ext.menu.Menu = Ext.extend(Ext.Container, { return config; }, - + addSeparator : function() { return this.add(new Ext.menu.Separator()); }, - + addElement : function(el) { return this.add(new Ext.menu.BaseItem({ el: el })); }, - + addItem : function(item) { return this.add(item); }, - + addMenuItem : function(config) { return this.add(this.getMenuItem(config)); }, - + addText : function(text){ return this.add(new Ext.menu.TextItem(text)); }, - + onDestroy : function(){ Ext.EventManager.removeResizeListener(this.hide, this); var pm = this.parentMenu; @@ -39364,15 +37920,15 @@ Ext.menu.MenuNav = Ext.extend(Ext.KeyNav, function(){ }()); Ext.menu.MenuMgr = function(){ - var menus, - active, + var menus, + active, map, - groups = {}, - attached = false, + groups = {}, + attached = false, lastShow = new Date(); - - + + function init(){ menus = {}; active = new Ext.util.MixedCollection(); @@ -39380,7 +37936,7 @@ Ext.menu.MenuMgr = function(){ map.disable(); } - + function hideAll(){ if(active && active.length > 0){ var c = active.clone(); @@ -39392,7 +37948,7 @@ Ext.menu.MenuMgr = function(){ return false; } - + function onHide(m){ active.remove(m); if(active.length < 1){ @@ -39402,7 +37958,7 @@ Ext.menu.MenuMgr = function(){ } } - + function onShow(m){ var last = active.last(); lastShow = new Date(); @@ -39420,7 +37976,7 @@ Ext.menu.MenuMgr = function(){ } } - + function onBeforeHide(m){ if(m.activeChild){ m.activeChild.hide(); @@ -39431,7 +37987,7 @@ Ext.menu.MenuMgr = function(){ } } - + function onBeforeShow(m){ var pm = m.parentMenu; if(!pm && !m.allowOtherMenus){ @@ -39441,7 +37997,7 @@ Ext.menu.MenuMgr = function(){ } } - + function onMouseDown(e){ if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){ hideAll(); @@ -39450,12 +38006,12 @@ Ext.menu.MenuMgr = function(){ return { - + hideAll : function(){ return hideAll(); }, - + register : function(menu){ if(!menus){ init(); @@ -39469,23 +38025,23 @@ Ext.menu.MenuMgr = function(){ }); }, - + get : function(menu){ - if(typeof menu == "string"){ - if(!menus){ + if(typeof menu == "string"){ + if(!menus){ return null; } return menus[menu]; - }else if(menu.events){ + }else if(menu.events){ return menu; - }else if(typeof menu.length == 'number'){ + }else if(typeof menu.length == 'number'){ return new Ext.menu.Menu({items:menu}); - }else{ + }else{ return Ext.create(menu, 'menu'); } }, - + unregister : function(menu){ delete menus[menu.id]; menu.un("beforehide", onBeforeHide); @@ -39494,7 +38050,7 @@ Ext.menu.MenuMgr = function(){ menu.un("show", onShow); }, - + registerCheckable : function(menuItem){ var g = menuItem.group; if(g){ @@ -39505,22 +38061,22 @@ Ext.menu.MenuMgr = function(){ } }, - + unregisterCheckable : function(menuItem){ var g = menuItem.group; if(g){ groups[g].remove(menuItem); } }, - - + + onCheckChange: function(item, state){ if(item.group && state){ var group = groups[item.group], i = 0, len = group.length, current; - + for(; i < len; i++){ current = group[i]; if(current != item){ @@ -39557,32 +38113,32 @@ Ext.menu.MenuMgr = function(){ }(); Ext.menu.BaseItem = Ext.extend(Ext.Component, { - - - - + + + + canActivate : false, - + activeClass : "x-menu-item-active", - + hideOnClick : true, - + clickHideDelay : 1, - + ctype : "Ext.menu.BaseItem", - + actionMode : "container", initComponent : function(){ Ext.menu.BaseItem.superclass.initComponent.call(this); this.addEvents( - + 'click', - + 'activate', - + 'deactivate' ); if(this.handler){ @@ -39590,7 +38146,7 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { } }, - + onRender : function(container, position){ Ext.menu.BaseItem.superclass.onRender.apply(this, arguments); if(this.ownerCt && this.ownerCt instanceof Ext.menu.Menu){ @@ -39606,7 +38162,7 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { } }, - + setHandler : function(handler, scope){ if(this.handler){ this.un("click", this.handler, this.scope); @@ -39614,7 +38170,7 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { this.on("click", this.handler = handler, this.scope = scope); }, - + onClick : function(e){ if(!this.disabled && this.fireEvent("click", this, e) !== false && (this.parentMenu && this.parentMenu.fireEvent("itemclick", this, e) !== false)){ @@ -39624,7 +38180,7 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { } }, - + activate : function(){ if(this.disabled){ return false; @@ -39636,18 +38192,18 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { return true; }, - + deactivate : function(){ this.container.removeClass(this.activeClass); this.fireEvent("deactivate", this); }, - + shouldDeactivate : function(e){ return !this.region || !this.region.contains(e.getPoint()); }, - + handleClick : function(e){ var pm = this.parentMenu; if(this.hideOnClick){ @@ -39658,26 +38214,26 @@ Ext.menu.BaseItem = Ext.extend(Ext.Component, { } } }, - + beforeDestroy: function(){ clearTimeout(this.clickHideDelayTimer); - Ext.menu.BaseItem.superclass.beforeDestroy.call(this); + Ext.menu.BaseItem.superclass.beforeDestroy.call(this); }, - + expandMenu : Ext.emptyFn, - + hideMenu : Ext.emptyFn }); Ext.reg('menubaseitem', Ext.menu.BaseItem); Ext.menu.TextItem = Ext.extend(Ext.menu.BaseItem, { - - + + hideOnClick : false, - + itemCls : "x-menu-text", - + constructor : function(config) { if (typeof config == 'string') { config = { @@ -39687,7 +38243,7 @@ Ext.menu.TextItem = Ext.extend(Ext.menu.BaseItem, { Ext.menu.TextItem.superclass.constructor.call(this, config); }, - + onRender : function() { var s = document.createElement("span"); s.className = this.itemCls; @@ -39698,15 +38254,15 @@ Ext.menu.TextItem = Ext.extend(Ext.menu.BaseItem, { }); Ext.reg('menutextitem', Ext.menu.TextItem); Ext.menu.Separator = Ext.extend(Ext.menu.BaseItem, { - + itemCls : "x-menu-sep", - + hideOnClick : false, - - + + activeClass: '', - + onRender : function(li){ var s = document.createElement("span"); s.className = this.itemCls; @@ -39718,50 +38274,50 @@ Ext.menu.Separator = Ext.extend(Ext.menu.BaseItem, { }); Ext.reg('menuseparator', Ext.menu.Separator); Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { - - - - - - - - + + + + + + + + itemCls : 'x-menu-item', - + canActivate : true, - + showDelay: 200, - - + + altText: '', - - + + hideDelay: 200, - + ctype: 'Ext.menu.Item', initComponent : function(){ Ext.menu.Item.superclass.initComponent.call(this); if(this.menu){ - - + + if (Ext.isArray(this.menu)){ this.menu = { items: this.menu }; } - - - + + + if (Ext.isObject(this.menu)){ this.menu.ownerCt = this; } - + this.menu = Ext.menu.MenuMgr.get(this.menu); this.menu.ownerCt = undefined; } }, - + onRender : function(container, position){ if (!this.itemTpl) { this.itemTpl = Ext.menu.Item.prototype.itemTpl = new Ext.XTemplate( @@ -39779,7 +38335,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { this.el = position ? this.itemTpl.insertBefore(position, a, true) : this.itemTpl.append(container, a, true); this.iconEl = this.el.child('img.x-menu-item-icon'); this.textEl = this.el.child('.x-menu-item-text'); - if(!this.href) { + if(!this.href) { this.mon(this.el, 'click', Ext.emptyFn, null, { preventDefault: true }); } Ext.menu.Item.superclass.onRender.call(this, container, position); @@ -39798,7 +38354,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { }; }, - + setText : function(text){ this.text = text||' '; if(this.rendered){ @@ -39807,7 +38363,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { } }, - + setIconClass : function(cls){ var oldCls = this.iconCls; this.iconCls = cls; @@ -39816,7 +38372,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { } }, - + beforeDestroy: function(){ clearTimeout(this.showTimer); clearTimeout(this.hideTimer); @@ -39827,15 +38383,15 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { Ext.menu.Item.superclass.beforeDestroy.call(this); }, - + handleClick : function(e){ - if(!this.href){ + if(!this.href){ e.stopEvent(); } Ext.menu.Item.superclass.handleClick.apply(this, arguments); }, - + activate : function(autoExpand){ if(Ext.menu.Item.superclass.activate.apply(this, arguments)){ this.focus(); @@ -39846,7 +38402,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { return true; }, - + shouldDeactivate : function(e){ if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){ if(this.menu && this.menu.isVisible()){ @@ -39857,13 +38413,13 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { return false; }, - + deactivate : function(){ Ext.menu.Item.superclass.deactivate.apply(this, arguments); this.hideMenu(); }, - + expandMenu : function(autoActivate){ if(!this.disabled && this.menu){ clearTimeout(this.hideTimer); @@ -39876,7 +38432,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { } }, - + deferExpand : function(autoActivate){ delete this.showTimer; this.menu.show(this.container, this.parentMenu.subMenuAlign || 'tl-tr?', this.parentMenu); @@ -39885,7 +38441,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { } }, - + hideMenu : function(){ clearTimeout(this.showTimer); delete this.showTimer; @@ -39894,7 +38450,7 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { } }, - + deferHide : function(){ delete this.hideTimer; if(this.menu.over){ @@ -39906,34 +38462,34 @@ Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, { }); Ext.reg('menuitem', Ext.menu.Item); Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, { - - + + itemCls : "x-menu-item x-menu-check-item", - + groupClass : "x-menu-group-item", - + checked: false, - + ctype: "Ext.menu.CheckItem", - + initComponent : function(){ Ext.menu.CheckItem.superclass.initComponent.call(this); this.addEvents( - + "beforecheckchange" , - + "checkchange" ); - + if(this.checkHandler){ this.on('checkchange', this.checkHandler, this.scope); } Ext.menu.MenuMgr.registerCheckable(this); }, - + onRender : function(c){ Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); if(this.group){ @@ -39945,13 +38501,13 @@ Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, { } }, - + destroy : function(){ Ext.menu.MenuMgr.unregisterCheckable(this); Ext.menu.CheckItem.superclass.destroy.apply(this, arguments); }, - + setChecked : function(state, suppressEvent){ var suppress = suppressEvent === true; if(this.checked != state && (suppress || this.fireEvent("beforecheckchange", this, state) !== false)){ @@ -39966,7 +38522,7 @@ Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, { } }, - + handleClick : function(e){ if(!this.disabled && !(this.checked && this.group)){ this.setChecked(!this.checked); @@ -39976,24 +38532,24 @@ Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, { }); Ext.reg('menucheckitem', Ext.menu.CheckItem); Ext.menu.DateMenu = Ext.extend(Ext.menu.Menu, { - + enableScrolling : false, - - - + + + hideOnClick : true, - - + + pickerId : null, - - - - + + + + cls : 'x-date-menu', - - - - + + + + initComponent : function(){ this.on('beforeshow', this.onBeforeShow, this); @@ -40011,7 +38567,7 @@ Ext.reg('menucheckitem', Ext.menu.CheckItem); }); this.picker.purgeListeners(); Ext.menu.DateMenu.superclass.initComponent.call(this); - + this.relayEvents(this.picker, ['select']); this.on('show', this.picker.focus, this.picker); this.on('select', this.menuHide, this); @@ -40034,34 +38590,34 @@ Ext.reg('menucheckitem', Ext.menu.CheckItem); onShow : function(){ var el = this.picker.getEl(); - el.setWidth(el.getWidth()); + el.setWidth(el.getWidth()); } }); Ext.reg('datemenu', Ext.menu.DateMenu); - + Ext.menu.ColorMenu = Ext.extend(Ext.menu.Menu, { - + enableScrolling : false, - - - - + + + + hideOnClick : true, - + cls : 'x-color-menu', - - + + paletteId : null, - - - - - - - - - - + + + + + + + + + + initComponent : function(){ Ext.apply(this, { plain: true, @@ -40072,7 +38628,7 @@ Ext.reg('menucheckitem', Ext.menu.CheckItem); }); this.palette.purgeListeners(); Ext.menu.ColorMenu.superclass.initComponent.call(this); - + this.relayEvents(this.palette, ['select']); this.on('select', this.menuHide, this); if(this.handler){ @@ -40089,75 +38645,75 @@ Ext.reg('menucheckitem', Ext.menu.CheckItem); Ext.reg('colormenu', Ext.menu.ColorMenu); Ext.form.Field = Ext.extend(Ext.BoxComponent, { - - - - - - - - + + + + + + + + invalidClass : 'x-form-invalid', - + invalidText : 'The value in this field is invalid', - + focusClass : 'x-form-focus', - - + + validationEvent : 'keyup', - + validateOnBlur : true, - + validationDelay : 250, - + defaultAutoCreate : {tag: 'input', type: 'text', size: '20', autocomplete: 'off'}, - + fieldClass : 'x-form-field', - + msgTarget : 'qtip', - + msgFx : 'normal', - + readOnly : false, - + disabled : false, - + submitValue: true, - + isFormField : true, - + msgDisplay: '', - + hasFocus : false, - + initComponent : function(){ Ext.form.Field.superclass.initComponent.call(this); this.addEvents( - + 'focus', - + 'blur', - + 'specialkey', - + 'change', - + 'invalid', - + 'valid' ); }, - + getName : function(){ return this.rendered && this.el.dom.name ? this.el.dom.name : this.name || this.id || ''; }, - + onRender : function(ct, position){ if(!this.el){ var cfg = this.getAutoCreate(); @@ -40191,23 +38747,23 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { this.el.addClass([this.fieldClass, this.cls]); }, - + getItemCt : function(){ return this.itemCt; }, - + initValue : function(){ if(this.value !== undefined){ this.setValue(this.value); }else if(!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText){ this.setValue(this.el.dom.value); } - + this.originalValue = this.getValue(); }, - + isDirty : function() { if(this.disabled || !this.rendered) { return false; @@ -40215,7 +38771,7 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return String(this.getValue()) !== String(this.originalValue); }, - + setReadOnly : function(readOnly){ if(this.rendered){ this.el.dom.readOnly = readOnly; @@ -40223,40 +38779,40 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { this.readOnly = readOnly; }, - + afterRender : function(){ Ext.form.Field.superclass.afterRender.call(this); this.initEvents(); this.initValue(); }, - + fireKey : function(e){ if(e.isSpecialKey()){ this.fireEvent('specialkey', this, e); } }, - + reset : function(){ this.setValue(this.originalValue); this.clearInvalid(); }, - + initEvents : function(){ this.mon(this.el, Ext.EventManager.getKeyEvent(), this.fireKey, this); this.mon(this.el, 'focus', this.onFocus, this); - - + + this.mon(this.el, 'blur', this.onBlur, this, this.inEditor ? {buffer:10} : null); }, - + preFocus: Ext.emptyFn, - + onFocus : function(){ this.preFocus(); if(this.focusClass){ @@ -40264,16 +38820,16 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { } if(!this.hasFocus){ this.hasFocus = true; - + this.startValue = this.getValue(); this.fireEvent('focus', this); } }, - + beforeBlur : Ext.emptyFn, - + onBlur : function(){ this.beforeBlur(); if(this.focusClass){ @@ -40291,10 +38847,10 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { this.postBlur(); }, - + postBlur : Ext.emptyFn, - + isValid : function(preventMark){ if(this.disabled){ return true; @@ -40306,7 +38862,7 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return v; }, - + validate : function(){ if(this.disabled || this.validateValue(this.processValue(this.getRawValue()))){ this.clearInvalid(); @@ -40315,14 +38871,14 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return false; }, - + processValue : function(value){ return value; }, - + validateValue : function(value) { - + var error = this.getErrors(value)[0]; if (error == undefined) { @@ -40332,20 +38888,20 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return false; } }, - - + + getErrors: function() { return []; }, - + getActiveError : function(){ return this.activeError || ''; }, - + markInvalid : function(msg){ - + if (this.rendered && !this.preventMark) { msg = msg || this.invalidText; @@ -40361,13 +38917,13 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { } } } - + this.setActiveError(msg); }, - - + + clearInvalid : function(){ - + if (this.rendered && !this.preventMark) { this.el.removeClass(this.invalidClass); var mt = this.getMessageHandler(); @@ -40382,44 +38938,44 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { } } } - + this.unsetActiveError(); }, - + setActiveError: function(msg, suppressEvent) { this.activeError = msg; if (suppressEvent !== true) this.fireEvent('invalid', this, msg); }, - - + + unsetActiveError: function(suppressEvent) { delete this.activeError; if (suppressEvent !== true) this.fireEvent('valid', this); }, - + getMessageHandler : function(){ return Ext.form.MessageTargets[this.msgTarget]; }, - + getErrorCt : function(){ - return this.el.findParent('.x-form-element', 5, true) || - this.el.findParent('.x-form-field-wrap', 5, true); + return this.el.findParent('.x-form-element', 5, true) || + this.el.findParent('.x-form-field-wrap', 5, true); }, - + alignErrorEl : function(){ this.errorEl.setWidth(this.getErrorCt().getWidth(true) - 20); }, - + alignErrorIcon : function(){ this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]); }, - + getRawValue : function(){ var v = this.rendered ? this.el.getValue() : Ext.value(this.value, ''); if(v === this.emptyText){ @@ -40428,7 +38984,7 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return v; }, - + getValue : function(){ if(!this.rendered) { return this.value; @@ -40440,12 +38996,12 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return v; }, - + setRawValue : function(v){ return this.rendered ? (this.el.dom.value = (Ext.isEmpty(v) ? '' : v)) : ''; }, - + setValue : function(v){ this.value = v; if(this.rendered){ @@ -40455,15 +39011,15 @@ Ext.form.Field = Ext.extend(Ext.BoxComponent, { return this; }, - + append : function(v){ this.setValue([this.getValue(), v].join('')); } - - - + + + }); @@ -40473,7 +39029,7 @@ Ext.form.MessageTargets = { field.el.addClass(field.invalidClass); field.el.dom.qtip = msg; field.el.dom.qclass = 'x-form-invalid-tip'; - if(Ext.QuickTips){ + if(Ext.QuickTips){ Ext.QuickTips.enable(); } }, @@ -40496,7 +39052,7 @@ Ext.form.MessageTargets = { field.el.addClass(field.invalidClass); if(!field.errorEl){ var elp = field.getErrorCt(); - if(!elp){ + if(!elp){ field.el.dom.title = msg; return; } @@ -40524,7 +39080,7 @@ Ext.form.MessageTargets = { field.el.addClass(field.invalidClass); if(!field.errorIcon){ var elp = field.getErrorCt(); - + if(!elp){ field.el.dom.title = msg; return; @@ -40593,63 +39149,63 @@ Ext.form.Field.msgFx = { Ext.reg('field', Ext.form.Field); Ext.form.TextField = Ext.extend(Ext.form.Field, { - - - + + + grow : false, - + growMin : 30, - + growMax : 800, - + vtype : null, - + maskRe : null, - + disableKeyFilter : false, - + allowBlank : true, - + minLength : 0, - + maxLength : Number.MAX_VALUE, - + minLengthText : 'The minimum length for this field is {0}', - + maxLengthText : 'The maximum length for this field is {0}', - + selectOnFocus : false, - + blankText : 'This field is required', - + validator : null, - + regex : null, - + regexText : '', - + emptyText : null, - + emptyClass : 'x-form-empty-field', - + initComponent : function(){ Ext.form.TextField.superclass.initComponent.call(this); this.addEvents( - + 'autosize', - + 'keydown', - + 'keyup', - + 'keypress' ); }, - + initEvents : function(){ Ext.form.TextField.superclass.initEvents.call(this); if(this.validationEvent == 'keyup'){ @@ -40659,9 +39215,9 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { else if(this.validationEvent !== false && this.validationEvent != 'blur'){ this.mon(this.el, this.validationEvent, this.validate, this, {buffer: this.validationDelay}); } - if(this.selectOnFocus || this.emptyText){ + if(this.selectOnFocus || this.emptyText){ this.mon(this.el, 'mousedown', this.onMouseDown, this); - + if(this.emptyText){ this.applyEmptyText(); } @@ -40682,7 +39238,7 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { }); } }, - + onMouseDown: function(e){ if(!this.hasFocus){ this.mon(this.el, 'mouseup', Ext.emptyFn, this, { single: true, preventDefault: true }); @@ -40705,16 +39261,16 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { this.validationTask.delay(this.validationDelay); } }, - - + + onDisable: function(){ Ext.form.TextField.superclass.onDisable.call(this); if(Ext.isIE){ this.el.dom.unselectable = 'on'; } }, - - + + onEnable: function(){ Ext.form.TextField.superclass.onEnable.call(this); if(Ext.isIE){ @@ -40722,34 +39278,34 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { } }, - + onKeyUpBuffered : function(e){ if(this.doAutoSize(e)){ this.autoSize(); } }, - - + + doAutoSize : function(e){ return !e.isNavKeyPress(); }, - + onKeyUp : function(e){ this.fireEvent('keyup', this, e); }, - + onKeyDown : function(e){ this.fireEvent('keydown', this, e); }, - + onKeyPress : function(e){ this.fireEvent('keypress', this, e); }, - + reset : function(){ Ext.form.TextField.superclass.reset.call(this); this.applyEmptyText(); @@ -40762,7 +39318,7 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { } }, - + preFocus : function(){ var el = this.el, isEmpty; @@ -40778,12 +39334,12 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { } }, - + postBlur : function(){ this.applyEmptyText(); }, - + filterKeys : function(e){ if(e.ctrlKey){ return; @@ -40811,55 +39367,55 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { return this; }, - + getErrors: function(value) { var errors = Ext.form.TextField.superclass.getErrors.apply(this, arguments); - - value = Ext.isDefined(value) ? value : this.processValue(this.getRawValue()); - + + value = Ext.isDefined(value) ? value : this.processValue(this.getRawValue()); + if (Ext.isFunction(this.validator)) { var msg = this.validator(value); if (msg !== true) { errors.push(msg); } } - + if (value.length < 1 || value === this.emptyText) { if (this.allowBlank) { - + return errors; } else { errors.push(this.blankText); } } - - if (!this.allowBlank && (value.length < 1 || value === this.emptyText)) { + + if (!this.allowBlank && (value.length < 1 || value === this.emptyText)) { errors.push(this.blankText); } - + if (value.length < this.minLength) { errors.push(String.format(this.minLengthText, this.minLength)); } - + if (value.length > this.maxLength) { errors.push(String.format(this.maxLengthText, this.maxLength)); } - + if (this.vtype) { var vt = Ext.form.VTypes; if(!vt[this.vtype](value, this)){ errors.push(this.vtypeText || vt[this.vtype +'Text']); } } - + if (this.regex && !this.regex.test(value)) { errors.push(this.regexText); } - + return errors; }, - + selectText : function(start, end){ var v = this.getRawValue(); var doFocus = false; @@ -40884,7 +39440,7 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { } }, - + autoSize : function(){ if(!this.grow || !this.rendered){ return; @@ -40904,7 +39460,7 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { this.el.setWidth(w); this.fireEvent('autosize', this, w); }, - + onDestroy: function(){ if(this.validationTask){ this.validationTask.cancel(); @@ -40916,32 +39472,32 @@ Ext.form.TextField = Ext.extend(Ext.form.Field, { Ext.reg('textfield', Ext.form.TextField); Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { - - - + + + defaultAutoCreate : {tag: "input", type: "text", size: "16", autocomplete: "off"}, - + hideTrigger:false, - + editable: true, - + readOnly: false, - + wrapFocusClass: 'x-trigger-wrap-focus', - + autoSize: Ext.emptyFn, - + monitorTab : true, - + deferHeight : true, - + mimicing : false, actionMode: 'wrap', defaultTriggerWidth: 17, - + onResize : function(w, h){ Ext.form.TriggerField.superclass.onResize.call(this, w, h); var tw = this.getTriggerWidth(); @@ -40959,14 +39515,14 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { return tw; }, - + alignErrorIcon : function(){ if(this.wrap){ this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]); } }, - + onRender : function(ct, position){ this.doc = Ext.isIE ? Ext.getBody() : Ext.getDoc(); Ext.form.TriggerField.superclass.onRender.call(this, ct, position); @@ -41008,7 +39564,7 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { } }, - + setHideTrigger: function(hideTrigger){ if(hideTrigger != this.hideTrigger){ this.hideTrigger = hideTrigger; @@ -41016,7 +39572,7 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { } }, - + setEditable: function(editable){ if(editable != this.editable){ this.editable = editable; @@ -41024,7 +39580,7 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { } }, - + setReadOnly: function(readOnly){ if(readOnly != this.readOnly){ this.readOnly = readOnly; @@ -41037,14 +39593,14 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { this.updateEditState(); }, - + initTrigger : function(){ this.mon(this.trigger, 'click', this.onTriggerClick, this, {preventDefault:true}); this.trigger.addClassOnOver('x-form-trigger-over'); this.trigger.addClassOnClick('x-form-trigger-click'); }, - + onDestroy : function(){ Ext.destroy(this.trigger, this.wrap); if (this.mimicing){ @@ -41054,7 +39610,7 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { Ext.form.TriggerField.superclass.onDestroy.call(this); }, - + onFocus : function(){ Ext.form.TriggerField.superclass.onFocus.call(this); if(!this.mimicing){ @@ -41067,24 +39623,24 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { } }, - + checkTab : function(me, e){ if(e.getKey() == e.TAB){ this.triggerBlur(); } }, - + onBlur : Ext.emptyFn, - + mimicBlur : function(e){ if(!this.isDestroyed && !this.wrap.contains(e.target) && this.validateBlur(e)){ this.triggerBlur(); } }, - + triggerBlur : function(){ this.mimicing = false; this.doc.un('mousedown', this.mimicBlur, this); @@ -41099,25 +39655,25 @@ Ext.form.TriggerField = Ext.extend(Ext.form.TextField, { beforeBlur : Ext.emptyFn, - - + + validateBlur : function(e){ return true; }, - + onTriggerClick : Ext.emptyFn - - - + + + }); Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, { - - - + + + initComponent : function(){ Ext.form.TwinTriggerField.superclass.initComponent.call(this); @@ -41132,25 +39688,25 @@ Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, { getTrigger : function(index){ return this.triggers[index]; }, - + afterRender: function(){ Ext.form.TwinTriggerField.superclass.afterRender.call(this); var triggers = this.triggers, i = 0, len = triggers.length; - + for(; i < len; ++i){ if(this['hideTrigger' + (i + 1)]){ triggers[i].hide(); } - } + } }, initTrigger : function(){ var ts = this.trigger.select('.x-form-trigger', true), triggerField = this; - + ts.each(function(t, all, index){ var triggerIndex = 'Trigger'+(index+1); t.hide = function(){ @@ -41186,33 +39742,33 @@ Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, { return tw; }, - + onDestroy : function() { Ext.destroy(this.triggers); Ext.form.TwinTriggerField.superclass.onDestroy.call(this); }, - + onTrigger1Click : Ext.emptyFn, - + onTrigger2Click : Ext.emptyFn }); Ext.reg('trigger', Ext.form.TriggerField); Ext.reg('twintrigger', Ext.form.TwinTriggerField); Ext.form.TextArea = Ext.extend(Ext.form.TextField, { - + growMin : 60, - + growMax: 1000, growAppend : ' \n ', enterIsSpecial : false, - + preventScrollbars: false, - - + + onRender : function(ct, position){ if(!this.el){ this.defaultAutoCreate = { @@ -41243,20 +39799,20 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { this.fireEvent("specialkey", this, e); } }, - - + + doAutoSize : function(e){ return !e.isNavKeyPress() || e.getKey() == e.ENTER; }, - - - filterValidation: function(e) { + + + filterValidation: function(e) { if(!e.isNavKeyPress() || (!this.enterIsSpecial && e.keyCode == e.ENTER)){ this.validationTask.delay(this.validationDelay); } }, - + autoSize: function(){ if(!this.grow || !this.textSizeEl){ return; @@ -41265,7 +39821,7 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { v = Ext.util.Format.htmlEncode(el.dom.value), ts = this.textSizeEl, h; - + Ext.fly(ts).setWidth(this.el.getWidth()); if(v.length < 1){ v = "  "; @@ -41286,45 +39842,45 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { }); Ext.reg('textarea', Ext.form.TextArea); Ext.form.NumberField = Ext.extend(Ext.form.TextField, { - - - + + + fieldClass: "x-form-field x-form-num-field", - - + + allowDecimals : true, - - + + decimalSeparator : ".", - - + + decimalPrecision : 2, - - + + allowNegative : true, - - + + minValue : Number.NEGATIVE_INFINITY, - - + + maxValue : Number.MAX_VALUE, - - + + minText : "The minimum value for this field is {0}", - - + + maxText : "The maximum value for this field is {0}", - - + + nanText : "{0} is not a valid number", - - + + baseChars : "0123456789", - - + + autoStripChars: false, - + initEvents : function() { var allowed = this.baseChars + ''; if (this.allowDecimals) { @@ -41338,36 +39894,36 @@ Ext.form.NumberField = Ext.extend(Ext.form.TextField, { if (this.autoStripChars) { this.stripCharsRe = new RegExp('[^' + allowed + ']', 'gi'); } - + Ext.form.NumberField.superclass.initEvents.call(this); }, - - + + getErrors: function(value) { var errors = Ext.form.NumberField.superclass.getErrors.apply(this, arguments); - + value = Ext.isDefined(value) ? value : this.processValue(this.getRawValue()); - - if (value.length < 1) { + + if (value.length < 1) { return errors; } - + value = String(value).replace(this.decimalSeparator, "."); - + if(isNaN(value)){ errors.push(String.format(this.nanText, value)); } - + var num = this.parseValue(value); - + if (num < this.minValue) { errors.push(String.format(this.minText, this.minValue)); } - + if (num > this.maxValue) { errors.push(String.format(this.maxText, this.maxValue)); } - + return errors; }, @@ -41381,37 +39937,37 @@ Ext.form.NumberField = Ext.extend(Ext.form.TextField, { v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator); return Ext.form.NumberField.superclass.setValue.call(this, v); }, - - + + setMinValue : function(value) { this.minValue = Ext.num(value, Number.NEGATIVE_INFINITY); }, - - + + setMaxValue : function(value) { - this.maxValue = Ext.num(value, Number.MAX_VALUE); + this.maxValue = Ext.num(value, Number.MAX_VALUE); }, - + parseValue : function(value) { value = parseFloat(String(value).replace(this.decimalSeparator, ".")); return isNaN(value) ? '' : value; }, - + fixPrecision : function(value) { var nan = isNaN(value); - + if (!this.allowDecimals || this.decimalPrecision == -1 || nan || !value) { return nan ? '' : value; } - + return parseFloat(parseFloat(value).toFixed(this.decimalPrecision)); }, beforeBlur : function() { var v = this.parseValue(this.getRawValue()); - + if (!Ext.isEmpty(v)) { this.setValue(v); } @@ -41421,52 +39977,52 @@ Ext.form.NumberField = Ext.extend(Ext.form.TextField, { Ext.reg('numberfield', Ext.form.NumberField); Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { - + format : "m/d/Y", - + altFormats : "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j", - + disabledDaysText : "Disabled", - + disabledDatesText : "Disabled", - + minText : "The date in this field must be equal to or after {0}", - + maxText : "The date in this field must be equal to or before {0}", - + invalidText : "{0} is not a valid date - it must be in the format {1}", - + triggerClass : 'x-form-date-trigger', - + showToday : true, - - + + startDay : 0, - - - - - - - - + + + + + + + + defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"}, - - - initTime: '12', + + + initTime: '12', initTimeFormat: 'H', - + safeParse : function(value, format) { if (Date.formatContainsHourInfo(format)) { - + return Date.parseDate(value, format); } else { - + var parsedDate = Date.parseDate(value + ' ' + this.initTime, format + ' ' + this.initTimeFormat); - + if (parsedDate) { return parsedDate.clearTime(); } @@ -41477,7 +40033,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { Ext.form.DateField.superclass.initComponent.call(this); this.addEvents( - + 'select' ); @@ -41503,7 +40059,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { }, - + initDisabledDays : function(){ if(this.disabledDates){ var dd = this.disabledDates, @@ -41520,7 +40076,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } }, - + setDisabledDates : function(dd){ this.disabledDates = dd; this.initDisabledDays(); @@ -41529,7 +40085,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } }, - + setDisabledDays : function(dd){ this.disabledDays = dd; if(this.menu){ @@ -41537,7 +40093,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } }, - + setMinValue : function(dt){ this.minValue = (Ext.isString(dt) ? this.parseDate(dt) : dt); if(this.menu){ @@ -41545,7 +40101,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } }, - + setMaxValue : function(dt){ this.maxValue = (Ext.isString(dt) ? this.parseDate(dt) : dt); if(this.menu){ @@ -41553,13 +40109,13 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } }, - + getErrors: function(value) { var errors = Ext.form.DateField.superclass.getErrors.apply(this, arguments); value = this.formatDate(value || this.processValue(this.getRawValue())); - if (value.length < 1) { + if (value.length < 1) { return errors; } @@ -41598,23 +40154,23 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { return errors; }, - - + + validateBlur : function(){ return !this.menu || !this.menu.isVisible(); }, - + getValue : function(){ return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || ""; }, - + setValue : function(date){ return Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); }, - + parseDate : function(value) { if(!value || Ext.isDate(value)){ return value; @@ -41634,20 +40190,20 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { return v; }, - + onDestroy : function(){ Ext.destroy(this.menu, this.keyNav); Ext.form.DateField.superclass.onDestroy.call(this); }, - + formatDate : function(date){ return Ext.isDate(date) ? date.dateFormat(this.format) : date; }, - - - + + + onTriggerClick : function(){ if(this.disabled){ return; @@ -41677,7 +40233,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { this.menuEvents('on'); }, - + menuEvents: function(method){ this.menu[method]('select', this.onSelect, this); this.menu[method]('hide', this.onMenuHide, this); @@ -41695,7 +40251,7 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { this.menuEvents('un'); }, - + beforeBlur : function(){ var v = this.parseDate(this.getRawValue()); if(v){ @@ -41703,10 +40259,10 @@ Ext.form.DateField = Ext.extend(Ext.form.TriggerField, { } } - - - - + + + + }); Ext.reg('datefield', Ext.form.DateField); @@ -41714,12 +40270,12 @@ Ext.form.DisplayField = Ext.extend(Ext.form.Field, { validationEvent : false, validateOnBlur : false, defaultAutoCreate : {tag: "div"}, - + fieldClass : "x-form-display-field", - + htmlEncode: false, - + initEvents : Ext.emptyFn, isValid : function(){ @@ -41744,7 +40300,7 @@ Ext.form.DisplayField = Ext.extend(Ext.form.Field, { getValue : function(){ return this.getRawValue(); }, - + getName: function() { return this.name; }, @@ -41760,106 +40316,106 @@ Ext.form.DisplayField = Ext.extend(Ext.form.Field, { this.setRawValue(v); return this; } - - - - - - + + + + + + }); Ext.reg('displayfield', Ext.form.DisplayField); Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { - - - - - - + + + + + + defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"}, - - - - - - - + + + + + + + listClass : '', - + selectedClass : 'x-combo-selected', - + listEmptyText: '', - + triggerClass : 'x-form-arrow-trigger', - + shadow : 'sides', - + listAlign : 'tl-bl?', - + maxHeight : 300, - + minHeight : 90, - + triggerAction : 'query', - + minChars : 4, - + autoSelect : true, - + typeAhead : false, - + queryDelay : 500, - + pageSize : 0, - + selectOnFocus : false, - + queryParam : 'query', - + loadingText : 'Loading...', - + resizable : false, - + handleHeight : 8, - + allQuery: '', - + mode: 'remote', - + minListWidth : 70, - + forceSelection : false, - + typeAheadDelay : 250, - - + + lazyInit : true, - + clearFilterOnReset : true, - + submitValue: undefined, - - + + initComponent : function(){ Ext.form.ComboBox.superclass.initComponent.call(this); this.addEvents( - + 'expand', - + 'collapse', - + 'beforeselect', - + 'select', - + 'beforequery' ); if(this.transform){ @@ -41887,7 +40443,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.valueField = 'value'; this.displayField = 'text'; } - s.name = Ext.id(); + s.name = Ext.id(); if(!this.lazyRender){ this.target = true; this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate); @@ -41895,7 +40451,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } Ext.removeNode(s); } - + else if(this.store){ this.store = Ext.StoreMgr.lookup(this.store); if(this.store.autoCreated){ @@ -41918,7 +40474,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onRender : function(ct, position){ if(this.hiddenName && !Ext.isDefined(this.submitValue)){ this.submitValue = false; @@ -41940,7 +40496,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + initValue : function(){ Ext.form.ComboBox.superclass.initValue.call(this); if(this.hiddenField){ @@ -41969,7 +40525,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { return (zindex || 12000) + 5; }, - + initList : function(){ if(!this.list){ var cls = 'x-combo-list', @@ -42011,12 +40567,12 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } if(!this.tpl){ - + this.tpl = '
    {' + this.displayField + '}
    '; - + } - + this.view = new Ext.DataView({ applyTo: this.innerList, tpl: this.tpl, @@ -42051,17 +40607,17 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + getListParent : function() { return document.body; }, - + getStore : function(){ return this.store; }, - + bindStore : function(store, initial){ if(this.store && !initial){ if(this.store !== store && this.store.autoDestroy){ @@ -42110,11 +40666,11 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { Ext.form.ComboBox.superclass.reset.call(this); }, - + initEvents : function(){ Ext.form.ComboBox.superclass.initEvents.call(this); - + this.keyNav = new Ext.KeyNav(this.el, { "up" : function(e){ this.inKeyMode = true; @@ -42151,10 +40707,10 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { doRelay : function(e, h, hname){ if(hname == 'down' || this.scope.isExpanded()){ - + var relay = Ext.KeyNav.prototype.doRelay.apply(this, arguments); if((((Ext.isIE9 && Ext.isStrict) || Ext.isIE10p) || !Ext.isIE) && Ext.EventManager.useKeydown){ - + this.scope.fireKey(e); } return relay; @@ -42177,7 +40733,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { }, - + onDestroy : function(){ if (this.dqTask){ this.dqTask.cancel(); @@ -42194,14 +40750,14 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { Ext.form.ComboBox.superclass.onDestroy.call(this); }, - + fireKey : function(e){ if (!this.isExpanded()) { Ext.form.ComboBox.superclass.fireKey.call(this, e); } }, - + onResize : function(w, h){ Ext.form.ComboBox.superclass.onResize.apply(this, arguments); if(!isNaN(w) && this.isVisible() && this.list){ @@ -42219,7 +40775,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onEnable : function(){ Ext.form.ComboBox.superclass.onEnable.apply(this, arguments); if(this.hiddenField){ @@ -42227,7 +40783,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onDisable : function(){ Ext.form.ComboBox.superclass.onDisable.apply(this, arguments); if(this.hiddenField){ @@ -42235,7 +40791,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onBeforeLoad : function(){ if(!this.hasFocus){ return; @@ -42246,7 +40802,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.selectedIndex = -1; }, - + onLoad : function(){ if(!this.hasFocus){ return; @@ -42276,7 +40832,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { }, - + onTypeAhead : function(){ if(this.store.getCount() > 0){ var r = this.store.getAt(0); @@ -42290,7 +40846,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + assertValue : function(){ var val = this.getRawValue(), rec; @@ -42310,9 +40866,9 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }else{ if(rec && this.valueField){ - - - + + + if (this.value == val){ return; } @@ -42322,7 +40878,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onSelect : function(record, index){ if(this.fireEvent('beforeselect', this, record, index) !== false){ this.setValue(record.data[this.valueField || this.displayField]); @@ -42331,13 +40887,13 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + getName: function(){ var hf = this.hiddenField; return hf && hf.name ? hf.name : this.hiddenName || Ext.form.ComboBox.superclass.getName.call(this); }, - + getValue : function(){ if(this.valueField){ return Ext.isDefined(this.value) ? this.value : ''; @@ -42346,7 +40902,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + clearValue : function(){ if(this.hiddenField){ this.hiddenField.value = ''; @@ -42357,7 +40913,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.value = ''; }, - + setValue : function(v){ var text = v; if(this.valueField){ @@ -42377,7 +40933,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { return this; }, - + findRecord : function(prop, value){ var record; if(this.store.getCount() > 0){ @@ -42391,14 +40947,14 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { return record; }, - + onViewMove : function(e, t){ this.inKeyMode = false; }, - + onViewOver : function(e, t){ - if(this.inKeyMode){ + if(this.inKeyMode){ return; } var item = this.view.findItemFromChild(t); @@ -42408,7 +40964,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onViewClick : function(doFocus){ var index = this.view.getSelectedIndexes()[0], s = this.store, @@ -42424,7 +40980,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { }, - + restrictHeight : function(){ this.innerList.dom.style.height = ''; var inner = this.innerList.dom, @@ -42443,12 +40999,12 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.list.endUpdate(); }, - + isExpanded : function(){ return this.list && this.list.isVisible(); }, - + selectByValue : function(v, scrollIntoView){ if(!Ext.isEmpty(v, true)){ var r = this.findRecord(this.valueField || this.displayField, v); @@ -42460,7 +41016,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { return false; }, - + select : function(index, scrollIntoView){ this.selectedIndex = index; this.view.select(index); @@ -42473,7 +41029,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { }, - + selectNext : function(){ var ct = this.store.getCount(); if(ct > 0){ @@ -42485,7 +41041,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + selectPrev : function(){ var ct = this.store.getCount(); if(ct > 0){ @@ -42497,7 +41053,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + onKeyUp : function(e){ var k = e.getKey(); if(this.editable !== false && this.readOnly !== true && (k == e.BACKSPACE || !e.isSpecialKey())){ @@ -42508,29 +41064,29 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { Ext.form.ComboBox.superclass.onKeyUp.call(this, e); }, - + validateBlur : function(){ return !this.list || !this.list.isVisible(); }, - + initQuery : function(){ this.doQuery(this.getRawValue()); }, - + beforeBlur : function(){ this.assertValue(); }, - + postBlur : function(){ Ext.form.ComboBox.superclass.postBlur.call(this); this.collapse(); this.inKeyMode = false; }, - + doQuery : function(q, forceAll){ q = Ext.isEmpty(q) ? '' : q; var qe = { @@ -42569,7 +41125,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } }, - + getParams : function(q){ var params = {}, paramNames = this.store.paramNames; @@ -42580,7 +41136,7 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { return params; }, - + collapse : function(){ if(!this.isExpanded()){ return; @@ -42591,14 +41147,14 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.fireEvent('collapse', this); }, - + collapseIf : function(e){ if(!this.isDestroyed && !e.within(this.wrap) && !e.within(this.list)){ this.collapse(); } }, - + expand : function(){ if(this.isExpanded() || !this.hasFocus){ return; @@ -42620,11 +41176,11 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } this.list.alignTo.apply(this.list, [this.el].concat(this.listAlign)); - + this.list.setZIndex(this.getZIndex()); this.list.show(); if(Ext.isGecko2){ - this.innerList.setOverflow('auto'); + this.innerList.setOverflow('auto'); } this.mon(Ext.getDoc(), { scope: this, @@ -42634,9 +41190,9 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { this.fireEvent('expand', this); }, - - - + + + onTriggerClick : function(){ if(this.readOnly || this.disabled){ return; @@ -42655,42 +41211,42 @@ Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, { } } - - - - + + + + }); Ext.reg('combo', Ext.form.ComboBox); Ext.form.Checkbox = Ext.extend(Ext.form.Field, { - + focusClass : undefined, - + fieldClass : 'x-form-field', - + checked : false, - + boxLabel: ' ', - + defaultAutoCreate : { tag: 'input', type: 'checkbox', autocomplete: 'off'}, - - - - + + + + actionMode : 'wrap', - + initComponent : function(){ Ext.form.Checkbox.superclass.initComponent.call(this); this.addEvents( - + 'check' ); }, - + onResize : function(){ Ext.form.Checkbox.superclass.onResize.apply(this, arguments); if(!this.boxLabel && !this.fieldLabel){ @@ -42698,7 +41254,7 @@ Ext.form.Checkbox = Ext.extend(Ext.form.Field, { } }, - + initEvents : function(){ Ext.form.Checkbox.superclass.initEvents.call(this); this.mon(this.el, { @@ -42708,12 +41264,12 @@ Ext.form.Checkbox = Ext.extend(Ext.form.Field, { }); }, - + markInvalid : Ext.emptyFn, - + clearInvalid : Ext.emptyFn, - + onRender : function(ct, position){ Ext.form.Checkbox.superclass.onRender.call(this, ct, position); if(this.inputValue !== undefined){ @@ -42728,25 +41284,25 @@ Ext.form.Checkbox = Ext.extend(Ext.form.Field, { }else{ this.checked = this.el.dom.checked; } - + if (Ext.isIEQuirks) { this.wrap.repaint(); } this.resizeEl = this.positionEl = this.wrap; }, - + onDestroy : function(){ Ext.destroy(this.wrap); Ext.form.Checkbox.superclass.onDestroy.call(this); }, - + initValue : function() { this.originalValue = this.getValue(); }, - + getValue : function(){ if(this.rendered){ return this.el.dom.checked; @@ -42754,24 +41310,24 @@ Ext.form.Checkbox = Ext.extend(Ext.form.Field, { return this.checked; }, - + onClick : function(){ if(this.el.dom.checked != this.checked){ this.setValue(this.el.dom.checked); } }, - + setValue : function(v){ var checked = this.checked, inputVal = this.inputValue; - + if (v === false) { this.checked = false; } else { this.checked = (v === true || v === 'true' || v == '1' || (inputVal ? v == inputVal : String(v).toLowerCase() == 'on')); } - + if(this.rendered){ this.el.dom.checked = this.checked; this.el.dom.defaultChecked = this.checked; @@ -42788,33 +41344,33 @@ Ext.form.Checkbox = Ext.extend(Ext.form.Field, { Ext.reg('checkbox', Ext.form.Checkbox); Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, { - - + + columns : 'auto', - + vertical : false, - + allowBlank : true, - + blankText : "You must select at least one item in this group", - + defaultType : 'checkbox', - + groupCls : 'x-form-check-group', - + initComponent: function(){ this.addEvents( - + 'change' ); this.on('change', this.validate, this); Ext.form.CheckboxGroup.superclass.initComponent.call(this); }, - + onRender : function(ct, position){ if(!this.el){ var panelCfg = { @@ -42824,7 +41380,7 @@ Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, { cls: this.groupCls, layout: 'column', renderTo: ct, - bufferResize: false + bufferResize: false }; var colCfg = { xtype: 'container', @@ -42838,7 +41394,7 @@ Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, { if(this.items[0].items){ - + Ext.apply(panelCfg, { layoutConfig: {columns: this.items.length}, @@ -42851,25 +41407,25 @@ Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, { }else{ - - + + var numCols, cols = []; - if(typeof this.columns == 'string'){ + if(typeof this.columns == 'string'){ this.columns = this.items.length; } if(!Ext.isArray(this.columns)){ var cs = []; for(var i=0; i"); }, - + sortErrors: function() { var fields = this.items; @@ -43371,34 +41927,34 @@ Ext.form.CompositeField = Ext.extend(Ext.form.Field, { }); }, - + reset: function() { this.eachItem(function(item) { item.reset(); }); - - + + (function() { this.clearInvalid(); }).defer(50, this); }, - - + + clearInvalidChildren: function() { this.eachItem(function(item) { item.clearInvalid(); }); }, - + buildLabel: function(segments) { return Ext.clean(segments).join(this.labelConnector); }, - + isDirty: function(){ - + if (this.disabled || !this.rendered) { return false; } @@ -43413,14 +41969,14 @@ Ext.form.CompositeField = Ext.extend(Ext.form.Field, { return dirty; }, - + eachItem: function(fn, scope) { if(this.items && this.items.each){ this.items.each(fn, scope || this); } }, - + onResize: function(adjWidth, adjHeight, rawWidth, rawHeight) { var innerCt = this.innerCt; @@ -43431,7 +41987,7 @@ Ext.form.CompositeField = Ext.extend(Ext.form.Field, { Ext.form.CompositeField.superclass.onResize.apply(this, arguments); }, - + doLayout: function(shallow, force) { if (this.rendered) { var innerCt = this.innerCt; @@ -43441,14 +41997,14 @@ Ext.form.CompositeField = Ext.extend(Ext.form.Field, { } }, - + beforeDestroy: function(){ Ext.destroy(this.innerCt); Ext.form.CompositeField.superclass.beforeDestroy.call(this); }, - + setReadOnly : function(readOnly) { if (readOnly == undefined) { readOnly = true; @@ -43468,14 +42024,14 @@ Ext.form.CompositeField = Ext.extend(Ext.form.Field, { this.doLayout(); }, - + onDisable : function(){ this.eachItem(function(item){ item.disable(); }); }, - + onEnable : function(){ this.eachItem(function(item){ item.enable(); @@ -43487,19 +42043,19 @@ Ext.reg('compositefield', Ext.form.CompositeField); Ext.form.Radio = Ext.extend(Ext.form.Checkbox, { inputType: 'radio', - + markInvalid : Ext.emptyFn, - + clearInvalid : Ext.emptyFn, - + getGroupValue : function(){ var p = this.el.up('form') || Ext.getBody(); var c = p.child('input[name="'+this.el.dom.name+'"]:checked', true); return c ? c.value : null; }, - + setValue : function(v){ var checkEl, els, @@ -43525,7 +42081,7 @@ Ext.form.Radio = Ext.extend(Ext.form.Checkbox, { return this; }, - + getCheckEl: function(){ if(this.inGroup){ return this.el.up('.x-form-radio-group'); @@ -43536,21 +42092,21 @@ Ext.form.Radio = Ext.extend(Ext.form.Checkbox, { Ext.reg('radio', Ext.form.Radio); Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, { - - + + allowBlank : true, - + blankText : 'You must select one item in this group', - - + + defaultType : 'radio', - - + + groupCls : 'x-form-radio-group', - - - - + + + + getValue : function(){ var out = null; this.eachItem(function(item){ @@ -43561,8 +42117,8 @@ Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, { }); return out; }, - - + + onSetValue : function(id, value){ if(arguments.length > 1){ var f = this.getBox(id); @@ -43580,23 +42136,23 @@ Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, { this.setValueForItem(id); } }, - + setValueForItem : function(val){ val = String(val).split(',')[0]; this.eachItem(function(item){ item.setValue(val == item.inputValue); }); }, - - + + fireChecked : function(){ if(!this.checkTask){ this.checkTask = new Ext.util.DelayedTask(this.bufferChecked, this); } this.checkTask.delay(10); }, - - + + bufferChecked : function(){ var out = null; this.eachItem(function(item){ @@ -43607,7 +42163,7 @@ Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, { }); this.fireEvent('change', this, out); }, - + onDestroy : function(){ if(this.checkTask){ this.checkTask.cancel(); @@ -43621,22 +42177,22 @@ Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, { Ext.reg('radiogroup', Ext.form.RadioGroup); Ext.form.Hidden = Ext.extend(Ext.form.Field, { - + inputType : 'hidden', - + shouldLayout: false, - + onRender : function(){ Ext.form.Hidden.superclass.onRender.apply(this, arguments); }, - + initEvents : function(){ this.originalValue = this.getValue(); }, - + setSize : Ext.emptyFn, setWidth : Ext.emptyFn, setHeight : Ext.emptyFn, @@ -43653,16 +42209,16 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { if(Ext.isString(this.paramOrder)){ this.paramOrder = this.paramOrder.split(/[\s,|]/); } - + this.items = new Ext.util.MixedCollection(false, function(o){ return o.getItemId(); }); this.addEvents( - + 'beforeaction', - + 'actionfailed', - + 'actioncomplete' ); @@ -43672,36 +42228,36 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { Ext.form.BasicForm.superclass.constructor.call(this); }, - - - - - - - + + + + + + + timeout: 30, - - + + paramOrder: undefined, - + paramsAsHash: false, - + waitTitle: 'Please Wait...', - + activeAction : null, - + trackResetOnLoad : false, - - - + + + initEl : function(el){ this.el = Ext.get(el); this.id = this.el.id || Ext.id(); @@ -43711,17 +42267,17 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { this.el.addClass('x-form'); }, - + getEl: function(){ return this.el; }, - + onSubmit : function(e){ e.stopEvent(); }, - + destroy: function(bound){ if(bound !== true){ this.items.each(function(f){ @@ -43733,7 +42289,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { this.purgeListeners(); }, - + isValid : function(){ var valid = true; this.items.each(function(f){ @@ -43744,7 +42300,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return valid; }, - + isDirty : function(){ var dirty = false; this.items.each(function(f){ @@ -43756,7 +42312,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return dirty; }, - + doAction : function(action, options){ if(Ext.isString(action)){ action = new Ext.form.Action.ACTION_TYPES[action](this, options); @@ -43768,7 +42324,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + submit : function(options){ options = options || {}; if(this.standardSubmit){ @@ -43787,14 +42343,14 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + load : function(options){ var loadAction = String.format('{0}load', this.api ? 'direct' : ''); this.doAction(loadAction, options); return this; }, - + updateRecord : function(record){ record.beginEdit(); var fs = record.fields, @@ -43819,15 +42375,15 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + loadRecord : function(record){ this.setValues(record.data); return this; }, - + beforeAction : function(action){ - + this.items.each(function(f){ if(f.isFormField && f.syncValue){ f.syncValue(); @@ -43846,7 +42402,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { } }, - + afterAction : function(action, success){ this.activeAction = null; var o = action.options; @@ -43872,12 +42428,12 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { } }, - + findField : function(id) { var field = this.items.get(id); if (!Ext.isObject(field)) { - + var findMatchingField = function(f) { if (f.isFormField) { if (f.dataIndex == id || f.id == id || f.getName() == id) { @@ -43897,7 +42453,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { }, - + markInvalid : function(errors){ if (Ext.isArray(errors)) { for(var i = 0, len = errors.length; i < len; i++){ @@ -43919,9 +42475,9 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + setValues : function(values){ - if(Ext.isArray(values)){ + if(Ext.isArray(values)){ for(var i = 0, len = values.length; i < len; i++){ var v = values[i]; var f = this.findField(v.id); @@ -43932,7 +42488,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { } } } - }else{ + }else{ var field, id; for(id in values){ if(!Ext.isFunction(values[id]) && (field = this.findField(id))){ @@ -43946,7 +42502,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + getValues : function(asString){ var fs = Ext.lib.Ajax.serializeForm(this.el.dom); if(asString === true){ @@ -43955,7 +42511,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return Ext.urlDecode(fs); }, - + getFieldValues : function(dirtyOnly){ var o = {}, n, @@ -43981,7 +42537,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return o; }, - + clearInvalid : function(){ this.items.each(function(f){ f.clearInvalid(); @@ -43989,7 +42545,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + reset : function(){ this.items.each(function(f){ f.reset(); @@ -43997,34 +42553,34 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + add : function(){ this.items.addAll(Array.prototype.slice.call(arguments, 0)); return this; }, - + remove : function(field){ this.items.remove(field); return this; }, - + cleanDestroyed : function() { this.items.filterBy(function(o) { return !!o.isDestroyed; }).each(this.remove, this); }, - + render : function(){ this.items.each(function(f){ - if(f.isFormField && !f.rendered && document.getElementById(f.id)){ + if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyToMarkup(f.id); } }); return this; }, - + applyToFields : function(o){ this.items.each(function(f){ Ext.apply(f, o); @@ -44032,7 +42588,7 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { return this; }, - + applyIfToFields : function(o){ this.items.each(function(f){ Ext.applyIf(f, o); @@ -44055,31 +42611,31 @@ Ext.form.BasicForm = Ext.extend(Ext.util.Observable, { Ext.BasicForm = Ext.form.BasicForm; Ext.FormPanel = Ext.extend(Ext.Panel, { - - - - - - - - + + + + + + + + minButtonWidth : 75, - + labelAlign : 'left', - + monitorValid : false, - + monitorPoll : 200, - + layout : 'form', - + initComponent : function(){ this.form = this.createForm(); Ext.FormPanel.superclass.initComponent.call(this); @@ -44096,20 +42652,20 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { this.initItems(); this.addEvents( - + 'clientvalidation' ); this.relayEvents(this.form, ['beforeaction', 'actionfailed', 'actioncomplete']); }, - + createForm : function(){ var config = Ext.applyIf({listeners: {}}, this.initialConfig); return new Ext.form.BasicForm(null, config); }, - + initFields : function(){ var f = this.form; var formPanel = this; @@ -44118,7 +42674,7 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { f.add(c); }else if(c.findBy && c != formPanel){ formPanel.applySettings(c); - + if(c.items && c.items.each){ c.items.each(fn, this); } @@ -44127,7 +42683,7 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { this.items.each(fn, this); }, - + applySettings: function(c){ var ct = c.ownerCt; Ext.applyIf(c, { @@ -44137,75 +42693,75 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { }); }, - + getLayoutTarget : function(){ return this.form.el; }, - + getForm : function(){ return this.form; }, - + onRender : function(ct, position){ this.initFields(); Ext.FormPanel.superclass.onRender.call(this, ct, position); this.form.initEl(this.body); }, - + beforeDestroy : function(){ this.stopMonitoring(); this.form.destroy(true); Ext.FormPanel.superclass.beforeDestroy.call(this); }, - + isField : function(c) { return !!c.setValue && !!c.getValue && !!c.markInvalid && !!c.clearInvalid; }, - + initEvents : function(){ Ext.FormPanel.superclass.initEvents.call(this); - + this.on({ scope: this, add: this.onAddEvent, remove: this.onRemoveEvent }); - if(this.monitorValid){ + if(this.monitorValid){ this.startMonitoring(); } }, - + onAdd: function(c){ Ext.FormPanel.superclass.onAdd.call(this, c); this.processAdd(c); }, - + onAddEvent: function(ct, c){ if(ct !== this){ this.processAdd(c); } }, - + processAdd : function(c){ - + if(this.isField(c)){ this.form.add(c); - + }else if(c.findBy){ this.applySettings(c); this.form.add.apply(this.form, c.findBy(this.isField)); } }, - + onRemove: function(c){ Ext.FormPanel.superclass.onRemove.call(this, c); this.processRemove(c); @@ -44217,22 +42773,22 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { } }, - + processRemove: function(c){ if(!this.destroying){ - + if(this.isField(c)){ this.form.remove(c); - + }else if (c.findBy){ Ext.each(c.findBy(this.isField), this.form.remove, this.form); - + this.form.cleanDestroyed(); } } }, - + startMonitoring : function(){ if(!this.validTask){ this.validTask = new Ext.util.TaskRunner(); @@ -44244,7 +42800,7 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { } }, - + stopMonitoring : function(){ if(this.validTask){ this.validTask.stopAll(); @@ -44252,12 +42808,12 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { } }, - + load : function(){ this.form.load.apply(this.form, arguments); }, - + onDisable : function(){ Ext.FormPanel.superclass.onDisable.call(this); if(this.form){ @@ -44267,7 +42823,7 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { } }, - + onEnable : function(){ Ext.FormPanel.superclass.onEnable.call(this); if(this.form){ @@ -44277,7 +42833,7 @@ Ext.FormPanel = Ext.extend(Ext.Panel, { } }, - + bindHandler : function(){ var valid = true; this.form.items.each(function(f){ @@ -44303,19 +42859,19 @@ Ext.reg('form', Ext.FormPanel); Ext.form.FormPanel = Ext.FormPanel; Ext.form.FieldSet = Ext.extend(Ext.Panel, { - - - - - - + + + + + + baseCls : 'x-fieldset', - + layout : 'form', - + animCollapse : false, - + onRender : function(ct, position){ if(!this.el){ this.el = document.createElement('fieldset'); @@ -44337,7 +42893,7 @@ Ext.form.FieldSet = Ext.extend(Ext.Panel, { } }, - + onCollapse : function(doAnim, animArg){ if(this.checkbox){ this.checkbox.dom.checked = false; @@ -44346,7 +42902,7 @@ Ext.form.FieldSet = Ext.extend(Ext.Panel, { }, - + onExpand : function(doAnim, animArg){ if(this.checkbox){ this.checkbox.dom.checked = true; @@ -44354,70 +42910,70 @@ Ext.form.FieldSet = Ext.extend(Ext.Panel, { Ext.form.FieldSet.superclass.onExpand.call(this, doAnim, animArg); }, - + onCheckClick : function(){ this[this.checkbox.dom.checked ? 'expand' : 'collapse'](); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }); Ext.reg('fieldset', Ext.form.FieldSet); Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { - + enableFormat : true, - + enableFontSize : true, - + enableColors : true, - + enableAlignments : true, - + enableLists : true, - + enableSourceEdit : true, - + enableLinks : true, - + enableFont : true, - + createLinkText : 'Please enter the URL for the link:', - + defaultLinkValue : 'http:/'+'/', - + fontFamilies : [ 'Arial', 'Courier New', @@ -44426,10 +42982,10 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { 'Verdana' ], defaultFont: 'tahoma', - + defaultValue: (Ext.isOpera || Ext.isIE6) ? ' ' : '​', - + actionMode: 'wrap', validationEvent : false, deferHeight: true, @@ -44445,28 +43001,28 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { autocomplete: "off" }, - + initComponent : function(){ this.addEvents( - + 'initialize', - + 'activate', - + 'beforesync', - + 'beforepush', - + 'sync', - + 'push', - + 'editmodechange' ); Ext.form.HtmlEditor.superclass.initComponent.call(this); }, - + createFontOptions : function(){ var buf = [], fs = this.fontFamilies, ff, lc; for(var i = 0, len = fs.length; i< len; i++){ @@ -44482,7 +43038,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { return buf.join(''); }, - + createToolbar : function(editor){ var items = []; var tipsEnabled = Ext.QuickTips && Ext.QuickTips.isEnabled(); @@ -44624,7 +43180,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } } - + var tb = new Ext.Toolbar({ renderTo: this.wrap.dom.firstChild, items: items @@ -44640,7 +43196,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }, this); } - + this.mon(tb.el, 'click', function(e){ e.preventDefault(); }); @@ -44676,35 +43232,35 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + getDocMarkup : function(){ var h = Ext.fly(this.iframe).getHeight() - this.iframePad * 2; return String.format('', this.iframePad, h); }, - + getEditorBody : function(){ var doc = this.getDoc(); return doc.body || doc.documentElement; }, - + getDoc : function(){ return Ext.isIE ? this.getWin().document : (this.iframe.contentDocument || this.getWin().document); }, - + getWin : function(){ return Ext.isIE ? this.iframe.contentWindow : window.frames[this.iframe.name]; }, - + onRender : function(ct, position){ Ext.form.HtmlEditor.superclass.onRender.call(this, ct, position); this.el.dom.style.border = '0 none'; this.el.dom.setAttribute('tabIndex', -1); this.el.addClass('x-hidden'); - if(Ext.isIE){ + if(Ext.isIE){ this.el.applyStyles('margin-top:-1px;margin-bottom:-1px;'); } this.wrap = this.el.wrap({ @@ -44752,7 +43308,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { doc.write(this.getDocMarkup()); doc.close(); - this.readyTask = { + this.readyTask = { run : function(){ var doc = this.getDoc(); if(doc.body || doc.readyState == 'complete'){ @@ -44781,7 +43337,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + setDesignMode : function(mode){ var doc = this.getDoc(); if (doc) { @@ -44793,7 +43349,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }, - + getDesignMode : function(){ var doc = this.getDoc(); if(!doc){ return ''; } @@ -44812,7 +43368,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }); }, - + onResize : function(w, h){ Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments); if(this.el && this.iframe){ @@ -44834,7 +43390,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + toggleSourceEdit : function(sourceEditMode){ var iframeHeight, elHeight; @@ -44852,7 +43408,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } } if (this.sourceEditMode) { - + this.previousSize = this.getSize(); iframeHeight = Ext.get(this.iframe).getHeight(); @@ -44883,7 +43439,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.fireEvent('editmodechange', this, this.sourceEditMode); }, - + createLink : function() { var url = prompt(this.createLinkText, this.defaultLinkValue); if(url && url != 'http:/'+'/'){ @@ -44891,45 +43447,45 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + initEvents : function(){ this.originalValue = this.getValue(); }, - + markInvalid : Ext.emptyFn, - + clearInvalid : Ext.emptyFn, - + setValue : function(v){ Ext.form.HtmlEditor.superclass.setValue.call(this, v); this.pushValue(); return this; }, - + cleanHtml: function(html) { html = String(html); - if(Ext.isWebKit){ + if(Ext.isWebKit){ html = html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, ''); } - + if(html.charCodeAt(0) == this.defaultValue.replace(/\D/g, '')){ html = html.substring(1); } return html; }, - + syncValue : function(){ if(this.initialized){ var bd = this.getEditorBody(); var html = bd.innerHTML; if(Ext.isWebKit){ - var bs = bd.getAttribute('style'); + var bs = bd.getAttribute('style'); var m = bs.match(/text-align:(.*?);/i); if(m && m[1]){ html = '
    ' + html + '
    '; @@ -44943,13 +43499,13 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + getValue : function() { this[this.sourceEditMode ? 'pushValue' : 'syncValue'](); return Ext.form.HtmlEditor.superclass.getValue.call(this); }, - + pushValue : function(){ if(this.initialized){ var v = this.el.dom.value; @@ -44959,8 +43515,8 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { if(this.fireEvent('beforepush', this, v) !== false){ this.getEditorBody().innerHTML = v; if(Ext.isGecko){ - - this.setDesignMode(false); + + this.setDesignMode(false); this.setDesignMode(true); } this.fireEvent('push', this, v); @@ -44969,12 +43525,12 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + deferFocus : function(){ this.focus.defer(10, this); }, - + focus : function(){ if(this.win && !this.sourceEditMode){ this.win.focus(); @@ -44983,17 +43539,17 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + initEditor : function(){ - + try{ var dbody = this.getEditorBody(), ss = this.el.getStyles('font-size', 'font-family', 'background-image', 'background-repeat', 'background-color', 'color'), doc, fn; - ss['background-attachment'] = 'fixed'; - dbody.bgProperties = 'fixed'; + ss['background-attachment'] = 'fixed'; + dbody.bgProperties = 'fixed'; Ext.DomHelper.applyStyles(dbody, ss); @@ -45005,7 +43561,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }catch(e){} } - + fn = this.onEditorEvent.createDelegate(this); Ext.EventManager.on(doc, { mousedown: fn, @@ -45029,7 +43585,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }catch(e){} }, - + beforeDestroy : function(){ if(this.monitorTask){ Ext.TaskMgr.stop(this.monitorTask); @@ -45057,11 +43613,11 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { Ext.form.HtmlEditor.superclass.beforeDestroy.call(this); }, - + onFirstFocus : function(){ this.activated = true; this.disableItems(this.readOnly); - if(Ext.isGecko){ + if(Ext.isGecko){ this.win.focus(); var s = this.win.getSelection(); if(!s.focusNode || s.focusNode.nodeType != 3){ @@ -45078,14 +43634,14 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.fireEvent('activate', this); }, - + adjustFont: function(btn){ var adjust = btn.getItemId() == 'increasefontsize' ? 1 : -1, doc = this.getDoc(), v = parseInt(doc.queryCommandValue('FontSize') || 2, 10); if((Ext.isSafari && !Ext.isSafari2) || Ext.isChrome || Ext.isAir){ - - + + if(v <= 10){ v = 1 + adjust; }else if(v <= 13){ @@ -45101,7 +43657,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } v = v.constrain(1, 6); }else{ - if(Ext.isSafari){ + if(Ext.isSafari){ adjust *= 2; } v = Math.max(1, v+adjust) + (Ext.isSafari ? 'px' : 0); @@ -45109,13 +43665,13 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.execCmd('FontSize', v); }, - + onEditorEvent : function(e){ this.updateToolbar(); }, - + updateToolbar: function(){ if(this.readOnly){ @@ -45156,12 +43712,12 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.syncValue(); }, - + relayBtnCmd : function(btn){ this.relayCmd(btn.getItemId()); }, - + relayCmd : function(cmd, value){ (function(){ this.focus(); @@ -45170,14 +43726,14 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }).defer(10, this); }, - + execCmd : function(cmd, value){ var doc = this.getDoc(); doc.execCommand(cmd, false, value === undefined ? null : value); this.syncValue(); }, - + applyCommand : function(e){ if(e.ctrlKey){ var c = e.getCharCode(), cmd; @@ -45204,7 +43760,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - + insertAtCursor : function(text){ if(!this.activated){ return; @@ -45225,8 +43781,8 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }, - - fixKeys : function(){ + + fixKeys : function(){ if(Ext.isIE){ return function(e){ var k = e.getKey(), @@ -45279,12 +43835,12 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } }(), - + getToolbar : function(){ return this.tb; }, - + buttonTips : { bold : { title: 'Bold (Ctrl+B)', @@ -45358,76 +43914,76 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }); Ext.reg('htmleditor', Ext.form.HtmlEditor); Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { - + minValue : undefined, - + maxValue : undefined, - + minText : "The time in this field must be equal to or after {0}", - + maxText : "The time in this field must be equal to or before {0}", - + invalidText : "{0} is not a valid time", - + format : "g:i A", - + altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A", - + increment: 15, - + mode: 'local', - + triggerAction: 'all', - + typeAhead: false, - - - + + + initDate: '1/1/2008', initDateFormat: 'j/n/Y', - + initComponent : function(){ if(Ext.isDefined(this.minValue)){ this.setMinValue(this.minValue, true); @@ -45441,19 +43997,19 @@ Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { Ext.form.TimeField.superclass.initComponent.call(this); }, - + setMinValue: function(value, initial){ this.setLimit(value, true, initial); return this; }, - + setMaxValue: function(value, initial){ this.setLimit(value, false, initial); return this; }, - + generateStore: function(initial){ var min = this.minValue || new Date(this.initDate).clearTime(), max = this.maxValue || new Date(this.initDate).clearTime().add('mi', (24 * 60) - 1), @@ -45466,7 +44022,7 @@ Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { this.bindStore(times, initial); }, - + setLimit: function(value, isMin, initial){ var d; if(Ext.isString(value)){ @@ -45484,18 +44040,18 @@ Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { } }, - + getValue : function(){ var v = Ext.form.TimeField.superclass.getValue.call(this); return this.formatDate(this.parseDate(v)) || ''; }, - + setValue : function(value){ return Ext.form.TimeField.superclass.setValue.call(this, this.formatDate(this.parseDate(value))); }, - + validateValue : Ext.form.DateField.prototype.validateValue, formatDate : Ext.form.DateField.prototype.formatDate, @@ -45507,7 +44063,7 @@ Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { var id = this.initDate + ' ', idf = this.initDateFormat + ' ', - v = Date.parseDate(id + value, idf + this.format), + v = Date.parseDate(id + value, idf + this.format), af = this.altFormats; if (!v && af) { @@ -45524,120 +44080,120 @@ Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, { }); Ext.reg('timefield', Ext.form.TimeField); Ext.form.SliderField = Ext.extend(Ext.form.Field, { - - + + useTips : true, - - + + tipText : null, - - + + actionMode: 'wrap', - - + + initComponent : function() { var cfg = Ext.copyTo({ id: this.id + '-slider' }, this.initialConfig, ['vertical', 'minValue', 'maxValue', 'decimalPrecision', 'keyIncrement', 'increment', 'clickToChange', 'animate']); - - + + if (this.useTips) { var plug = this.tipText ? {getText: this.tipText} : {}; cfg.plugins = [new Ext.slider.Tip(plug)]; } this.slider = new Ext.Slider(cfg); Ext.form.SliderField.superclass.initComponent.call(this); - }, - - + }, + + onRender : function(ct, position){ this.autoCreate = { id: this.id, name: this.name, type: 'hidden', - tag: 'input' + tag: 'input' }; Ext.form.SliderField.superclass.onRender.call(this, ct, position); this.wrap = this.el.wrap({cls: 'x-form-field-wrap'}); this.resizeEl = this.positionEl = this.wrap; this.slider.render(this.wrap); }, - - + + onResize : function(w, h, aw, ah){ Ext.form.SliderField.superclass.onResize.call(this, w, h, aw, ah); - this.slider.setSize(w, h); + this.slider.setSize(w, h); }, - - + + initEvents : function(){ Ext.form.SliderField.superclass.initEvents.call(this); - this.slider.on('change', this.onChange, this); + this.slider.on('change', this.onChange, this); }, - - + + onChange : function(slider, v){ this.setValue(v, undefined, true); }, - - + + onEnable : function(){ Ext.form.SliderField.superclass.onEnable.call(this); this.slider.enable(); }, - - + + onDisable : function(){ Ext.form.SliderField.superclass.onDisable.call(this); - this.slider.disable(); + this.slider.disable(); }, - - + + beforeDestroy : function(){ Ext.destroy(this.slider); Ext.form.SliderField.superclass.beforeDestroy.call(this); }, - - + + alignErrorIcon : function(){ this.errorIcon.alignTo(this.slider.el, 'tl-tr', [2, 0]); }, - - + + setMinValue : function(v){ this.slider.setMinValue(v); - return this; + return this; }, - - + + setMaxValue : function(v){ this.slider.setMaxValue(v); - return this; + return this; }, - - + + setValue : function(v, animate, silent){ - - + + if(!silent){ this.slider.setValue(v, animate); } return Ext.form.SliderField.superclass.setValue.call(this, this.slider.getValue()); }, - - + + getValue : function(){ - return this.slider.getValue(); + return this.slider.getValue(); } }); Ext.reg('sliderfield', Ext.form.SliderField); Ext.form.Label = Ext.extend(Ext.BoxComponent, { - - - - + + + + onRender : function(ct, position){ if(!this.el){ this.el = document.createElement('label'); @@ -45650,7 +44206,7 @@ Ext.form.Label = Ext.extend(Ext.BoxComponent, { Ext.form.Label.superclass.onRender.call(this, ct, position); }, - + setText : function(t, encode){ var e = encode === false; this[!e ? 'text' : 'html'] = t; @@ -45694,34 +44250,34 @@ Ext.form.Action.prototype = { type : 'default', - - - + + + run : function(options){ }, - + success : function(response){ }, - + handleResponse : function(response){ }, - + failure : function(response){ this.response = response; this.failureType = Ext.form.Action.CONNECT_FAILURE; this.form.afterAction(this, false); }, - - - + + + processResponse : function(response){ this.response = response; if(!response.responseText && !response.responseXML){ @@ -45730,16 +44286,16 @@ Ext.form.Action.prototype = { this.result = this.handleResponse(response); return this.result; }, - + decodeResponse: function(response) { try { return Ext.decode(response.responseText); } catch(e) { return false; - } + } }, - + getUrl : function(appendParams){ var url = this.options.url || this.form.url || this.form.el.dom.action; if(appendParams){ @@ -45751,12 +44307,12 @@ Ext.form.Action.prototype = { return url; }, - + getMethod : function(){ return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase(); }, - + getParams : function(){ var bp = this.form.baseParams; var p = this.options.params; @@ -45772,7 +44328,7 @@ Ext.form.Action.prototype = { return p; }, - + createCallback : function(opts){ var opts = opts || {}; return { @@ -45791,11 +44347,11 @@ Ext.form.Action.Submit = function(form, options){ }; Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { - - + + type : 'submit', - + run : function(){ var o = this.options, method = this.getMethod(), @@ -45813,7 +44369,7 @@ Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { f.items.each(setupEmptyFields); } }; - + fields.each(setupEmptyFields); } Ext.Ajax.request(Ext.apply(this.createCallback(o), { @@ -45831,13 +44387,13 @@ Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { } }); } - }else if (o.clientValidation !== false){ + }else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; this.form.afterAction(this, false); } }, - + success : function(response){ var result = this.processResponse(response); if(result === true || result.success){ @@ -45851,7 +44407,7 @@ Ext.extend(Ext.form.Action.Submit, Ext.form.Action, { this.form.afterAction(this, false); }, - + handleResponse : function(response){ if(this.form.errorReader){ var rs = this.form.errorReader.read(response); @@ -45882,10 +44438,10 @@ Ext.form.Action.Load = function(form, options){ }; Ext.extend(Ext.form.Action.Load, Ext.form.Action, { - + type : 'load', - + run : function(){ Ext.Ajax.request(Ext.apply( this.createCallback(this.options), { @@ -45896,7 +44452,7 @@ Ext.extend(Ext.form.Action.Load, Ext.form.Action, { })); }, - + success : function(response){ var result = this.processResponse(response); if(result === true || !result.success || !result.data){ @@ -45909,7 +44465,7 @@ Ext.extend(Ext.form.Action.Load, Ext.form.Action, { this.form.afterAction(this, true); }, - + handleResponse : function(response){ if(this.form.reader){ var rs = this.form.reader.read(response); @@ -45953,9 +44509,9 @@ Ext.form.Action.DirectLoad = Ext.extend(Ext.form.Action.Load, { } return buf; }, - - - + + + processResponse : function(result) { this.result = result; return result; @@ -45975,15 +44531,15 @@ Ext.form.Action.DirectSubmit = Ext.extend(Ext.form.Action.Submit, { Ext.form.Action.DirectSubmit.superclass.constructor.call(this, form, opts); }, type : 'directsubmit', - + run : function(){ var o = this.options; if(o.clientValidation === false || this.form.isValid()){ - - + + this.success.params = this.getParams(); this.form.api.submit(this.form.el.dom, this.success, this); - }else if (o.clientValidation !== false){ + }else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID; this.form.afterAction(this, false); } @@ -45996,9 +44552,9 @@ Ext.form.Action.DirectSubmit = Ext.extend(Ext.form.Action.Submit, { Ext.apply(o, p, bp); return o; }, - - - + + + processResponse : function(result) { this.result = result; return result; @@ -46020,21 +44576,21 @@ Ext.form.Action.ACTION_TYPES = { }; Ext.form.VTypes = function(){ - + var alpha = /^[a-zA-Z_]+$/, alphanum = /^[a-zA-Z0-9_]+$/, email = /^(\w+)([\-+.\'][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,}$/, url = /(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; - + return { - + 'email' : function(v){ return email.test(v); }, - + 'emailText' : 'This field should be an e-mail address in the format "user@example.com"', - + 'emailMask' : /[a-z0-9_\.\-\+\'@]/i, /** @@ -46188,85 +44744,85 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { *

    See {@link #autoExpandMax} and {@link #autoExpandMin} also.

    */ autoExpandColumn : false, - - + + autoExpandMax : 1000, - - + + autoExpandMin : 50, - - + + columnLines : false, - - - - - - + + + + + + ddText : '{0} selected row{1}', - - + + deferRowRender : true, - - - - + + + + enableColumnHide : true, - - + + enableColumnMove : true, - - + + enableDragDrop : false, - - + + enableHdMenu : true, - - - + + + loadMask : false, - - - + + + minColumnWidth : 25, - - - - - + + + + + stripeRows : false, - - + + trackMouseOver : true, - - + + stateEvents : ['columnmove', 'columnresize', 'sortchange', 'groupchange'], - - + + view : null, - + bubbleEvents: [], - - + + rendered : false, - - + + viewReady : false, - + initComponent : function() { Ext.grid.GridPanel.superclass.initComponent.call(this); if (this.columnLines) { this.cls = (this.cls || '') + ' x-grid-with-col-lines'; } - - + + this.autoScroll = false; this.autoWidth = false; @@ -46275,7 +44831,7 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { delete this.columns; } - + if(this.ds){ this.store = this.ds; delete this.ds; @@ -46291,99 +44847,99 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { this.store = Ext.StoreMgr.lookup(this.store); this.addEvents( - - + + 'click', - + 'dblclick', - + 'contextmenu', - + 'mousedown', - + 'mouseup', - + 'mouseover', - + 'mouseout', - + 'keypress', - + 'keydown', - - + + 'cellmousedown', - + 'rowmousedown', - + 'headermousedown', - + 'groupmousedown', - + 'rowbodymousedown', - + 'containermousedown', - + 'cellclick', - + 'celldblclick', - + 'rowclick', - + 'rowdblclick', - + 'headerclick', - + 'headerdblclick', - + 'groupclick', - + 'groupdblclick', - + 'containerclick', - + 'containerdblclick', - + 'rowbodyclick', - + 'rowbodydblclick', - + 'rowcontextmenu', - + 'cellcontextmenu', - + 'headercontextmenu', - + 'groupcontextmenu', - + 'containercontextmenu', - + 'rowbodycontextmenu', - + 'bodyscroll', - + 'columnresize', - + 'columnmove', - + 'sortchange', - + 'groupchange', - + 'reconfigure', - + 'viewready' ); }, - + onRender : function(ct, position){ Ext.grid.GridPanel.superclass.onRender.apply(this, arguments); @@ -46407,7 +44963,7 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { this.getSelectionModel().init(this); }, - + initEvents : function(){ Ext.grid.GridPanel.superclass.initEvents.call(this); @@ -46499,7 +45055,7 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { return o; }, - + afterRender : function(){ Ext.grid.GridPanel.superclass.afterRender.call(this); var v = this.view; @@ -46516,7 +45072,7 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { this.viewReady = true; }, - + reconfigure : function(store, colModel){ var rendered = this.rendered; if(rendered){ @@ -46537,7 +45093,7 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { this.fireEvent('reconfigure', this, store, colModel); }, - + onDestroy : function(){ if (this.deferRowRenderTask && this.deferRowRenderTask.cancel){ this.deferRowRenderTask.cancel(); @@ -46552,32 +45108,32 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { Ext.grid.GridPanel.superclass.onDestroy.call(this); }, - + processEvent : function(name, e){ this.view.processEvent(name, e); }, - + onClick : function(e){ this.processEvent('click', e); }, - + onMouseDown : function(e){ this.processEvent('mousedown', e); }, - + onContextMenu : function(e, t){ this.processEvent('contextmenu', e); }, - + onDblClick : function(e){ this.processEvent('dblclick', e); }, - + walkCells : function(row, col, step, fn, scope){ var cm = this.colModel, clen = cm.getColumnCount(), @@ -46625,15 +45181,15 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { return null; }, - + getGridEl : function(){ return this.body; }, - + stopEditing : Ext.emptyFn, - + getSelectionModel : function(){ if(!this.selModel){ this.selModel = new Ext.grid.RowSelectionModel( @@ -46642,115 +45198,115 @@ Ext.grid.GridPanel = Ext.extend(Ext.Panel, { return this.selModel; }, - + getStore : function(){ return this.store; }, - + getColumnModel : function(){ return this.colModel; }, - + getView : function() { if (!this.view) { this.view = new Ext.grid.GridView(this.viewConfig); } - + return this.view; }, - + getDragDropText : function(){ var count = this.selModel.getCount ? this.selModel.getCount() : 1; return String.format(this.ddText, count, count == 1 ? '' : 's'); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }); Ext.reg('grid', Ext.grid.GridPanel); Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, { - - + + aggregator: 'sum', - - + + renderer: undefined, - - - - - - - - + + + + + + + + initComponent: function() { Ext.grid.PivotGrid.superclass.initComponent.apply(this, arguments); - + this.initAxes(); - - + + this.enableColumnResize = false; - + this.viewConfig = Ext.apply(this.viewConfig || {}, { forceFit: true }); - - - + + + this.colModel = new Ext.grid.ColumnModel({}); }, - - + + getAggregator: function() { if (typeof this.aggregator == 'string') { return Ext.grid.PivotAggregatorMgr.types[this.aggregator]; @@ -46758,41 +45314,41 @@ Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, { return this.aggregator; } }, - - + + setAggregator: function(aggregator) { this.aggregator = aggregator; }, - - + + setMeasure: function(measure) { this.measure = measure; }, - - + + setLeftAxis: function(axis, refresh) { - + this.leftAxis = axis; - + if (refresh) { this.view.refresh(); } }, - - + + setTopAxis: function(axis, refresh) { - + this.topAxis = axis; - + if (refresh) { this.view.refresh(); } }, - - + + initAxes: function() { var PivotAxis = Ext.grid.PivotAxis; - + if (!(this.leftAxis instanceof PivotAxis)) { this.setLeftAxis(new PivotAxis({ orientation: 'vertical', @@ -46800,7 +45356,7 @@ Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, { store : this.store })); }; - + if (!(this.topAxis instanceof PivotAxis)) { this.setTopAxis(new PivotAxis({ orientation: 'horizontal', @@ -46809,34 +45365,34 @@ Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, { })); }; }, - - + + extractData: function() { var records = this.store.data.items, recCount = records.length, cells = [], record, i, j, k; - + if (recCount == 0) { return []; } - + var leftTuples = this.leftAxis.getTuples(), leftCount = leftTuples.length, topTuples = this.topAxis.getTuples(), topCount = topTuples.length, aggregator = this.getAggregator(); - + for (i = 0; i < recCount; i++) { record = records[i]; - + for (j = 0; j < leftCount; j++) { cells[j] = cells[j] || []; - + if (leftTuples[j].matcher(record) === true) { for (k = 0; k < topCount; k++) { cells[j][k] = cells[j][k] || []; - + if (topTuples[k].matcher(record)) { cells[j][k].push(record); } @@ -46844,28 +45400,28 @@ Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, { } } } - + var rowCount = cells.length, colCount, row; - + for (i = 0; i < rowCount; i++) { row = cells[i]; colCount = row.length; - + for (j = 0; j < colCount; j++) { cells[i][j] = aggregator(cells[i][j], this.measure); } } - + return cells; }, - - + + getView: function() { if (!this.view) { this.view = new Ext.grid.PivotGridView(this.viewConfig); } - + return this.view; } }); @@ -46879,11 +45435,11 @@ Ext.grid.PivotAggregatorMgr.registerType('sum', function(records, measure) { var length = records.length, total = 0, i; - + for (i = 0; i < length; i++) { total += records[i].get(measure); } - + return total; }); @@ -46891,11 +45447,11 @@ Ext.grid.PivotAggregatorMgr.registerType('avg', function(records, measure) { var length = records.length, total = 0, i; - + for (i = 0; i < length; i++) { total += records[i].get(measure); } - + return (total / length) || 'n/a'; }); @@ -46903,11 +45459,11 @@ Ext.grid.PivotAggregatorMgr.registerType('min', function(records, measure) { var data = [], length = records.length, i; - + for (i = 0; i < length; i++) { data.push(records[i].get(measure)); } - + return Math.min.apply(this, data) || 'n/a'; }); @@ -46915,11 +45471,11 @@ Ext.grid.PivotAggregatorMgr.registerType('max', function(records, measure) { var data = [], length = records.length, i; - + for (i = 0; i < length; i++) { data.push(records[i].get(measure)); } - + return Math.max.apply(this, data) || 'n/a'; }); @@ -46927,117 +45483,117 @@ Ext.grid.PivotAggregatorMgr.registerType('count', function(records, measure) { return records.length; }); Ext.grid.GridView = Ext.extend(Ext.util.Observable, { - - - - - - + + + + + + deferEmptyText : true, - + scrollOffset : undefined, - + autoFill : false, - + forceFit : false, - + sortClasses : ['sort-asc', 'sort-desc'], - + sortAscText : 'Sort Ascending', - + sortDescText : 'Sort Descending', - - + + hideSortIcons: false, - + columnsText : 'Columns', - + selectedRowClass : 'x-grid3-row-selected', - + borderWidth : 2, tdClass : 'x-grid3-cell', hdCls : 'x-grid3-hd', - - - + + + markDirty : true, - + cellSelectorDepth : 4, - - + + rowSelectorDepth : 10, - + rowBodySelectorDepth : 10, - + cellSelector : 'td.x-grid3-cell', - - + + rowSelector : 'div.x-grid3-row', - + rowBodySelector : 'div.x-grid3-row-body', - + firstRowCls: 'x-grid3-row-first', lastRowCls: 'x-grid3-row-last', rowClsRe: /(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g, - - + + headerMenuOpenCls: 'x-grid3-hd-menu-open', - - + + rowOverCls: 'x-grid3-row-over', constructor : function(config) { Ext.apply(this, config); - - + + this.addEvents( - + 'beforerowremoved', - - + + 'beforerowsinserted', - - + + 'beforerefresh', - - + + 'rowremoved', - - + + 'rowsinserted', - - + + 'rowupdated', - - + + 'refresh' ); - + Ext.grid.GridView.superclass.constructor.call(this); }, - - - + + + masterTpl: new Ext.Template( '
    ', '
    ', @@ -47056,8 +45612,8 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { '
     
    ', '
    ' ), - - + + headerTpl: new Ext.Template( '
      
    ', '', @@ -47065,32 +45621,32 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { '', '
    ' ), - - + + bodyTpl: new Ext.Template('{rows}'), - - + + cellTpl: new Ext.Template( '', '
    {value}
    ', '' ), - - + + initTemplates : function() { var templates = this.templates || {}, template, name, - + headerCellTpl = new Ext.Template( '', - '
    ', + '
    ', this.grid.enableHdMenu ? '' : '', '{value}', '', '
    ', '' ), - + rowBodyText = [ '', '', @@ -47098,7 +45654,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { '', '' ].join(""), - + innerText = [ '', '', @@ -47107,7 +45663,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { '', '
    ' ].join(""); - + Ext.applyIf(templates, { hcell : headerCellTpl, cell : this.cellTpl, @@ -47120,7 +45676,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { for (name in templates) { template = templates[name]; - + if (template && Ext.isFunction(template.compile) && !template.compiled) { template.disableFormats = true; template.compile(); @@ -47131,7 +45687,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.colRe = new RegExp('x-grid3-td-([^\\s]+)', ''); }, - + fly : function(el) { if (!this._flyweight) { this._flyweight = new Ext.Element.Flyweight(document.body); @@ -47140,29 +45696,29 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return this._flyweight; }, - + getEditorParent : function() { return this.scroller.dom; }, - + initElements : function() { var Element = Ext.Element, el = Ext.get(this.grid.getGridEl().dom.firstChild), mainWrap = new Element(el.child('div.x-grid3-viewport')), mainHd = new Element(mainWrap.child('div.x-grid3-header')), scroller = new Element(mainWrap.child('div.x-grid3-scroller')); - + if (this.grid.hideHeaders) { mainHd.setDisplayed(false); } - + if (this.forceFit) { scroller.setStyle('overflow-x', 'hidden'); } - - - + + + Ext.apply(this, { el : el, mainWrap: mainWrap, @@ -47171,22 +45727,22 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { innerHd : mainHd.child('div.x-grid3-header-inner').dom, mainBody: new Element(Element.fly(scroller).child('div.x-grid3-body')), focusEl : new Element(Element.fly(scroller).child('a')), - + resizeMarker: new Element(el.child('div.x-grid3-resize-marker')), resizeProxy : new Element(el.child('div.x-grid3-resize-proxy')) }); - + this.focusEl.swallowEvent('click', true); }, - + getRows : function() { return this.hasRows() ? this.mainBody.dom.childNodes : []; }, - - + + findCell : function(el) { if (!el) { return false; @@ -47194,11 +45750,11 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return this.fly(el).findParent(this.cellSelector, this.cellSelectorDepth); }, - + findCellIndex : function(el, requiredCls) { var cell = this.findCell(el), hasCls; - + if (cell) { hasCls = this.fly(cell).hasClass(requiredCls); if (!requiredCls || hasCls) { @@ -47208,11 +45764,11 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return false; }, - + getCellIndex : function(el) { if (el) { var match = el.className.match(this.colRe); - + if (match && match[1]) { return this.cm.getIndexById(match[1]); } @@ -47220,18 +45776,18 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return false; }, - + findHeaderCell : function(el) { var cell = this.findCell(el); return cell && this.fly(cell).hasClass(this.hdCls) ? cell : null; }, - + findHeaderIndex : function(el){ return this.findCellIndex(el, this.hdCls); }, - + findRow : function(el) { if (!el) { return false; @@ -47239,41 +45795,41 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return this.fly(el).findParent(this.rowSelector, this.rowSelectorDepth); }, - + findRowIndex : function(el) { var row = this.findRow(el); return row ? row.rowIndex : false; }, - + findRowBody : function(el) { if (!el) { return false; } - + return this.fly(el).findParent(this.rowBodySelector, this.rowBodySelectorDepth); }, - - + + getRow : function(row) { return this.getRows()[row]; }, - + getCell : function(row, col) { - return Ext.fly(this.getRow(row)).query(this.cellSelector)[col]; + return Ext.fly(this.getRow(row)).query(this.cellSelector)[col]; }, - + getHeaderCell : function(index) { return this.mainHd.dom.getElementsByTagName('td')[index]; }, - - + + addRowClass : function(rowId, cls) { var row = this.getRow(rowId); if (row) { @@ -47281,7 +45837,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + removeRowClass : function(row, cls) { var r = this.getRow(row); if(r){ @@ -47289,77 +45845,77 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + removeRow : function(row) { Ext.removeNode(this.getRow(row)); this.syncFocusEl(row); }, - + removeRows : function(firstRow, lastRow) { var bd = this.mainBody.dom, rowIndex; - + for (rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){ Ext.removeNode(bd.childNodes[firstRow]); } - + this.syncFocusEl(firstRow); }, - - - + + + getScrollState : function() { var sb = this.scroller.dom; - + return { - left: sb.scrollLeft, + left: sb.scrollLeft, top : sb.scrollTop }; }, - + restoreScroll : function(state) { var sb = this.scroller.dom; sb.scrollLeft = state.left; sb.scrollTop = state.top; }, - + scrollToTop : function() { var dom = this.scroller.dom; - + dom.scrollTop = 0; dom.scrollLeft = 0; }, - + syncScroll : function() { this.syncHeaderScroll(); var mb = this.scroller.dom; this.grid.fireEvent('bodyscroll', mb.scrollLeft, mb.scrollTop); }, - + syncHeaderScroll : function() { var innerHd = this.innerHd, scrollLeft = this.scroller.dom.scrollLeft; - + + innerHd.scrollLeft = scrollLeft; innerHd.scrollLeft = scrollLeft; - innerHd.scrollLeft = scrollLeft; }, - - + + updateSortIcon : function(col, dir) { var sortClasses = this.sortClasses, sortClass = sortClasses[dir == "DESC" ? 1 : 0], headers = this.mainHd.select('td').removeClass(sortClasses); - + headers.item(col).addClass(sortClass); }, - + updateAllColumnWidths : function() { var totalWidth = this.getTotalWidth(), colCount = this.cm.getColumnCount(), @@ -47367,33 +45923,33 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { rowCount = rows.length, widths = [], row, rowFirstChild, trow, i, j; - + for (i = 0; i < colCount; i++) { widths[i] = this.getColumnWidth(i); this.getHeaderCell(i).style.width = widths[i]; } - + this.updateHeaderWidth(); - + for (i = 0; i < rowCount; i++) { row = rows[i]; row.style.width = totalWidth; rowFirstChild = row.firstChild; - + if (rowFirstChild) { rowFirstChild.style.width = totalWidth; trow = rowFirstChild.rows[0]; - + for (j = 0; j < colCount; j++) { trow.childNodes[j].style.width = widths[j]; } } } - + this.onAllColumnWidthsUpdated(widths, totalWidth); }, - + updateColumnWidth : function(column, width) { var columnWidth = this.getColumnWidth(column), totalWidth = this.getTotalWidth(), @@ -47401,25 +45957,25 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { nodes = this.getRows(), nodeCount = nodes.length, row, i, firstChild; - + this.updateHeaderWidth(); headerCell.style.width = columnWidth; - + for (i = 0; i < nodeCount; i++) { row = nodes[i]; firstChild = row.firstChild; - + row.style.width = totalWidth; if (firstChild) { firstChild.style.width = totalWidth; firstChild.rows[0].childNodes[column].style.width = columnWidth; } } - + this.onColumnWidthUpdated(column, columnWidth, totalWidth); }, - - + + updateColumnHidden : function(col, hidden) { var totalWidth = this.getTotalWidth(), display = hidden ? 'none' : '', @@ -47427,34 +45983,34 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { nodes = this.getRows(), nodeCount = nodes.length, row, rowFirstChild, i; - + this.updateHeaderWidth(); headerCell.style.display = display; - + for (i = 0; i < nodeCount; i++) { row = nodes[i]; row.style.width = totalWidth; rowFirstChild = row.firstChild; - + if (rowFirstChild) { rowFirstChild.style.width = totalWidth; rowFirstChild.rows[0].childNodes[col].style.display = display; } } - + this.onColumnHiddenUpdated(col, hidden, totalWidth); - delete this.lastViewWidth; + delete this.lastViewWidth; this.layout(); }, - + doRender : function(columns, records, store, startRow, colCount, stripe) { var templates = this.templates, cellTemplate = templates.cell, rowTemplate = templates.row, last = colCount - 1, tstyle = 'width:' + this.getTotalWidth() + ';', - + rowBuffer = [], colBuffer = [], rowParams = {tstyle: tstyle}, @@ -47464,17 +46020,17 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { column, record, i, j, rowIndex; - + for (j = 0; j < len; j++) { record = records[j]; colBuffer = []; rowIndex = j + startRow; - + for (i = 0; i < colCount; i++) { column = columns[i]; - + meta.id = column.id; meta.css = i === 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : ''); meta.attr = meta.cellAttr = ''; @@ -47493,7 +46049,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } alt = []; - + if (stripe && ((rowIndex + 1) % 2 === 0)) { alt[0] = 'x-grid3-row-alt'; } @@ -47517,7 +46073,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return rowBuffer.join(''); }, - + processRows : function(startRow, skipStripe) { if (!this.ds || this.ds.getCount() < 1) { return; @@ -47543,37 +46099,37 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } } - + if (startRow === 0) { Ext.fly(rows[0]).addClass(this.firstRowCls); } Ext.fly(rows[length - 1]).addClass(this.lastRowCls); }, - - + + afterRender : function() { if (!this.ds || !this.cm) { return; } - + this.mainBody.dom.innerHTML = this.renderBody() || ' '; this.processRows(0, true); if (this.deferEmptyText !== true) { this.applyEmptyText(); } - + this.grid.fireEvent('viewready', this.grid); }, - - + + afterRenderUI: function() { var grid = this.grid; - + this.initElements(); - + Ext.fly(this.innerHd).on('click', this.handleHdDown, this); this.mainHd.on({ @@ -47584,7 +46140,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { }); this.scroller.on('scroll', this.syncScroll, this); - + if (grid.enableColumnResize !== false) { this.splitZone = new Ext.grid.GridView.SplitDragZone(grid, this.mainHd.dom); } @@ -47640,7 +46196,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.updateHeaderSortState(); }, - + renderUI : function() { var templates = this.templates; @@ -47652,7 +46208,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { }); }, - + processEvent : function(name, e) { var target = e.getTarget(), grid = this.grid, @@ -47689,10 +46245,10 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + layout : function(initial) { if (!this.mainBody) { - return; + return; } var grid = this.grid, @@ -47702,31 +46258,31 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { gridHeight = gridSize.height, scroller = this.scroller, scrollStyle, headerHeight, scrollHeight; - + if (gridWidth < 20 || gridHeight < 20) { return; } - + if (grid.autoHeight) { scrollStyle = scroller.dom.style; scrollStyle.overflow = 'visible'; - + if (Ext.isWebKit) { scrollStyle.position = 'static'; } } else { this.el.setSize(gridWidth, gridHeight); - + headerHeight = this.mainHd.getHeight(); scrollHeight = gridHeight - headerHeight; - + scroller.setSize(gridWidth, scrollHeight); - + if (this.innerHd) { this.innerHd.style.width = (gridWidth) + "px"; } } - + if (this.forceFit || (initial === true && this.autoFill)) { if (this.lastViewWidth != gridWidth) { this.fitColumns(false, false); @@ -47736,38 +46292,38 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.autoExpand(); this.syncHeaderScroll(); } - + this.onLayout(gridWidth, scrollHeight); }, - - + + onLayout : function(vw, vh) { - + }, onColumnWidthUpdated : function(col, w, tw) { - + }, onAllColumnWidthsUpdated : function(ws, tw) { - + }, onColumnHiddenUpdated : function(col, hidden, tw) { - + }, updateColumnText : function(col, text) { - + }, afterMove : function(colIndex) { - + }, - - + + init : function(grid) { this.grid = grid; @@ -47776,22 +46332,22 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.initUI(grid); }, - + getColumnId : function(index){ return this.cm.getColumnId(index); }, - + getOffsetWidth : function() { return (this.cm.getTotalWidth() + this.getScrollOffset()) + 'px'; }, - + getScrollOffset: function() { return Ext.num(this.scrollOffset, Ext.getScrollBarWidth()); }, - + renderHeaders : function() { var colModel = this.cm, templates = this.templates, @@ -47801,14 +46357,14 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { last = colCount - 1, cells = [], i, cssCls; - + for (i = 0; i < colCount; i++) { if (i == 0) { cssCls = 'x-grid3-cell-first '; } else { cssCls = i == last ? 'x-grid3-cell-last ' : ''; } - + properties = { id : colModel.getColumnId(i), value : colModel.getColumnHeader(i) || '', @@ -47816,23 +46372,23 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { css : cssCls, tooltip: this.getColumnTooltip(i) }; - + if (colModel.config[i].align == 'right') { properties.istyle = 'padding-right: 16px;'; } else { delete properties.istyle; } - + cells[i] = headerTpl.apply(properties); } - + return templates.header.apply({ cells : cells.join(""), tstyle: String.format("width: {0};", this.getTotalWidth()) }); }, - + getColumnTooltip : function(i) { var tooltip = this.cm.getColumnTooltip(i); if (tooltip) { @@ -47842,46 +46398,46 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return 'title="' + tooltip + '"'; } } - + return ''; }, - + beforeUpdate : function() { this.grid.stopEditing(true); }, - + updateHeaders : function() { this.innerHd.firstChild.innerHTML = this.renderHeaders(); - + this.updateHeaderWidth(false); }, - - + + updateHeaderWidth: function(updateMain) { var innerHdChild = this.innerHd.firstChild, totalWidth = this.getTotalWidth(); - + innerHdChild.style.width = this.getOffsetWidth(); innerHdChild.firstChild.style.width = totalWidth; - + if (updateMain !== false) { this.mainBody.dom.style.width = totalWidth; } }, - + focusRow : function(row) { this.focusCell(row, 0, false); }, - + focusCell : function(row, col, hscroll) { this.syncFocusEl(this.ensureVisible(row, col, hscroll)); - + var focusEl = this.focusEl; - + if (Ext.isGecko) { focusEl.focus(); } else { @@ -47889,16 +46445,16 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + resolveCell : function(row, col, hscroll) { if (!Ext.isNumber(row)) { row = row.rowIndex; } - + if (!this.ds) { return null; } - + if (row < 0 || row >= this.ds.getCount()) { return null; } @@ -47908,27 +46464,27 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { colModel = this.cm, colCount = colModel.getColumnCount(), cellEl; - + if (!(hscroll === false && col === 0)) { while (col < colCount && colModel.isHidden(col)) { col++; } - + cellEl = this.getCell(row, col); } return {row: rowEl, cell: cellEl}; }, - + getResolvedXY : function(resolved) { if (!resolved) { return null; } - + var cell = resolved.cell, row = resolved.row; - + if (cell) { return Ext.fly(cell).getXY(); } else { @@ -47936,27 +46492,27 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + syncFocusEl : function(row, col, hscroll) { var xy = row; - + if (!Ext.isArray(xy)) { row = Math.min(row, Math.max(0, this.getRows().length-1)); - + if (isNaN(row)) { return; } - + xy = this.getResolvedXY(this.resolveCell(row, col, hscroll)); } - + this.focusEl.setXY(xy || this.scroller.getXY()); }, - + ensureVisible : function(row, col, hscroll) { var resolved = this.resolveCell(row, col, hscroll); - + if (!resolved || !resolved.row) { return null; } @@ -47992,18 +46548,18 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { cright = cleft + cellEl.offsetWidth, sleft = parseInt(c.scrollLeft, 10), sright = sleft + c.clientWidth; - + if (cleft < sleft) { c.scrollLeft = cleft; } else if(cright > sright) { c.scrollLeft = cright-c.clientWidth; } } - + return this.getResolvedXY(resolved); }, - + insertRows : function(dm, firstRow, lastRow, isUpdate) { var last = dm.getCount() - 1; if( !isUpdate && firstRow === 0 && lastRow >= last) { @@ -48032,14 +46588,14 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.processRows(firstRow); this.fireEvent('rowsinserted', this, firstRow, lastRow); } else if (firstRow === 0 || firstRow >= last) { - + Ext.fly(this.getRow(firstRow)).addClass(firstRow === 0 ? this.firstRowCls : this.lastRowCls); } } this.syncFocusEl(firstRow); }, - + deleteRows : function(dm, firstRow, lastRow) { if (dm.getRowCount() < 1) { this.refresh(); @@ -48053,31 +46609,31 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + getColumnStyle : function(colIndex, isHeader) { var colModel = this.cm, colConfig = colModel.config, style = isHeader ? '' : colConfig[colIndex].css || '', align = colConfig[colIndex].align; - + style += String.format("width: {0};", this.getColumnWidth(colIndex)); - + if (colModel.isHidden(colIndex)) { style += 'display: none; '; } - + if (align) { style += String.format("text-align: {0};", align); } - + return style; }, - + getColumnWidth : function(column) { var columnWidth = this.cm.getColumnWidth(column), borderWidth = this.borderWidth; - + if (Ext.isNumber(columnWidth)) { if (Ext.isBorderBox) { return columnWidth + "px"; @@ -48089,12 +46645,12 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + getTotalWidth : function() { return this.cm.getTotalWidth() + 'px'; }, - + fitColumns : function(preventRefresh, onlyExpand, omitColumn) { var grid = this.grid, colModel = this.cm, @@ -48105,79 +46661,79 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { extraCol = 0, width = 0, colWidth, fraction, i; - - + + if (gridWidth < 20 || extraWidth === 0) { return false; } - + var visibleColCount = colModel.getColumnCount(true), totalColCount = colModel.getColumnCount(false), adjCount = visibleColCount - (Ext.isNumber(omitColumn) ? 1 : 0); - + if (adjCount === 0) { adjCount = 1; omitColumn = undefined; } - - + + for (i = 0; i < totalColCount; i++) { if (!colModel.isFixed(i) && i !== omitColumn) { colWidth = colModel.getColumnWidth(i); columns.push(i, colWidth); - + if (!colModel.isHidden(i)) { extraCol = i; width += colWidth; } } } - + fraction = (gridWidth - colModel.getTotalWidth()) / width; - + while (columns.length) { colWidth = columns.pop(); i = columns.pop(); - + colModel.setColumnWidth(i, Math.max(grid.minColumnWidth, Math.floor(colWidth + colWidth * fraction)), true); } - - + + totalColWidth = colModel.getTotalWidth(false); - + if (totalColWidth > gridWidth) { var adjustCol = (adjCount == visibleColCount) ? extraCol : omitColumn, newWidth = Math.max(1, colModel.getColumnWidth(adjustCol) - (totalColWidth - gridWidth)); - + colModel.setColumnWidth(adjustCol, newWidth, true); } - + if (preventRefresh !== true) { this.updateAllColumnWidths(); } - + return true; }, - + autoExpand : function(preventUpdate) { var grid = this.grid, colModel = this.cm, gridWidth = this.getGridInnerWidth(), totalColumnWidth = colModel.getTotalWidth(false), autoExpandColumn = grid.autoExpandColumn; - + if (!this.userResized && autoExpandColumn) { if (gridWidth != totalColumnWidth) { - + var colIndex = colModel.getIndexById(autoExpandColumn), currentWidth = colModel.getColumnWidth(colIndex), desiredWidth = gridWidth - totalColumnWidth + currentWidth, newWidth = Math.min(Math.max(desiredWidth, grid.autoExpandMin), grid.autoExpandMax); - + if (currentWidth != newWidth) { colModel.setColumnWidth(colIndex, newWidth, true); - + if (preventUpdate !== true) { this.updateColumnWidth(colIndex, newWidth); } @@ -48185,23 +46741,23 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } } }, - - + + getGridInnerWidth: function() { return this.grid.getGridEl().getWidth(true) - this.getScrollOffset(); }, - + getColumnData : function() { var columns = [], colModel = this.cm, colCount = colModel.getColumnCount(), fields = this.ds.fields, i, name; - + for (i = 0; i < colCount; i++) { name = colModel.getDataIndex(i); - + columns[i] = { name : Ext.isDefined(name) ? name : (fields.get(i) ? fields.get(i).name : undefined), renderer: colModel.getRenderer(i), @@ -48210,11 +46766,11 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { style : this.getColumnStyle(i) }; } - + return columns; }, - + renderRows : function(startRow, endRow) { var grid = this.grid, store = grid.store, @@ -48223,25 +46779,25 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { colCount = colModel.getColumnCount(), rowCount = store.getCount(), records; - + if (rowCount < 1) { return ''; } - + startRow = startRow || 0; endRow = Ext.isDefined(endRow) ? endRow : rowCount - 1; records = store.getRange(startRow, endRow); - + return this.doRender(this.getColumnData(), records, store, startRow, colCount, stripe); }, - + renderBody : function(){ var markup = this.renderRows() || ' '; return this.templates.body.apply({rows: markup}); }, - + refreshRow: function(record) { var store = this.ds, colCount = this.cm.getColumnCount(), @@ -48254,29 +46810,29 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { colBuffer = [], cellTpl = this.templates.cell, rowIndex, row, column, meta, css, i; - + if (Ext.isNumber(record)) { rowIndex = record; record = store.getAt(rowIndex); } else { rowIndex = store.indexOf(record); } - - + + if (!record || rowIndex < 0) { return; } - - + + for (i = 0; i < colCount; i++) { column = columns[i]; - + if (i == 0) { css = 'x-grid3-cell-first'; } else { css = (i == last) ? 'x-grid3-cell-last ' : ''; } - + meta = { id : column.id, style : column.style, @@ -48284,40 +46840,40 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { attr : "", cellAttr: "" }; - + meta.value = column.renderer.call(column.scope, record.data[column.name], meta, record, rowIndex, i, store); - + if (Ext.isEmpty(meta.value)) { meta.value = ' '; } - + if (this.markDirty && record.dirty && typeof record.modified[column.name] != 'undefined') { meta.css += ' x-grid3-dirty-cell'; } - + colBuffer[i] = cellTpl.apply(meta); } - + row = this.getRow(rowIndex); row.className = ''; - + if (this.grid.stripeRows && ((rowIndex + 1) % 2 === 0)) { cls.push('x-grid3-row-alt'); } - + if (this.getRowClass) { rowParams.cols = colCount; cls.push(this.getRowClass(record, rowIndex, rowParams, store)); } - + this.fly(row).addClass(cls).setStyle(rowParams.tstyle); rowParams.cells = colBuffer.join(""); row.innerHTML = this.templates.rowInner.apply(rowParams); - + this.fireEvent('rowupdated', this, rowIndex, record); }, - + refresh : function(headersToo) { this.fireEvent('beforerefresh', this); this.grid.stopEditing(true); @@ -48334,14 +46890,14 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.fireEvent('refresh', this); }, - + applyEmptyText : function() { if (this.emptyText && !this.hasRows()) { this.mainBody.update('
    ' + this.emptyText + '
    '); } }, - + updateHeaderSortState : function() { var state = this.ds.getSortState(); if (!state) { @@ -48361,7 +46917,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + clearHeaderSortState : function() { if (!this.sortState) { return; @@ -48371,7 +46927,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { delete this.sortState; }, - + destroy : function() { var me = this, grid = me.grid, @@ -48383,16 +46939,16 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { scrollToTopTask = me.scrollToTopTask, columnDragData, columnDragProxy; - + if (scrollToTopTask && scrollToTopTask.cancel) { scrollToTopTask.cancel(); } - + Ext.destroyMembers(me, 'colMenu', 'hmenu'); me.initData(null, null); me.purgeListeners(); - + Ext.fly(me.innerHd).un("click", me.handleHdDown, me); if (grid.enableColumnMove) { @@ -48408,16 +46964,16 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { columnDragData.ddel, columnDragData.header ); - + if (columnDragProxy.anim) { Ext.destroy(columnDragProxy.anim); } - + delete columnDragProxy.ghost; delete columnDragData.ddel; delete columnDragData.header; columnDrag.destroy(); - + delete Ext.dd.DDM.locationCache[columnDrag.id]; delete columnDrag._domRef; @@ -48429,7 +46985,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { delete Ext.dd.DDM.ids[columnDrop.ddGroup]; } - if (splitZone) { + if (splitZone) { splitZone.destroy(); delete splitZone._domRef; delete Ext.dd.DDM.ids["gridSplitters" + gridEl.id]; @@ -48466,16 +47022,16 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { Ext.EventManager.removeResizeListener(me.onWindowResize, me); }, - + onDenyColumnHide : function() { }, - + render : function() { if (this.autoFill) { var ct = this.grid.ownerCt; - + if (ct && ct.getLayout()) { ct.on('afterlayout', function() { this.fitColumns(true, true); @@ -48488,33 +47044,33 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } else if (this.grid.autoExpandColumn) { this.autoExpand(true); } - + this.grid.getGridEl().dom.innerHTML = this.renderUI(); - + this.afterRenderUI(); }, - - - + + + initData : function(newStore, newColModel) { var me = this; - + if (me.ds) { var oldStore = me.ds; - + oldStore.un('add', me.onAdd, me); oldStore.un('load', me.onLoad, me); oldStore.un('clear', me.onClear, me); oldStore.un('remove', me.onRemove, me); oldStore.un('update', me.onUpdate, me); oldStore.un('datachanged', me.onDataChange, me); - + if (oldStore !== newStore && oldStore.autoDestroy) { oldStore.destroy(); } } - + if (newStore) { newStore.on({ scope : me, @@ -48526,20 +47082,20 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { datachanged: me.onDataChange }); } - + if (me.cm) { var oldColModel = me.cm; - + oldColModel.un('configchange', me.onColConfigChange, me); oldColModel.un('widthchange', me.onColWidthChange, me); oldColModel.un('headerchange', me.onHeaderChange, me); oldColModel.un('hiddenchange', me.onHiddenChange, me); oldColModel.un('columnmoved', me.onColumnMove, me); } - + if (newColModel) { delete me.lastViewWidth; - + newColModel.on({ scope : me, configchange: me.onColConfigChange, @@ -48549,42 +47105,42 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { columnmoved : me.onColumnMove }); } - + me.ds = newStore; me.cm = newColModel; }, - + onDataChange : function(){ this.refresh(true); this.updateHeaderSortState(); this.syncFocusEl(0); }, - + onClear : function() { this.refresh(); this.syncFocusEl(0); }, - + onUpdate : function(store, record) { this.refreshRow(record); }, - + onAdd : function(store, records, index) { this.insertRows(store, index, index + (records.length-1)); }, - + onRemove : function(store, record, index, isUpdate) { if (isUpdate !== true) { this.fireEvent('beforerowremoved', this, index, record); } - + this.removeRow(index); - + if (isUpdate !== true) { this.processRows(index); this.applyEmptyText(); @@ -48592,7 +47148,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + onLoad : function() { if (Ext.isGecko) { if (!this.scrollToTopTask) { @@ -48604,48 +47160,48 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + onColWidthChange : function(cm, col, width) { this.updateColumnWidth(col, width); }, - + onHeaderChange : function(cm, col, text) { this.updateHeaders(); }, - + onHiddenChange : function(cm, col, hidden) { this.updateColumnHidden(col, hidden); }, - + onColumnMove : function(cm, oldIndex, newIndex) { this.indexMap = null; this.refresh(true); this.restoreScroll(this.getScrollState()); - + this.afterMove(newIndex); this.grid.fireEvent('columnmove', oldIndex, newIndex); }, - + onColConfigChange : function() { delete this.lastViewWidth; this.indexMap = null; this.refresh(true); }, - - + + initUI : function(grid) { grid.on('headerclick', this.onHeaderClick, this); }, - + initEvents : Ext.emptyFn, - + onHeaderClick : function(g, index) { if (this.headersDisabled || !this.cm.isSortable(index)) { return; @@ -48654,35 +47210,35 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { g.store.sort(this.cm.getDataIndex(index)); }, - + onRowOver : function(e, target) { var row = this.findRowIndex(target); - + if (row !== false) { this.addRowClass(row, this.rowOverCls); } }, - + onRowOut : function(e, target) { var row = this.findRowIndex(target); - + if (row !== false && !e.within(this.getRow(row), true)) { this.removeRowClass(row, this.rowOverCls); } }, - + onRowSelect : function(row) { this.addRowClass(row, this.selectedRowClass); }, - + onRowDeselect : function(row) { this.removeRowClass(row, this.selectedRowClass); }, - + onCellSelect : function(row, col) { var cell = this.getCell(row, col); if (cell) { @@ -48690,7 +47246,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + onCellDeselect : function(row, col) { var cell = this.getCell(row, col); if (cell) { @@ -48698,12 +47254,12 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + handleWheel : function(e) { e.stopPropagation(); }, - + onColumnSplitterMoved : function(cellIndex, width) { this.userResized = true; this.grid.colModel.setColumnWidth(cellIndex, width, true); @@ -48719,7 +47275,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { this.grid.fireEvent('columnresize', cellIndex, width); }, - + beforeColMenuShow : function() { var colModel = this.cm, colCount = colModel.getColumnCount(), @@ -48740,8 +47296,8 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } } }, - - + + handleHdMenuClick : function(item) { var store = this.ds, dataIndex = this.cm.getDataIndex(this.hdCtxIndex); @@ -48758,8 +47314,8 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } return true; }, - - + + handleHdMenuClickDefault: function(item) { var colModel = this.cm, itemId = item.getItemId(), @@ -48774,11 +47330,11 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + handleHdDown : function(e, target) { if (Ext.fly(target).hasClass('x-grid3-hd-btn')) { e.stopEvent(); - + var colModel = this.cm, header = this.findHeaderCell(target), index = this.getCellIndex(header), @@ -48787,34 +47343,34 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { menuItems = menu.items, menuCls = this.headerMenuOpenCls, sep; - + this.hdCtxIndex = index; - + Ext.fly(header).addClass(menuCls); if (this.hideSortIcons) { menuItems.get('asc').setVisible(sortable); menuItems.get('desc').setVisible(sortable); sep = menuItems.get('sortSep'); if (sep) { - sep.setVisible(sortable); + sep.setVisible(sortable); } } else { menuItems.get('asc').setDisabled(!sortable); menuItems.get('desc').setDisabled(!sortable); } - + menu.on('hide', function() { Ext.fly(header).removeClass(menuCls); }, this, {single:true}); - + menu.show(target, 'tl-bl?'); } }, - + handleHdMove : function(e) { var header = this.findHeaderCell(this.activeHdRef); - + if (header && !this.headersDisabled) { var handleWidth = this.splitHandleWidth || 5, activeRegion = this.activeHdRegion, @@ -48822,7 +47378,7 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { colModel = this.cm, cursor = '', pageX = e.getPageX(); - + if (this.grid.enableColumnResize !== false) { var activeHeaderIndex = this.activeHdIndex, previousVisible = this.getPreviousVisible(activeHeaderIndex), @@ -48830,19 +47386,19 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { previousResizable = previousVisible && colModel.isResizable(previousVisible), inLeftResizer = pageX - activeRegion.left <= handleWidth, inRightResizer = activeRegion.right - pageX <= (!this.activeHdBtn ? handleWidth : 2); - + if (inLeftResizer && previousResizable) { - cursor = Ext.isAir ? 'move' : Ext.isWebKit ? 'e-resize' : 'col-resize'; + cursor = Ext.isAir ? 'move' : Ext.isWebKit ? 'e-resize' : 'col-resize'; } else if (inRightResizer && currentResizable) { cursor = Ext.isAir ? 'move' : Ext.isWebKit ? 'w-resize' : 'col-resize'; } } - + headerStyle.cursor = cursor; } }, - - + + getPreviousVisible: function(index) { while (index > 0) { if (!this.cm.isHidden(index - 1)) { @@ -48853,21 +47409,21 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { return undefined; }, - + handleHdOver : function(e, target) { var header = this.findHeaderCell(target); - + if (header && !this.headersDisabled) { var fly = this.fly(header); - + this.activeHdRef = target; this.activeHdIndex = this.getCellIndex(header); this.activeHdRegion = fly.getRegion(); - + if (!this.isMenuDisabled(this.activeHdIndex, fly)) { fly.addClass('x-grid3-hd-over'); this.activeHdBtn = fly.child('.x-grid3-hd-btn'); - + if (this.activeHdBtn) { this.activeHdBtn.dom.style.height = (header.firstChild.offsetHeight - 1) + 'px'; } @@ -48875,34 +47431,34 @@ Ext.grid.GridView = Ext.extend(Ext.util.Observable, { } }, - + handleHdOut : function(e, target) { var header = this.findHeaderCell(target); - + if (header && (!Ext.isIE9m || !e.within(header, true))) { this.activeHdRef = null; this.fly(header).removeClass('x-grid3-hd-over'); header.style.cursor = ''; } }, - - + + isMenuDisabled: function(cellIndex, el) { return this.cm.isMenuDisabled(cellIndex); }, - + hasRows : function() { var fc = this.mainBody.dom.firstChild; return fc && fc.nodeType == 1 && fc.className != 'x-grid-empty'; }, - - + + isHideableColumn : function(c) { return !c.hidden; }, - + bind : function(d, c) { this.initData(d, c); } @@ -48952,13 +47508,13 @@ Ext.grid.GridView.SplitDragZone = Ext.extend(Ext.dd.DDProxy, { handleMouseDown : function(e){ var t = this.view.findHeaderCell(e.getTarget()); if(t && this.allowHeaderDrag(e)){ - var xy = this.view.fly(t).getXY(), + var xy = this.view.fly(t).getXY(), x = xy[0], - exy = e.getXY(), + exy = e.getXY(), ex = exy[0], - w = t.offsetWidth, + w = t.offsetWidth, adjust = false; - + if((ex - x) <= this.hw){ adjust = -1; }else if((x+w) - ex <= this.hw){ @@ -48995,7 +47551,7 @@ Ext.grid.GridView.SplitDragZone = Ext.extend(Ext.dd.DDProxy, { endX = Math.max(this.minX, e.getPageX()), diff = endX - this.startPos, disabled = this.dragHeadersDisabled; - + v.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff); setTimeout(function(){ v.headersDisabled = disabled; @@ -49008,26 +47564,26 @@ Ext.grid.GridView.SplitDragZone = Ext.extend(Ext.dd.DDProxy, { }); Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { - - + + colHeaderCellCls: 'grid-hd-group-cell', - - + + title: '', - - - - + + + + getColumnHeaders: function() { return this.grid.topAxis.buildHeaders();; }, - - + + getRowHeaders: function() { return this.grid.leftAxis.buildHeaders(); }, - - + + renderRows : function(startRow, endRow) { var grid = this.grid, rows = grid.extractData(), @@ -49043,18 +47599,18 @@ Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { meta = {}, tstyle = 'width:' + this.getGridInnerWidth() + 'px;', colBuffer, colCount, column, i, row; - + startRow = startRow || 0; endRow = Ext.isDefined(endRow) ? endRow : rowCount - 1; - + for (i = 0; i < rowCount; i++) { row = rows[i]; colCount = row.length; colBuffer = []; - - + + for (var j = 0; j < colCount; j++) { - + meta.id = i + '-' + j; meta.css = j === 0 ? 'x-grid3-cell-first ' : (j == (colCount - 1) ? 'x-grid3-cell-last ' : ''); meta.attr = meta.cellAttr = ''; @@ -49063,18 +47619,18 @@ Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { if (Ext.isEmpty(meta.value)) { meta.value = ' '; } - + if (hasRenderer) { meta.value = renderer(meta.value); } - + if (hasGetCellCls) { meta.css += getCellCls(meta.value) + ' '; } colBuffer[colBuffer.length] = cellTemplate.apply(meta); } - + rowBuffer[rowBuffer.length] = rowTemplate.apply({ tstyle: tstyle, cols : colCount, @@ -49082,11 +47638,11 @@ Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { alt : '' }); } - + return rowBuffer.join(""); }, - - + + masterTpl: new Ext.Template( '
    ', '
    ', @@ -49107,104 +47663,104 @@ Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { '
     
    ', '
    ' ), - - + + initTemplates: function() { Ext.grid.PivotGridView.superclass.initTemplates.apply(this, arguments); - + var templates = this.templates || {}; if (!templates.gcell) { templates.gcell = new Ext.XTemplate( '', - '
    ', + '
    ', this.grid.enableHdMenu ? '' : '', '{value}', '
    ', '' ); } - + this.templates = templates; this.hrowRe = new RegExp("ux-grid-hd-group-row-(\\d+)", ""); }, - - + + initElements: function() { Ext.grid.PivotGridView.superclass.initElements.apply(this, arguments); - - + + this.rowHeadersEl = new Ext.Element(this.scroller.child('div.x-grid3-row-headers')); - - + + this.headerTitleEl = new Ext.Element(this.mainHd.child('div.x-grid3-header-title')); }, - - + + getGridInnerWidth: function() { var previousWidth = Ext.grid.PivotGridView.superclass.getGridInnerWidth.apply(this, arguments); - + return previousWidth - this.getTotalRowHeaderWidth(); }, - - + + getTotalRowHeaderWidth: function() { var headers = this.getRowHeaders(), length = headers.length, total = 0, i; - + for (i = 0; i< length; i++) { total += headers[i].width; } - + return total; }, - - + + getTotalColumnHeaderHeight: function() { return this.getColumnHeaders().length * 21; }, - - + + getCellIndex : function(el) { if (el) { var match = el.className.match(this.colRe), data; - + if (match && (data = match[1])) { return parseInt(data.split('-')[1], 10); } } return false; }, - - - + + + renderUI : function() { var templates = this.templates, innerWidth = this.getGridInnerWidth(); - + return templates.master.apply({ body : templates.body.apply({rows:' '}), ostyle: 'width:' + innerWidth + 'px', bstyle: 'width:' + innerWidth + 'px' }); }, - - + + onLayout: function(width, height) { Ext.grid.PivotGridView.superclass.onLayout.apply(this, arguments); - + var width = this.getGridInnerWidth(); - + this.resizeColumnHeaders(width); this.resizeAllRows(width); }, - - + + refresh : function(headersToo) { this.fireEvent('beforerefresh', this); this.grid.stopEditing(true); - + var result = this.renderBody(); this.mainBody.update(result).setWidth(this.getGridInnerWidth()); if (headersToo === true) { @@ -49216,113 +47772,113 @@ Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, { this.applyEmptyText(); this.fireEvent('refresh', this); }, - - + + renderHeaders: Ext.emptyFn, - - + + fitColumns: Ext.emptyFn, - - + + resizeColumnHeaders: function(width) { var topAxis = this.grid.topAxis; - + if (topAxis.rendered) { topAxis.el.setWidth(width); } }, - - + + resizeRowHeaders: function() { var rowHeaderWidth = this.getTotalRowHeaderWidth(), marginStyle = String.format("margin-left: {0}px;", rowHeaderWidth); - + this.rowHeadersEl.setWidth(rowHeaderWidth); this.mainBody.applyStyles(marginStyle); Ext.fly(this.innerHd).applyStyles(marginStyle); - + this.headerTitleEl.setWidth(rowHeaderWidth); this.headerTitleEl.setHeight(this.getTotalColumnHeaderHeight()); }, - - + + resizeAllRows: function(width) { var rows = this.getRows(), length = rows.length, i; - + for (i = 0; i < length; i++) { Ext.fly(rows[i]).setWidth(width); Ext.fly(rows[i]).child('table').setWidth(width); } }, - - + + updateHeaders: function() { this.renderGroupRowHeaders(); this.renderGroupColumnHeaders(); }, - - + + renderGroupRowHeaders: function() { var leftAxis = this.grid.leftAxis; - + this.resizeRowHeaders(); leftAxis.rendered = false; leftAxis.render(this.rowHeadersEl); - + this.setTitle(this.title); }, - - + + setTitle: function(title) { this.headerTitleEl.child('span').dom.innerHTML = title; }, - - + + renderGroupColumnHeaders: function() { var topAxis = this.grid.topAxis; - + topAxis.rendered = false; topAxis.render(this.innerHd.firstChild); }, - - + + isMenuDisabled: function(cellIndex, el) { return true; } }); Ext.grid.PivotAxis = Ext.extend(Ext.Component, { - + orientation: 'horizontal', - - + + defaultHeaderWidth: 80, - - + + paddingWidth: 7, - - + + setDimensions: function(dimensions) { this.dimensions = dimensions; }, - - + + onRender: function(ct, position) { var rows = this.orientation == 'horizontal' ? this.renderHorizontalRows() : this.renderVerticalRows(); - + this.el = Ext.DomHelper.overwrite(ct.dom, {tag: 'table', cn: rows}, true); }, - - + + renderHorizontalRows: function() { var headers = this.buildHeaders(), rowCount = headers.length, rows = [], cells, cols, colCount, i, j; - + for (i = 0; i < rowCount; i++) { cells = []; cols = headers[i].items; @@ -49341,26 +47897,26 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { cn: cells }; } - + return rows; }, - - + + renderVerticalRows: function() { var headers = this.buildHeaders(), colCount = headers.length, rowCells = [], rows = [], rowCount, col, row, colWidth, i, j; - + for (i = 0; i < colCount; i++) { col = headers[i]; colWidth = col.width || 80; rowCount = col.items.length; - + for (j = 0; j < rowCount; j++) { row = col.items[j]; - + rowCells[row.start] = rowCells[row.start] || []; rowCells[row.start].push({ tag : 'td', @@ -49370,7 +47926,7 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { }); } } - + rowCount = rowCells.length; for (i = 0; i < rowCount; i++) { rows[i] = { @@ -49378,75 +47934,75 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { cn : rowCells[i] }; } - + return rows; }, - - + + getTuples: function() { var newStore = new Ext.data.Store({}); - + newStore.data = this.store.data.clone(); newStore.fields = this.store.fields; - + var sorters = [], dimensions = this.dimensions, length = dimensions.length, i; - + for (i = 0; i < length; i++) { sorters.push({ field : dimensions[i].dataIndex, direction: dimensions[i].direction || 'ASC' }); } - + newStore.sort(sorters); - + var records = newStore.data.items, hashes = [], tuples = [], recData, hash, info, data, key; - + length = records.length; - + for (i = 0; i < length; i++) { info = this.getRecordInfo(records[i]); data = info.data; hash = ""; - + for (key in data) { hash += data[key] + '---'; } - + if (hashes.indexOf(hash) == -1) { hashes.push(hash); tuples.push(info); } } - + newStore.destroy(); - + return tuples; }, - - + + getRecordInfo: function(record) { var dimensions = this.dimensions, length = dimensions.length, data = {}, dimension, dataIndex, i; - - + + for (i = 0; i < length; i++) { dimension = dimensions[i]; dataIndex = dimension.dataIndex; - + data[dataIndex] = record.get(dataIndex); } - - - + + + var createMatcherFunction = function(data) { return function(record) { for (var dataIndex in data) { @@ -49454,18 +48010,18 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { return false; } } - + return true; }; }; - + return { data: data, matcher: createMatcherFunction(data) }; }, - - + + buildHeaders: function() { var tuples = this.getTuples(), rowCount = tuples.length, @@ -49474,58 +48030,58 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { colCount = dimensions.length, headers = [], tuple, rows, currentHeader, previousHeader, span, start, isLast, changed, i, j; - + for (i = 0; i < colCount; i++) { dimension = dimensions[i]; rows = []; span = 0; start = 0; - + for (j = 0; j < rowCount; j++) { tuple = tuples[j]; isLast = j == (rowCount - 1); currentHeader = tuple.data[dimension.dataIndex]; - - + + changed = previousHeader != undefined && previousHeader != currentHeader; if (i > 0 && j > 0) { changed = changed || tuple.data[dimensions[i-1].dataIndex] != tuples[j-1].data[dimensions[i-1].dataIndex]; } - - if (changed) { + + if (changed) { rows.push({ header: previousHeader, span : span, start : start }); - + start += span; span = 0; } - + if (isLast) { rows.push({ header: currentHeader, span : span + 1, start : start }); - + start += span; span = 0; } - + previousHeader = currentHeader; span++; } - + headers.push({ items: rows, width: dimension.width || this.defaultHeaderWidth }); - + previousHeader = undefined; } - + return headers; } }); @@ -49533,7 +48089,7 @@ Ext.grid.PivotAxis = Ext.extend(Ext.Component, { Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, { maxDragWidth: 120, - + constructor : function(grid, hd, hd2){ this.grid = grid; this.view = grid.getView(); @@ -49545,7 +48101,7 @@ Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, { } this.scroll = false; }, - + getDragData : function(e){ var t = Ext.lib.Event.getTarget(e), h = this.view.findHeaderCell(t); @@ -49556,7 +48112,7 @@ Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, { }, onInitDrag : function(e){ - + this.dragHeadersDisabled = this.view.headersDisabled; this.view.headersDisabled = true; var clone = this.dragData.ddel.cloneNode(true); @@ -49573,7 +48129,7 @@ Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, { afterInvalidDrop : function(){ this.completeDrop(); }, - + completeDrop: function(){ var v = this.view, disabled = this.dragHeadersDisabled; @@ -49588,11 +48144,11 @@ Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, { Ext.grid.HeaderDropZone = Ext.extend(Ext.dd.DropZone, { proxyOffsets : [-4, -9], fly: Ext.Element.fly, - + constructor : function(grid, hd, hd2){ this.grid = grid; this.view = grid.getView(); - + this.proxyTop = Ext.DomHelper.append(document.body, { cls:"col-move-top", html:" " }, true); @@ -49604,8 +48160,8 @@ Ext.grid.HeaderDropZone = Ext.extend(Ext.dd.DropZone, { this.setStyle("visibility", "hidden"); }; this.ddGroup = "gridHeader" + this.grid.getGridEl().id; - - + + Ext.grid.HeaderDropZone.superclass.constructor.call(this, grid.getGridEl().dom); }, @@ -49644,8 +48200,8 @@ Ext.grid.HeaderDropZone = Ext.extend(Ext.dd.DropZone, { positionIndicator : function(h, n, e){ var x = Ext.lib.Event.getPageX(e), r = Ext.lib.Dom.getRegion(n.firstChild), - px, - pt, + px, + pt, py = r.top + this.proxyOffsets[1]; if((r.right - x) <= (r.right-r.left)/2){ px = r.right+this.view.borderWidth; @@ -49716,12 +48272,12 @@ Ext.grid.HeaderDropZone = Ext.extend(Ext.dd.DropZone, { }); Ext.grid.GridView.ColumnDragZone = Ext.extend(Ext.grid.HeaderDragZone, { - + constructor : function(grid, hd){ Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this, grid, hd, null); this.proxy.el.addClass('x-grid3-col-dd'); }, - + handleMouseDown : function(e){ }, @@ -49732,7 +48288,7 @@ Ext.grid.GridView.ColumnDragZone = Ext.extend(Ext.grid.HeaderDragZone, { Ext.grid.SplitDragZone = Ext.extend(Ext.dd.DDProxy, { fly: Ext.Element.fly, - + constructor : function(grid, hd, hd2){ this.grid = grid; this.view = grid.getView(); @@ -49792,14 +48348,14 @@ Ext.grid.GridDragZone = function(grid, config){ this.grid = grid; this.ddel = document.createElement('div'); this.ddel.className = 'x-grid-dd-wrap'; - + this.preventDefault = true; }; Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { ddGroup : "GridDD", - + getDragData : function(e){ var t = Ext.lib.Event.getTarget(e), sm, @@ -49811,8 +48367,8 @@ Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { if (rowIndex !== false){ sm = this.grid.selModel; - - + + if (sm.getSelectedCell) { cellIndex = this.view.findCellIndex(t); selectedCell = sm.getSelectedCell(); @@ -49820,13 +48376,13 @@ Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { sm.handleMouseDown(this.grid, rowIndex, cellIndex, e); } if (this.grid.dragCell) { - + selection = sm.getSelectedCell(); if (!this.grid.hasOwnProperty('ddText')) { this.grid.ddText = '{0} selected cell{1}'; } } else { - + selection = [this.grid.store.getAt(rowIndex)]; } } else { @@ -49840,30 +48396,30 @@ Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { return false; }, - + onInitDrag : function(e){ var data = this.dragData; this.ddel.innerHTML = this.grid.getDragDropText(); this.proxy.update(this.ddel); - + }, - + afterRepair : function(){ this.dragging = false; }, - + getRepairXY : function(e, data){ return false; }, onEndDrag : function(data, e){ - + }, onValidDrop : function(dd, e, id){ - + this.hideProxy(); }, @@ -49873,46 +48429,46 @@ Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, { }); Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { - + defaultWidth: 100, - + defaultSortable: false, - - + + constructor : function(config) { - + if (config.columns) { Ext.apply(this, config); this.setConfig(config.columns, true); } else { this.setConfig(config, true); } - + this.addEvents( - + "widthchange", - - + + "headerchange", - - + + "hiddenchange", - - + + "columnmoved", - - + + "configchange" ); - + Ext.grid.ColumnModel.superclass.constructor.call(this); }, - + getColumnId : function(index) { return this.config[index].id; }, @@ -49921,24 +48477,24 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return this.config[index]; }, - + setConfig : function(config, initial) { var i, c, len; - - if (!initial) { + + if (!initial) { delete this.totalWidth; - + for (i = 0, len = this.config.length; i < len; i++) { c = this.config[i]; - + if (c.setEditor) { - + c.setEditor(null); } } } - + this.defaults = Ext.apply({ width: this.defaultWidth, sortable: this.defaultSortable @@ -49949,32 +48505,32 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { for (i = 0, len = config.length; i < len; i++) { c = Ext.applyIf(config[i], this.defaults); - - + + if (Ext.isEmpty(c.id)) { c.id = i; } - + if (!c.isColumn) { var Cls = Ext.grid.Column.types[c.xtype || 'gridcolumn']; c = new Cls(c); config[i] = c; } - + this.lookup[c.id] = c; } - + if (!initial) { this.fireEvent('configchange', this); } }, - + getColumnById : function(id) { return this.lookup[id]; }, - + getIndexById : function(id) { for (var i = 0, len = this.config.length; i < len; i++) { if (this.config[i].id == id) { @@ -49984,65 +48540,65 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return -1; }, - + moveColumn : function(oldIndex, newIndex) { var config = this.config, c = config[oldIndex]; - + config.splice(oldIndex, 1); config.splice(newIndex, 0, c); this.dataMap = null; this.fireEvent("columnmoved", this, oldIndex, newIndex); }, - + getColumnCount : function(visibleOnly) { var length = this.config.length, c = 0, i; - + if (visibleOnly === true) { for (i = 0; i < length; i++) { if (!this.isHidden(i)) { c++; } } - + return c; } - + return length; }, - + getColumnsBy : function(fn, scope) { var config = this.config, length = config.length, result = [], i, c; - + for (i = 0; i < length; i++){ c = config[i]; - + if (fn.call(scope || this, c, i) === true) { result[result.length] = c; } } - + return result; }, - + isSortable : function(col) { return !!this.config[col].sortable; }, - + isMenuDisabled : function(col) { return !!this.config[col].menuDisabled; }, - + getRenderer : function(col) { return this.config[col].renderer || Ext.grid.ColumnModel.defaultRenderer; }, @@ -50051,12 +48607,12 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return this.config[col].scope; }, - + setRenderer : function(col, fn) { this.config[col].renderer = fn; }, - + getColumnWidth : function(col) { var width = this.config[col].width; if(typeof width != 'number'){ @@ -50065,17 +48621,17 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return width; }, - + setColumnWidth : function(col, width, suppressEvent) { this.config[col].width = width; this.totalWidth = null; - + if (!suppressEvent) { this.fireEvent("widthchange", this, col, width); } }, - + getTotalWidth : function(includeHidden) { if (!this.totalWidth) { this.totalWidth = 0; @@ -50088,37 +48644,37 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return this.totalWidth; }, - + getColumnHeader : function(col) { return this.config[col].header; }, - + setColumnHeader : function(col, header) { this.config[col].header = header; this.fireEvent("headerchange", this, col, header); }, - + getColumnTooltip : function(col) { return this.config[col].tooltip; }, - + setColumnTooltip : function(col, tooltip) { this.config[col].tooltip = tooltip; }, - + getDataIndex : function(col) { return this.config[col].dataIndex; }, - + setDataIndex : function(col, dataIndex) { this.config[col].dataIndex = dataIndex; }, - + findColumnIndex : function(dataIndex) { var c = this.config; for(var i = 0, len = c.length; i < len; i++){ @@ -50129,41 +48685,41 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { return -1; }, - + isCellEditable : function(colIndex, rowIndex) { var c = this.config[colIndex], ed = c.editable; - + return !!(ed || (!Ext.isDefined(ed) && c.editor)); }, - + getCellEditor : function(colIndex, rowIndex) { return this.config[colIndex].getCellEditor(rowIndex); }, - + setEditable : function(col, editable) { this.config[col].editable = editable; }, - + isHidden : function(colIndex) { - return !!this.config[colIndex].hidden; + return !!this.config[colIndex].hidden; }, - + isFixed : function(colIndex) { return !!this.config[colIndex].fixed; }, - + isResizable : function(colIndex) { return colIndex >= 0 && this.config[colIndex].resizable !== false && this.config[colIndex].fixed !== true; }, - - + + setHidden : function(colIndex, hidden) { var c = this.config[colIndex]; if(c.hidden !== hidden){ @@ -50173,25 +48729,25 @@ Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, { } }, - + setEditor : function(col, editor) { this.config[col].setEditor(editor); }, - + destroy : function() { var length = this.config.length, i = 0; for (; i < length; i++){ - this.config[i].destroy(); + this.config[i].destroy(); } delete this.config; delete this.lookup; this.purgeListeners(); }, - + setState : function(col, state) { state = Ext.applyIf(state, this.defaults); Ext.apply(this.config[col], state); @@ -50206,14 +48762,14 @@ Ext.grid.ColumnModel.defaultRenderer = function(value) { return value; }; Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, { - + constructor : function(){ this.locked = false; Ext.grid.AbstractSelectionModel.superclass.constructor.call(this); }, - + init : function(grid){ this.grid = grid; if(this.lockOnInit){ @@ -50224,11 +48780,11 @@ Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, { this.initEvents(); }, - + lock : function(){ if(!this.locked){ this.locked = true; - + var g = this.grid; if(g){ g.getView().on({ @@ -50242,35 +48798,35 @@ Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, { } }, - + sortLock : function() { this.locked = true; }, - + sortUnLock : function() { this.locked = false; }, - + unlock : function(){ if(this.locked){ this.locked = false; var g = this.grid, gv; - - + + if(g){ gv = g.getView(); gv.un('beforerefresh', this.sortUnLock, this); - gv.un('refresh', this.sortLock, this); + gv.un('refresh', this.sortLock, this); }else{ delete this.lockOnInit; } } }, - + isLocked : function(){ return this.locked; }, @@ -50281,9 +48837,9 @@ Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, { } }); Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { - + singleSelect : false, - + constructor : function(config){ Ext.apply(this, config); this.selections = new Ext.util.MixedCollection(false, function(o){ @@ -50294,20 +48850,20 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { this.lastActive = false; this.addEvents( - + 'selectionchange', - + 'beforerowselect', - + 'rowselect', - + 'rowdeselect' ); Ext.grid.RowSelectionModel.superclass.constructor.call(this); }, - - + + initEvents : function(){ if(!this.grid.enableDragDrop && !this.grid.enableDrag){ @@ -50315,7 +48871,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), { - up: this.onKeyPress, + up: this.onKeyPress, down: this.onKeyPress, scope: this }); @@ -50327,7 +48883,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { rowremoved: this.onRemove }); }, - + onKeyPress : function(e, name){ var up = name == 'up', method = up ? 'selectPrevious' : 'selectNext', @@ -50347,14 +48903,14 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + onRefresh : function(){ var ds = this.grid.store, s = this.getSelections(), i = 0, - len = s.length, + len = s.length, index, r; - + this.silent = true; this.clearSelections(true); for(; i < len; i++){ @@ -50369,21 +48925,21 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { this.silent = false; }, - + onRemove : function(v, index, r){ if(this.selections.remove(r) !== false){ this.fireEvent('selectionchange', this); } }, - + onRowUpdated : function(v, index, r){ if(this.isSelected(r)){ v.onRowSelect(index); } }, - + selectRecords : function(records, keepExisting){ if(!keepExisting){ this.clearSelections(); @@ -50396,22 +48952,22 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + getCount : function(){ return this.selections.length; }, - + selectFirstRow : function(){ this.selectRow(0); }, - + selectLastRow : function(keepExisting){ this.selectRow(this.grid.store.getCount() - 1, keepExisting); }, - + selectNext : function(keepExisting){ if(this.hasNext()){ this.selectRow(this.last+1, keepExisting); @@ -50421,7 +48977,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { return false; }, - + selectPrevious : function(keepExisting){ if(this.hasPrevious()){ this.selectRow(this.last-1, keepExisting); @@ -50431,33 +48987,33 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { return false; }, - + hasNext : function(){ return this.last !== false && (this.last+1) < this.grid.store.getCount(); }, - + hasPrevious : function(){ return !!this.last; }, - + getSelections : function(){ return [].concat(this.selections.items); }, - + getSelected : function(){ return this.selections.itemAt(0); }, - + each : function(fn, scope){ var s = this.getSelections(), i = 0, len = s.length; - + for(; i < len; i++){ if(fn.call(scope || this, s[i], i) === false){ return false; @@ -50466,7 +49022,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { return true; }, - + clearSelections : function(fast){ if(this.isLocked()){ return; @@ -50485,7 +49041,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { }, - + selectAll : function(){ if(this.isLocked()){ return; @@ -50496,23 +49052,23 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + hasSelection : function(){ return this.selections.length > 0; }, - + isSelected : function(index){ var r = Ext.isNumber(index) ? this.grid.store.getAt(index) : index; return (r && this.selections.key(r.id) ? true : false); }, - + isIdSelected : function(id){ return (this.selections.key(id) ? true : false); }, - + handleMouseDown : function(g, rowIndex, e){ if(e.button !== 0 || this.isLocked()){ return; @@ -50521,7 +49077,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { if(e.shiftKey && !this.singleSelect && this.last !== false){ var last = this.last; this.selectRange(last, rowIndex, e.ctrlKey); - this.last = last; + this.last = last; view.focusRow(rowIndex); }else{ var isSelected = this.isSelected(rowIndex); @@ -50534,7 +49090,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + selectRows : function(rows, keepExisting){ if(!keepExisting){ this.clearSelections(); @@ -50544,7 +49100,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + selectRange : function(startRow, endRow, keepExisting){ var i; if(this.isLocked()){ @@ -50564,7 +49120,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + deselectRange : function(startRow, endRow, preventViewNotify){ if(this.isLocked()){ return; @@ -50574,7 +49130,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + selectRow : function(index, keepExisting, preventViewNotify){ if(this.isLocked() || (index < 0 || index >= this.grid.store.getCount()) || (keepExisting && this.isSelected(index))){ return; @@ -50596,7 +49152,7 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + deselectRow : function(index, preventViewNotify){ if(this.isLocked()){ return; @@ -50618,21 +49174,21 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + acceptsNav : function(row, col, cm){ return !cm.isHidden(col) && cm.isCellEditable(col, row); }, - + onEditorKey : function(field, e){ - var k = e.getKey(), - newCell, - g = this.grid, + var k = e.getKey(), + newCell, + g = this.grid, last = g.lastEdit, ed = g.activeEditor, shift = e.shiftKey, ae, last, r, c; - + if(k == e.TAB){ e.stopEvent(); ed.completeEdit(); @@ -50656,23 +49212,23 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { this.onEditorSelect(r, last.row); - if(g.isEditor && g.editing){ + if(g.isEditor && g.editing){ ae = g.activeEditor; if(ae && ae.field.triggerBlur){ - + ae.field.triggerBlur(); } } g.startEditing(r, c); } }, - + onEditorSelect: function(row, lastRow){ if(lastRow != row){ - this.selectRow(row); + this.selectRow(row); } }, - + destroy : function(){ Ext.destroy(this.rowNav); this.rowNav = null; @@ -50681,30 +49237,30 @@ Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { }); Ext.grid.Column = Ext.extend(Ext.util.Observable, { - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + isColumn : true, constructor : function(config){ @@ -50724,24 +49280,24 @@ Ext.grid.Column = Ext.extend(Ext.util.Observable, { delete this.editor; this.setEditor(ed); this.addEvents( - + 'click', - + 'contextmenu', - + 'dblclick', - + 'mousedown' ); Ext.grid.Column.superclass.constructor.call(this); }, - + processEvent : function(name, e, grid, rowIndex, colIndex){ return this.fireEvent(name, this, grid, rowIndex, e); }, - + destroy: function() { if(this.setEditor){ this.setEditor(null); @@ -50749,17 +49305,17 @@ Ext.grid.Column = Ext.extend(Ext.util.Observable, { this.purgeListeners(); }, - + renderer : function(value){ return value; }, - + getEditor: function(rowIndex){ return this.editable !== false ? this.editor : null; }, - + setEditor : function(editor){ var ed = this.editor; if(ed){ @@ -50772,7 +49328,7 @@ Ext.grid.Column = Ext.extend(Ext.util.Observable, { } this.editor = null; if(editor){ - + if(!editor.isXType){ editor = Ext.create(editor, 'textfield'); } @@ -50780,7 +49336,7 @@ Ext.grid.Column = Ext.extend(Ext.util.Observable, { } }, - + getCellEditor: function(rowIndex){ var ed = this.getEditor(rowIndex); if(ed){ @@ -50797,11 +49353,11 @@ Ext.grid.Column = Ext.extend(Ext.util.Observable, { Ext.grid.BooleanColumn = Ext.extend(Ext.grid.Column, { - + trueText: 'true', - + falseText: 'false', - + undefinedText: ' ', constructor: function(cfg){ @@ -50821,7 +49377,7 @@ Ext.grid.BooleanColumn = Ext.extend(Ext.grid.Column, { Ext.grid.NumberColumn = Ext.extend(Ext.grid.Column, { - + format : '0,000.00', constructor: function(cfg){ Ext.grid.NumberColumn.superclass.constructor.call(this, cfg); @@ -50831,7 +49387,7 @@ Ext.grid.NumberColumn = Ext.extend(Ext.grid.Column, { Ext.grid.DateColumn = Ext.extend(Ext.grid.Column, { - + format : 'm/d/Y', constructor: function(cfg){ Ext.grid.DateColumn.superclass.constructor.call(this, cfg); @@ -50841,7 +49397,7 @@ Ext.grid.DateColumn = Ext.extend(Ext.grid.Column, { Ext.grid.TemplateColumn = Ext.extend(Ext.grid.Column, { - + constructor: function(cfg){ Ext.grid.TemplateColumn.superclass.constructor.call(this, cfg); var tpl = (!Ext.isPrimitive(this.tpl) && this.tpl.compile) ? this.tpl : new Ext.XTemplate(this.tpl); @@ -50854,19 +49410,19 @@ Ext.grid.TemplateColumn = Ext.extend(Ext.grid.Column, { Ext.grid.ActionColumn = Ext.extend(Ext.grid.Column, { - - - - - - - - + + + + + + + + header: ' ', actionIdRe: /x-action-col-(\d+)/, - - + + altText: '', constructor: function(cfg) { @@ -50902,7 +49458,7 @@ Ext.grid.ActionColumn = Ext.extend(Ext.grid.Column, { return Ext.grid.ActionColumn.superclass.destroy.apply(this, arguments); }, - + processEvent : function(name, e, grid, rowIndex, colIndex){ var m = e.getTarget().className.match(this.actionIdRe), item, fn; @@ -50927,13 +49483,13 @@ Ext.grid.Column.types = { actioncolumn: Ext.grid.ActionColumn }; Ext.grid.RowNumberer = Ext.extend(Object, { - + header: "", - + width: 23, - + sortable: false, - + constructor : function(config){ Ext.apply(this, config); if(this.rowspan){ @@ -50941,7 +49497,7 @@ Ext.grid.RowNumberer = Ext.extend(Object, { } }, - + fixed:true, hideable: false, menuDisabled:true, @@ -50949,7 +49505,7 @@ Ext.grid.RowNumberer = Ext.extend(Object, { id: 'numberer', rowspan: undefined, - + renderer : function(v, p, record, rowIndex){ if(this.rowspan){ p.cellAttr = 'rowspan="'+this.rowspan+'"'; @@ -50959,21 +49515,21 @@ Ext.grid.RowNumberer = Ext.extend(Object, { }); Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { - - + + header : '
     
    ', - + width : 20, - + sortable : false, - + menuDisabled : true, fixed : true, hideable: false, dataIndex : '', id : 'checker', - isColumn: true, + isColumn: true, constructor : function(){ Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this, arguments); @@ -50982,7 +49538,7 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { } }, - + initEvents : function(){ Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this); this.grid.on('render', function(){ @@ -50990,7 +49546,7 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { }, this); }, - + processEvent : function(name, e, grid, rowIndex, colIndex){ if (name == 'mousedown') { this.onMouseDown(e, e.getTarget()); @@ -51000,9 +49556,9 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { } }, - + onMouseDown : function(e, t){ - if(e.button === 0 && t.className == 'x-grid3-row-checker'){ + if(e.button === 0 && t.className == 'x-grid3-row-checker'){ e.stopEvent(); var row = e.getTarget('.x-grid3-row'); if(row){ @@ -51017,7 +49573,7 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { } }, - + onHdMouseDown : function(e, t) { if(t.className == 'x-grid3-hd-checker'){ e.stopEvent(); @@ -51033,37 +49589,37 @@ Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, { } }, - + renderer : function(v, p, record){ return '
     
    '; }, - + onEditorSelect: function(row, lastRow){ if(lastRow != row && !this.checkOnly){ - this.selectRow(row); + this.selectRow(row); } } }); Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { - + constructor : function(config){ Ext.apply(this, config); this.selection = null; - + this.addEvents( - + "beforecellselect", - + "cellselect", - + "selectionchange" ); - + Ext.grid.CellSelectionModel.superclass.constructor.call(this); }, - + initEvents : function(){ this.grid.on('cellmousedown', this.handleMouseDown, this); this.grid.on(Ext.EventManager.getKeyEvent(), this.handleKeyDown, this); @@ -51079,29 +49635,29 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + beforeEdit : function(e){ this.select(e.row, e.column, false, true, e.record); }, - + onRowUpdated : function(v, index, r){ if(this.selection && this.selection.record == r){ v.onCellSelect(index, this.selection.cell[1]); } }, - + onViewChange : function(){ this.clearSelections(true); }, - + getSelectedCell : function(){ return this.selection ? this.selection.cell : null; }, - + clearSelections : function(preventNotify){ var s = this.selection; if(s){ @@ -51113,12 +49669,12 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + hasSelection : function(){ return this.selection ? true : false; }, - + handleMouseDown : function(g, row, cell, e){ if(e.button !== 0 || this.isLocked()){ return; @@ -51126,7 +49682,7 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { this.select(row, cell); }, - + select : function(rowIndex, colIndex, preventViewNotify, preventFocus, r){ if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){ this.clearSelections(); @@ -51147,24 +49703,24 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }, - + isSelectable : function(rowIndex, colIndex, cm){ return !cm.isHidden(colIndex); }, - - + + onEditorKey: function(field, e){ if(e.getKey() == e.TAB){ this.handleKeyDown(e); } }, - + handleKeyDown : function(e){ if(!e.isNavKeyPress()){ return; } - + var k = e.getKey(), g = this.grid, s = this.selection, @@ -51174,7 +49730,7 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { row, col, step, - g.isEditor && g.editing ? sm.acceptsNav : sm.isSelectable, + g.isEditor && g.editing ? sm.acceptsNav : sm.isSelectable, sm ); }, @@ -51184,26 +49740,26 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { case e.ESC: case e.PAGE_UP: case e.PAGE_DOWN: - + break; default: - + e.stopEvent(); break; } if(!s){ - cell = walk(0, 0, 1); + cell = walk(0, 0, 1); if(cell){ this.select(cell[0], cell[1]); } return; } - cell = s.cell; - r = cell[0]; - c = cell[1]; - + cell = s.cell; + r = cell[0]; + c = cell[1]; + switch(k){ case e.TAB: if(e.shiftKey){ @@ -51233,16 +49789,16 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } if(newCell){ - + r = newCell[0]; c = newCell[1]; - this.select(r, c); + this.select(r, c); - if(g.isEditor && g.editing){ + if(g.isEditor && g.editing){ ae = g.activeEditor; if(ae && ae.field.triggerBlur){ - + ae.field.triggerBlur(); } g.startEditing(r, c); @@ -51255,46 +49811,46 @@ Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, { } }); Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { - + clicksToEdit: 2, - + forceValidation: false, - + isEditor : true, - + detectEdit: false, - + autoEncode : false, - - - trackMouseOver: false, - + + trackMouseOver: false, + + initComponent : function(){ Ext.grid.EditorGridPanel.superclass.initComponent.call(this); if(!this.selModel){ - + this.selModel = new Ext.grid.CellSelectionModel(); } this.activeEditor = null; this.addEvents( - + "beforeedit", - + "afteredit", - + "validateedit" ); }, - + initEvents : function(){ Ext.grid.EditorGridPanel.superclass.initEvents.call(this); @@ -51320,12 +49876,12 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { } }, - + onCellDblClick : function(g, row, col){ this.startEditing(row, col); }, - + onAutoEditClick : function(e, t){ if(e.button !== 0){ return; @@ -51334,7 +49890,7 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { col = this.view.findCellIndex(t); if(row !== false && col !== false){ this.stopEditing(); - if(this.selModel.getSelectedCell){ + if(this.selModel.getSelectedCell){ var sc = this.selModel.getSelectedCell(); if(sc && sc[0] === row && sc[1] === col){ this.startEditing(row, col); @@ -51347,7 +49903,7 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { } }, - + onEditComplete : function(ed, value, startValue){ this.editing = false; this.lastActiveEditor = this.activeEditor; @@ -51376,7 +49932,7 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { this.view.focusCell(ed.row, ed.col); }, - + startEditing : function(row, col){ this.stopEditing(); if(this.colModel.isCellEditable(col, row)){ @@ -51428,22 +49984,22 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { this.activeEditor = ed; if (ed.field.isXType('checkbox')) { ed.allowBlur = false; - this.setupCheckbox(ed.field); + this.setupCheckbox(ed.field); } - - + + ed.selectSameEditor = (this.activeEditor == this.lastActiveEditor); var v = this.preEditValue(r, field); ed.startEdit(this.view.getCell(row, col).firstChild, Ext.isDefined(v) ? v : ''); - + (function(){ delete ed.selectSameEditor; }).defer(50); } } }, - + setupCheckbox: function(field){ var me = this, fn = function() { @@ -51455,28 +50011,28 @@ Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, { field.on('render', fn, null, {single: true}); } }, - + onCheckClick: function(){ var ed = this.activeEditor; ed.allowBlur = true; - ed.field.focus(false, 10); + ed.field.focus(false, 10); }, - + preEditValue : function(r, field){ var value = r.data[field]; return this.autoEncode && Ext.isString(value) ? Ext.util.Format.htmlDecode(value) : value; }, - + postEditValue : function(value, originalValue, r, field){ return this.autoEncode && Ext.isString(value) ? Ext.util.Format.htmlEncode(value) : value; }, - + stopEditing : function(cancel){ if(this.editing){ - + var ae = this.lastActiveEditor = this.activeEditor; if(ae){ ae[cancel === true ? 'cancelEdit' : 'completeEdit'](); @@ -51508,7 +50064,7 @@ Ext.grid.PropertyRecord = Ext.data.Record.create([ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { - + constructor : function(grid, source){ this.grid = grid; this.store = new Ext.data.Store({ @@ -51518,10 +50074,10 @@ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { if(source){ this.setSource(source); } - Ext.grid.PropertyStore.superclass.constructor.call(this); + Ext.grid.PropertyStore.superclass.constructor.call(this); }, - - + + setSource : function(o){ this.source = o; this.store.removeAll(); @@ -51534,7 +50090,7 @@ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { this.store.loadRecords({records: data}, {}, true); }, - + onUpdate : function(ds, record, type){ if(type == Ext.data.Record.EDIT){ var v = record.data.value; @@ -51549,32 +50105,32 @@ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { } }, - + getProperty : function(row){ return this.store.getAt(row); }, - + isEditableValue: function(val){ return Ext.isPrimitive(val) || Ext.isDate(val); }, - + setValue : function(prop, value, create){ var r = this.getRec(prop); if(r){ r.set('value', value); this.source[prop] = value; }else if(create){ - + this.source[prop] = value; r = new Ext.grid.PropertyRecord({name: prop, value: value}, prop); this.store.add(r); } }, - - + + remove : function(prop){ var r = this.getRec(prop); if(r){ @@ -51582,13 +50138,13 @@ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { delete this.source[prop]; } }, - - + + getRec : function(prop){ return this.store.getById(prop); }, - + getSource : function(){ return this.source; } @@ -51596,24 +50152,24 @@ Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, { Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, { - + nameText : 'Name', valueText : 'Value', dateFormat : 'm/j/Y', trueText: 'true', falseText: 'false', - + constructor : function(grid, store){ var g = Ext.grid, f = Ext.form; - + this.grid = grid; g.PropertyColumnModel.superclass.constructor.call(this, [ {header: this.nameText, width:50, sortable: true, dataIndex:'name', id: 'name', menuDisabled:true}, {header: this.valueText, width:50, resizable:false, dataIndex: 'value', id: 'value', menuDisabled:true} ]); this.store = store; - + var bfield = new f.Field({ autoCreate: {tag: 'select', children: [ {tag: 'option', value: 'true', html: this.trueText}, @@ -51635,33 +50191,33 @@ Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, { this.renderPropDelegate = this.renderProp.createDelegate(this); }, - + renderDate : function(dateVal){ return dateVal.dateFormat(this.dateFormat); }, - + renderBool : function(bVal){ return this[bVal ? 'trueText' : 'falseText']; }, - + isCellEditable : function(colIndex, rowIndex){ return colIndex == 1; }, - + getRenderer : function(col){ return col == 1 ? this.renderCellDelegate : this.renderPropDelegate; }, - + renderProp : function(v){ return this.getPropertyName(v); }, - + renderCell : function(val, meta, rec){ var renderer = this.grid.customRenderers[rec.get('name')]; if(renderer){ @@ -51676,16 +50232,16 @@ Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, { return Ext.util.Format.htmlEncode(rv); }, - + getPropertyName : function(name){ var pn = this.grid.propertyNames; return pn && pn[name] ? pn[name] : name; }, - + getCellEditor : function(colIndex, rowIndex){ var p = this.store.getProperty(rowIndex), - n = p.data.name, + n = p.data.name, val = p.data.value; if(this.grid.customEditors[n]){ return this.grid.customEditors[n]; @@ -51701,13 +50257,13 @@ Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, { } }, - + destroy : function(){ Ext.grid.PropertyColumnModel.superclass.destroy.call(this); this.destroyEditors(this.editors); this.destroyEditors(this.grid.customEditors); }, - + destroyEditors: function(editors){ for(var ed in editors){ Ext.destroy(editors[ed]); @@ -51717,12 +50273,12 @@ Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, { Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { - - - - - + + + + + enableColumnMove:false, stripeRows:false, trackMouseOver: false, @@ -51732,7 +50288,7 @@ Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { forceFit:true }, - + initComponent : function(){ this.customRenderers = this.customRenderers || {}; this.customEditors = this.customEditors || {}; @@ -51742,9 +50298,9 @@ Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { var cm = new Ext.grid.PropertyColumnModel(this, store); store.store.sort('name', 'ASC'); this.addEvents( - + 'beforepropertychange', - + 'propertychange' ); this.cm = cm; @@ -51759,14 +50315,14 @@ Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { }, this); }, - + onRender : function(){ Ext.grid.PropertyGrid.superclass.onRender.apply(this, arguments); this.getGridEl().addClass('x-props-grid'); }, - + afterRender: function(){ Ext.grid.PropertyGrid.superclass.afterRender.apply(this, arguments); if(this.source){ @@ -51774,67 +50330,67 @@ Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, { } }, - + setSource : function(source){ this.propStore.setSource(source); }, - + getSource : function(){ return this.propStore.getSource(); }, - - + + setProperty : function(prop, value, create){ - this.propStore.setValue(prop, value, create); + this.propStore.setValue(prop, value, create); }, - - + + removeProperty : function(prop){ this.propStore.remove(prop); } - - - - + + + + }); Ext.reg("propertygrid", Ext.grid.PropertyGrid); Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { - + groupByText : 'Group By This Field', - + showGroupsText : 'Show in Groups', - + hideGroupedColumn : false, - + showGroupName : true, - + startCollapsed : false, - + enableGrouping : true, - + enableGroupingMenu : true, - + enableNoGroups : true, - + emptyGroupText : '(None)', - + ignoreAdd : false, - + groupTextTpl : '{text}', - + groupMode: 'value', - - - + + + cancelEditOnToggle: true, - + initTemplates : function(){ Ext.grid.GroupingView.superclass.initTemplates.call(this); this.state = {}; @@ -51857,17 +50413,17 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + findGroup : function(el){ return Ext.fly(el).up('.x-grid-group', this.mainBody.dom); }, - + getGroups : function(){ return this.hasRows() ? this.mainBody.dom.childNodes : []; }, - + onAdd : function(ds, records, index) { if (this.canGroup() && !this.ignoreAdd) { var ss = this.getScrollState(); @@ -51880,7 +50436,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + onRemove : function(ds, record, index, isUpdate){ Ext.grid.GroupingView.superclass.onRemove.apply(this, arguments); var g = document.getElementById(record._groupId); @@ -51890,7 +50446,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { this.applyEmptyText(); }, - + refreshRow : function(record){ if(this.ds.getCount()==1){ this.refresh(); @@ -51901,7 +50457,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + beforeMenuShow : function(){ var item, items = this.hmenu.items, disabled = this.cm.config[this.hdCtxIndex].groupable === false; if((item = items.get('groupBy'))){ @@ -51913,7 +50469,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + renderUI : function(){ var markup = Ext.grid.GroupingView.superclass.renderUI.call(this); @@ -51943,16 +50499,16 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { Ext.grid.GroupingView.superclass.processEvent.call(this, name, e); var hd = e.getTarget('.x-grid-group-hd', this.mainBody); if(hd){ - + var field = this.getGroupField(), prefix = this.getPrefix(field), groupValue = hd.id.substring(prefix.length), emptyRe = new RegExp('gp-' + Ext.escapeRe(field) + '--hd'); - + groupValue = groupValue.substr(0, groupValue.length - 3); - - + + if(groupValue || emptyRe.test(hd.id)){ this.grid.fireEvent('group' + name, this.grid, field, groupValue, e); } @@ -51963,17 +50519,17 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { }, - + onGroupByClick : function(){ var grid = this.grid; this.enableGrouping = true; grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex)); grid.fireEvent('groupchange', grid, grid.store.getGroupState()); - this.beforeMenuShow(); + this.beforeMenuShow(); this.refresh(); }, - + onShowGroupsClick : function(mi, checked){ this.enableGrouping = checked; if(checked){ @@ -51984,7 +50540,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + toggleRowIndex : function(rowIndex, expanded){ if(!this.canGroup()){ return; @@ -51995,11 +50551,11 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + toggleGroup : function(group, expanded){ var gel = Ext.get(group), id = Ext.util.Format.htmlEncode(gel.id); - + expanded = Ext.isDefined(expanded) ? expanded : gel.hasClass('x-grid-group-collapsed'); if(this.state[id] !== expanded){ if (this.cancelEditOnToggle !== false) { @@ -52010,7 +50566,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + toggleAllGroups : function(expanded){ var groups = this.getGroups(); for(var i = 0, len = groups.length; i < len; i++){ @@ -52018,17 +50574,17 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + expandAllGroups : function(){ this.toggleAllGroups(true); }, - + collapseAllGroups : function(){ this.toggleAllGroups(false); }, - + getGroup : function(v, r, groupRenderer, rowIndex, colIndex, ds){ var column = this.cm.config[colIndex], g = groupRenderer ? groupRenderer.call(column.scope, v, {}, r, rowIndex, colIndex, ds) : String(v); @@ -52038,12 +50594,12 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { return g; }, - + getGroupField : function(){ return this.grid.store.getGroupState(); }, - + afterRender : function(){ if(!this.ds || !this.cm){ return; @@ -52053,7 +50609,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { this.updateGroupWidths(); } }, - + afterRenderUI: function () { Ext.grid.GroupingView.superclass.afterRenderUI.call(this); @@ -52065,7 +50621,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { scope: this, iconCls:'x-group-by-icon' }); - + if (this.enableNoGroups) { this.hmenu.add({ itemId:'showGroups', @@ -52075,16 +50631,16 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { scope: this }); } - + this.hmenu.on('beforeshow', this.beforeMenuShow, this); } }, - + renderRows : function(){ var groupField = this.getGroupField(); var eg = !!groupField; - + if(this.hideGroupedColumn) { var colIndex = this.cm.findColumnIndex(groupField), hasLastGroupField = Ext.isDefined(this.lastGroupField); @@ -52107,7 +50663,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { this, arguments); }, - + doRender : function(cs, rs, ds, startRow, colCount, stripe){ if(rs.length < 1){ return ''; @@ -52135,8 +50691,8 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { g = this.getGroup(gvalue, r, groupRenderer, rowIndex, colIndex, ds); if(!curGroup || curGroup.group != g){ gid = this.constructId(gvalue, groupField, colIndex); - - + + this.state[gid] = !(Ext.isDefined(this.state[gid]) ? !this.state[gid] : this.startCollapsed); curGroup = { group: g, @@ -52167,13 +50723,13 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { return buf.join(''); }, - + getGroupId : function(value){ var field = this.getGroupField(); return this.constructId(value, field, this.cm.findColumnIndex(field)); }, - + constructId : function(value, field, idx){ var cfg = this.cm.config[idx], groupRenderer = cfg.groupRenderer || cfg.renderer, @@ -52182,27 +50738,27 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { return this.getPrefix(field) + Ext.util.Format.htmlEncode(val); }, - + canGroup : function(){ return this.enableGrouping && !!this.getGroupField(); }, - + getPrefix: function(field){ return this.grid.getGridEl().id + '-gp-' + field + '-'; }, - + doGroupStart : function(buf, g, cs, ds, colCount){ buf[buf.length] = this.startGroup.apply(g); }, - + doGroupEnd : function(buf, g, cs, ds, colCount){ buf[buf.length] = this.endGroup; }, - + getRows : function(){ if(!this.canGroup()){ return Ext.grid.GroupingView.superclass.getRows.call(this); @@ -52226,7 +50782,7 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { return r; }, - + updateGroupWidths : function(){ if(!this.canGroup() || !this.hasRows()){ return; @@ -52238,30 +50794,30 @@ Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, { } }, - + onColumnWidthUpdated : function(col, w, tw){ Ext.grid.GroupingView.superclass.onColumnWidthUpdated.call(this, col, w, tw); this.updateGroupWidths(); }, - + onAllColumnWidthsUpdated : function(ws, tw){ Ext.grid.GroupingView.superclass.onAllColumnWidthsUpdated.call(this, ws, tw); this.updateGroupWidths(); }, - + onColumnHiddenUpdated : function(col, hidden, tw){ Ext.grid.GroupingView.superclass.onColumnHiddenUpdated.call(this, col, hidden, tw); this.updateGroupWidths(); }, - + onLayout : function(){ this.updateGroupWidths(); }, - + onBeforeRowSelect : function(sm, rowIndex){ this.toggleRowIndex(rowIndex, true); } diff --git a/manager/assets/ext3/ext-all.js b/manager/assets/ext3/ext-all.js index 7f80d86f8cc..d2d14b407fc 100644 --- a/manager/assets/ext3/ext-all.js +++ b/manager/assets/ext3/ext-all.js @@ -1,5 +1,5 @@ /* -This file is part of Ext JS 3.4 +This file is part of Ext JS 3.4 (without the flash based components) Copyright (c) 2011-2013 Sencha Inc @@ -16,6 +16,6 @@ requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact. -Build date: 2013-04-03 15:07:25 +Build date: 2020-10-28 16:35:00 */ -(function(){var h=Ext.util,j=Ext.each,g=true,i=false;h.Observable=function(){var k=this,l=k.events;if(k.listeners){k.on(k.listeners);delete k.listeners}k.events=l||{}};h.Observable.prototype={filterOptRe:/^(?:scope|delay|buffer|single)$/,fireEvent:function(){var k=Array.prototype.slice.call(arguments,0),m=k[0].toLowerCase(),n=this,l=g,p=n.events[m],s,o,r;if(n.eventsSuspended===g){if(o=n.eventQueue){o.push(k)}}else{if(typeof p=="object"){if(p.bubble){if(p.fire.apply(p,k.slice(1))===i){return i}r=n.getBubbleTarget&&n.getBubbleTarget();if(r&&r.enableBubble){s=r.events[m];if(!s||typeof s!="object"||!s.bubble){r.enableBubble(m)}return r.fireEvent.apply(r,k)}}else{k.shift();l=p.fire.apply(p,k)}}}return l},addListener:function(k,m,l,r){var n=this,q,s,p;if(typeof k=="object"){r=k;for(q in r){s=r[q];if(!n.filterOptRe.test(q)){n.addListener(q,s.fn||s,s.scope||r.scope,s.fn?s:r)}}}else{k=k.toLowerCase();p=n.events[k]||g;if(typeof p=="boolean"){n.events[k]=p=new h.Event(n,k)}p.addListener(m,l,typeof r=="object"?r:{})}},removeListener:function(k,m,l){var n=this.events[k.toLowerCase()];if(typeof n=="object"){n.removeListener(m,l)}},purgeListeners:function(){var m=this.events,k,l;for(l in m){k=m[l];if(typeof k=="object"){k.clearListeners()}}},addEvents:function(n){var m=this;m.events=m.events||{};if(typeof n=="string"){var k=arguments,l=k.length;while(l--){m.events[k[l]]=m.events[k[l]]||g}}else{Ext.applyIf(m.events,n)}},hasListener:function(k){var l=this.events[k.toLowerCase()];return typeof l=="object"&&l.listeners.length>0},suspendEvents:function(k){this.eventsSuspended=g;if(k&&!this.eventQueue){this.eventQueue=[]}},resumeEvents:function(){var k=this,l=k.eventQueue||[];k.eventsSuspended=i;delete k.eventQueue;j(l,function(m){k.fireEvent.apply(k,m)})}};var d=h.Observable.prototype;d.on=d.addListener;d.un=d.removeListener;h.Observable.releaseCapture=function(k){k.fireEvent=d.fireEvent};function e(l,m,k){return function(){if(m.target==arguments[0]){l.apply(k,Array.prototype.slice.call(arguments,0))}}}function b(n,p,k,m){k.task=new h.DelayedTask();return function(){k.task.delay(p.buffer,n,m,Array.prototype.slice.call(arguments,0))}}function c(m,n,l,k){return function(){n.removeListener(l,k);return m.apply(k,arguments)}}function a(n,p,k,m){return function(){var l=new h.DelayedTask(),o=Array.prototype.slice.call(arguments,0);if(!k.tasks){k.tasks=[]}k.tasks.push(l);l.delay(p.delay||10,function(){k.tasks.remove(l);n.apply(m,o)},m)}}h.Event=function(l,k){this.name=k;this.obj=l;this.listeners=[]};h.Event.prototype={addListener:function(o,n,m){var p=this,k;n=n||p.obj;if(!p.isListening(o,n)){k=p.createListener(o,n,m);if(p.firing){p.listeners=p.listeners.slice(0)}p.listeners.push(k)}},createListener:function(p,n,q){q=q||{};n=n||this.obj;var k={fn:p,scope:n,options:q},m=p;if(q.target){m=e(m,q,n)}if(q.delay){m=a(m,q,k,n)}if(q.single){m=c(m,this,p,n)}if(q.buffer){m=b(m,q,k,n)}k.fireFn=m;return k},findListener:function(o,n){var p=this.listeners,m=p.length,k;n=n||this.obj;while(m--){k=p[m];if(k){if(k.fn==o&&k.scope==n){return m}}}return -1},isListening:function(l,k){return this.findListener(l,k)!=-1},removeListener:function(r,q){var p,m,n,s=this,o=i;if((p=s.findListener(r,q))!=-1){if(s.firing){s.listeners=s.listeners.slice(0)}m=s.listeners[p];if(m.task){m.task.cancel();delete m.task}n=m.tasks&&m.tasks.length;if(n){while(n--){m.tasks[n].cancel()}delete m.tasks}s.listeners.splice(p,1);o=g}return o},clearListeners:function(){var n=this,k=n.listeners,m=k.length;while(m--){n.removeListener(k[m].fn,k[m].scope)}},fire:function(){var q=this,p=q.listeners,k=p.length,o=0,m;if(k>0){q.firing=g;var n=Array.prototype.slice.call(arguments,0);for(;o",i="",b=a+"",j=""+i,l=b+"",w=""+j;function h(B,D,C,E,A,y){var z=r.insertHtml(E,Ext.getDom(B),u(D));return C?Ext.get(z,true):z}function u(D){var z="",y,C,B,E;if(typeof D=="string"){z=D}else{if(Ext.isArray(D)){for(var A=0;A"}}}return z}function g(F,C,B,D){x.innerHTML=[C,B,D].join("");var y=-1,A=x,z;while(++y "'+D+'"'},insertBefore:function(y,A,z){return h(y,A,z,c)},insertAfter:function(y,A,z){return h(y,A,z,p,"nextSibling")},insertFirst:function(y,A,z){return h(y,A,z,n,"firstChild")},append:function(y,A,z){return h(y,A,z,q,"",true)},overwrite:function(y,A,z){y=Ext.getDom(y);y.innerHTML=u(A);return z?Ext.get(y.firstChild):y.firstChild},createHtml:u};return r}();Ext.Template=function(h){var j=this,c=arguments,e=[],d;if(Ext.isArray(h)){h=h.join("")}else{if(c.length>1){for(var g=0,b=c.length;g+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w\-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,isIE=window.ActiveXObject?true:false,key=30803;eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){parent.removeChild(n)}else{n.nodeIndex=++nodeIndex}n=nextNode}return this}function byClassName(nodeSet,cls){if(!cls){return nodeSet}var result=[],ri=-1;for(var i=0,ci;ci=nodeSet[i];i++){if((" "+ci.className+" ").indexOf(cls)!=-1){result[++ri]=ci}}return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=="*"){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i1){return nodup(results)}return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root)){try{var cs=root.querySelectorAll(path);return Ext.toArray(cs)}catch(ex){}}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function"){n.normalize()}v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w\-]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w\-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w\-]+)\s?(?:(=|.=)\s?(["']?)(.*?)\4)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{5}", "{3}", "{1}");'},{re:/^#([\w\-]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w\-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};e.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};e.cancel=function(){if(g){clearInterval(g);g=null}}};(function(){var h=document;Ext.Element=function(l,m){var n=typeof l=="string"?h.getElementById(l):l,o;if(!n){return null}o=n.id;if(!m&&o&&Ext.elCache[o]){return Ext.elCache[o].el}this.dom=n;this.id=o||Ext.id(n)};var d=Ext.DomHelper,e=Ext.Element,a=Ext.elCache;e.prototype={set:function(q,m){var n=this.dom,l,p,m=(m!==false)&&!!n.setAttribute;for(l in q){if(q.hasOwnProperty(l)){p=q[l];if(l=="style"){d.applyStyles(n,p)}else{if(l=="cls"){n.className=p}else{if(m){n.setAttribute(l,p)}else{n[l]=p}}}}}return this},defaultUnit:"px",is:function(l){return Ext.DomQuery.is(this.dom,l)},focus:function(o,n){var l=this,n=n||l.dom;try{if(Number(o)){l.focus.defer(o,null,[null,n])}else{n.focus()}}catch(m){}return l},blur:function(){try{this.dom.blur()}catch(l){}return this},getValue:function(l){var m=this.dom.value;return l?parseInt(m,10):m},addListener:function(l,o,n,m){Ext.EventManager.on(this.dom,l,o,n||this,m);return this},removeListener:function(l,n,m){Ext.EventManager.removeListener(this.dom,l,n,m||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this,true);return this},addUnits:function(l){if(l===""||l=="auto"||l===undefined){l=l||""}else{if(!isNaN(l)||!i.test(l)){l=l+(this.defaultUnit||"px")}}return l},load:function(m,n,l){Ext.Ajax.request(Ext.apply({params:n,url:m.url||m,callback:l,el:this.dom,indicatorText:m.indicatorText||""},Ext.isObject(m)?m:{}));return this},isBorderBox:function(){return Ext.isBorderBox||Ext.isForcedBorderBox||g[(this.dom.tagName||"").toLowerCase()]},remove:function(){var l=this,m=l.dom;if(m){delete l.dom;Ext.removeNode(m)}},hover:function(m,l,o,n){var p=this;p.on("mouseenter",m,o||p.dom,n);p.on("mouseleave",l,o||p.dom,n);return p},contains:function(l){return !l?false:Ext.lib.Dom.isAncestor(this.dom,l.dom?l.dom:l)},getAttributeNS:function(m,l){return this.getAttribute(l,m)},getAttribute:(function(){var p=document.createElement("table"),o=false,m="getAttribute" in p,l=/undefined|unknown/;if(m){try{p.getAttribute("ext:qtip")}catch(n){o=true}return function(q,s){var r=this.dom,t;if(r.getAttributeNS){t=r.getAttributeNS(s,q)||null}if(t==null){if(s){if(o&&r.tagName.toUpperCase()=="TABLE"){try{t=r.getAttribute(s+":"+q)}catch(u){t=""}}else{t=r.getAttribute(s+":"+q)}}else{t=r.getAttribute(q)||r[q]}}return t||""}}else{return function(q,s){var r=this.om,u,t;if(s){t=r[s+":"+q];u=l.test(typeof t)?undefined:t}else{u=r[q]}return u||""}}p=null})(),update:function(l){if(this.dom){this.dom.innerHTML=l}return this}};var k=e.prototype;e.addMethods=function(l){Ext.apply(k,l)};k.on=k.addListener;k.un=k.removeListener;k.autoBoxAdjust=true;var i=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,c;e.get=function(m){var l,p,o;if(!m){return null}if(typeof m=="string"){if(!(p=h.getElementById(m))){return null}if(a[m]&&a[m].el){l=a[m].el;l.dom=p}else{l=e.addToCache(new e(p))}return l}else{if(m.tagName){if(!(o=m.id)){o=Ext.id(m)}if(a[o]&&a[o].el){l=a[o].el;l.dom=m}else{l=e.addToCache(new e(m))}return l}else{if(m instanceof e){if(m!=c){if(Ext.isIE&&(m.id==undefined||m.id=="")){m.dom=m.dom}else{m.dom=h.getElementById(m.id)||m.dom}}return m}else{if(m.isComposite){return m}else{if(Ext.isArray(m)){return e.select(m)}else{if(m==h){if(!c){var n=function(){};n.prototype=e.prototype;c=new n();c.dom=h}return c}}}}}}return null};e.addToCache=function(l,m){m=m||l.id;a[m]={el:l,data:{},events:{}};return l};e.data=function(m,l,n){m=e.get(m);if(!m){return null}var o=a[m.id].data;if(arguments.length==2){return o[l]}else{return(o[l]=n)}};function j(){if(!Ext.enableGarbageCollector){clearInterval(e.collectorThreadId)}else{var l,n,q,p;for(l in a){p=a[l];if(p.skipGC){Ext.EventManager.removeFromSpecialCache(p.el);continue}n=p.el;q=n.dom;if(!q||!q.parentNode||(!q.offsetParent&&!h.getElementById(l))){if(Ext.enableListenerCollection){Ext.EventManager.removeAll(q)}delete a[l]}}if(Ext.isIE){var m={};for(l in a){m[l]=a[l]}a=Ext.elCache=m}}}e.collectorThreadId=setInterval(j,30000);var b=function(){};b.prototype=e.prototype;e.Flyweight=function(l){this.dom=l};e.Flyweight.prototype=new b();e.Flyweight.prototype.isFlyweight=true;e._flyweights={};e.fly=function(n,l){var m=null;l=l||"_global";if(n=Ext.getDom(n)){(e._flyweights[l]=e._flyweights[l]||new e.Flyweight()).dom=n;m=e._flyweights[l]}return m};Ext.get=e.get;Ext.fly=e.fly;var g=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){g.button=1}})();Ext.Element.addMethods(function(){var d="parentNode",b="nextSibling",c="previousSibling",e=Ext.DomQuery,a=Ext.get;return{findParent:function(m,l,h){var j=this.dom,g=document.body,k=0,i;if(Ext.isGecko&&Object.prototype.toString.call(j)=="[object XULElement]"){return null}l=l||50;if(isNaN(l)){i=Ext.getDom(l);l=Number.MAX_VALUE}while(j&&j.nodeType==1&&k "+g,this.dom);return h?i:a(i)},parent:function(g,h){return this.matchNode(d,d,g,h)},next:function(g,h){return this.matchNode(b,b,g,h)},prev:function(g,h){return this.matchNode(c,c,g,h)},first:function(g,h){return this.matchNode(b,"firstChild",g,h)},last:function(g,h){return this.matchNode(c,"lastChild",g,h)},matchNode:function(h,k,g,i){var j=this.dom[k];while(j){if(j.nodeType==1&&(!g||e.is(j,g))){return !i?a(j):j}j=j[h]}return null}}}());Ext.Element.addMethods(function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{appendChild:function(d){return a(d).appendTo(this)},appendTo:function(d){c(d).appendChild(this.dom);return this},insertBefore:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d);return this},insertAfter:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d.nextSibling);return this},insertFirst:function(e,d){e=e||{};if(e.nodeType||e.dom||typeof e=="string"){e=c(e);this.dom.insertBefore(e,this.dom.firstChild);return !d?a(e):e}else{return this.createChild(e,this.dom.firstChild,d)}},replace:function(d){d=a(d);this.insertBefore(d);d.remove();return this},replaceWith:function(d){var e=this;if(d.nodeType||d.dom||typeof d=="string"){d=c(d);e.dom.parentNode.insertBefore(d,e.dom)}else{d=b.insertBefore(e.dom,d)}delete Ext.elCache[e.id];Ext.removeNode(e.dom);e.id=Ext.id(e.dom=d);Ext.Element.addToCache(e.isFlyweight?new Ext.Element(e.dom):e);return e},createChild:function(e,d,g){e=e||{tag:"div"};return d?b.insertBefore(d,e,g!==true):b[!this.dom.firstChild?"overwrite":"append"](this.dom,e,g!==true)},wrap:function(d,e){var g=b.insertBefore(this.dom,d||{tag:"div"},!e);g.dom?g.dom.appendChild(this.dom):g.appendChild(this.dom);return g},insertHtml:function(e,g,d){var h=b.insertHtml(e,this.dom,g);return d?Ext.get(h):h}}}());Ext.Element.addMethods(function(){var A=Ext.supports,h={},x=/(-[a-z])/gi,s=document.defaultView,D=/alpha\(opacity=(.*)\)/i,l=/^\s+|\s+$/g,B=Ext.Element,u=/\s+/,b=/\w/g,d="padding",c="margin",y="border",t="-left",q="-right",w="-top",o="-bottom",j="-width",r=Math,z="hidden",e="isClipped",k="overflow",n="overflow-x",m="overflow-y",C="originalClip",i={l:y+t+j,r:y+q+j,t:y+w+j,b:y+o+j},g={l:d+t,r:d+q,t:d+w,b:d+o},a={l:c+t,r:c+q,t:c+w,b:c+o},E=Ext.Element.data;function p(F,G){return G.charAt(1).toUpperCase()}function v(F){return h[F]||(h[F]=F=="float"?(A.cssFloat?"cssFloat":"styleFloat"):F.replace(x,p))}return{adjustWidth:function(F){var G=this;var H=(typeof F=="number");if(H&&G.autoBoxAdjust&&!G.isBorderBox()){F-=(G.getBorderWidth("lr")+G.getPadding("lr"))}return(H&&F<0)?0:F},adjustHeight:function(F){var G=this;var H=(typeof F=="number");if(H&&G.autoBoxAdjust&&!G.isBorderBox()){F-=(G.getBorderWidth("tb")+G.getPadding("tb"))}return(H&&F<0)?0:F},addClass:function(J){var K=this,I,F,H,G=[];if(!Ext.isArray(J)){if(typeof J=="string"&&!this.hasClass(J)){K.dom.className+=" "+J}}else{for(I=0,F=J.length;I5?H.toLowerCase():G)},setStyle:function(I,H){var F,G;if(typeof I!="object"){F={};F[I]=H;I=F}for(G in I){H=I[G];G=="opacity"?this.setOpacity(H):this.dom.style[v(G)]=H}return this},setOpacity:function(G,F){var J=this,H=J.dom.style;if(!F||!J.anim){if(Ext.isIE9m){var I=G<1?"alpha(opacity="+G*100+")":"",K=H.filter.replace(D,"").replace(l,"");H.zoom=1;H.filter=K+(K.length>0?" ":"")+I}else{H.opacity=G}}else{J.anim({opacity:{to:G}},J.preanim(arguments,1),null,0.35,"easeIn")}return J},clearOpacity:function(){var F=this.dom.style;if(Ext.isIE9m){if(!Ext.isEmpty(F.filter)){F.filter=F.filter.replace(D,"").replace(l,"")}}else{F.opacity=F["-moz-opacity"]=F["-khtml-opacity"]=""}return this},getHeight:function(H){var G=this,J=G.dom,I=Ext.isIE9m&&G.isStyle("display","none"),F=r.max(J.offsetHeight,I?0:J.clientHeight)||0;F=!H?F:F-G.getBorderWidth("tb")-G.getPadding("tb");return F<0?0:F},getWidth:function(G){var H=this,J=H.dom,I=Ext.isIE9m&&H.isStyle("display","none"),F=r.max(J.offsetWidth,I?0:J.clientWidth)||0;F=!G?F:F-H.getBorderWidth("lr")-H.getPadding("lr");return F<0?0:F},setWidth:function(G,F){var H=this;G=H.adjustWidth(G);!F||!H.anim?H.dom.style.width=H.addUnits(G):H.anim({width:{to:G}},H.preanim(arguments,1));return H},setHeight:function(F,G){var H=this;F=H.adjustHeight(F);!G||!H.anim?H.dom.style.height=H.addUnits(F):H.anim({height:{to:F}},H.preanim(arguments,1));return H},getBorderWidth:function(F){return this.addStyles(F,i)},getPadding:function(F){return this.addStyles(F,g)},clip:function(){var F=this,G=F.dom;if(!E(G,e)){E(G,e,true);E(G,C,{o:F.getStyle(k),x:F.getStyle(n),y:F.getStyle(m)});F.setStyle(k,z);F.setStyle(n,z);F.setStyle(m,z)}return F},unclip:function(){var F=this,H=F.dom;if(E(H,e)){E(H,e,false);var G=E(H,C);if(G.o){F.setStyle(k,G.o)}if(G.x){F.setStyle(n,G.x)}if(G.y){F.setStyle(m,G.y)}}return F},addStyles:function(M,L){var J=0,K=M.match(b),I,H,G,F=K.length;for(G=0;Ga.clientHeight||a.scrollWidth>a.clientWidth},scrollTo:function(a,b){this.dom["scroll"+(/top/i.test(a)?"Top":"Left")]=b;return this},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&&Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else{e={left:i.scrollLeft,top:i.scrollTop}}return e}});Ext.Element.VISIBILITY=1;Ext.Element.DISPLAY=2;Ext.Element.OFFSETS=3;Ext.Element.ASCLASS=4;Ext.Element.visibilityCls="x-hide-nosize";Ext.Element.addMethods(function(){var e=Ext.Element,p="opacity",j="visibility",g="display",d="hidden",n="offsets",k="asclass",m="none",a="nosize",b="originalDisplay",c="visibilityMode",h="isVisible",i=e.data,l=function(r){var q=i(r,b);if(q===undefined){i(r,b,q="")}return q},o=function(r){var q=i(r,c);if(q===undefined){i(r,c,q=1)}return q};return{originalDisplay:"",visibilityMode:1,setVisibilityMode:function(q){i(this.dom,c,q);return this},animate:function(r,t,s,u,q){this.anim(r,{duration:t,callback:s,easing:u},q);return this},anim:function(t,u,r,w,s,q){r=r||"run";u=u||{};var v=this,x=Ext.lib.Anim[r](v.dom,t,(u.duration||w)||0.35,(u.easing||s)||"easeOut",function(){if(q){q.call(v)}if(u.callback){u.callback.call(u.scope||v,v,u)}},v);u.anim=x;return x},preanim:function(q,r){return !q[r]?false:(typeof q[r]=="object"?q[r]:{duration:q[r+1],callback:q[r+2],easing:q[r+3]})},isVisible:function(){var q=this,s=q.dom,r=i(s,h);if(typeof r=="boolean"){return r}r=!q.isStyle(j,d)&&!q.isStyle(g,m)&&!((o(s)==e.ASCLASS)&&q.hasClass(q.visibilityCls||e.visibilityCls));i(s,h,r);return r},setVisible:function(t,q){var w=this,r,y,x,v,u=w.dom,s=o(u);if(typeof q=="string"){switch(q){case g:s=e.DISPLAY;break;case j:s=e.VISIBILITY;break;case n:s=e.OFFSETS;break;case a:case k:s=e.ASCLASS;break}w.setVisibilityMode(s);q=false}if(!q||!w.anim){if(s==e.ASCLASS){w[t?"removeClass":"addClass"](w.visibilityCls||e.visibilityCls)}else{if(s==e.DISPLAY){return w.setDisplayed(t)}else{if(s==e.OFFSETS){if(!t){w.hideModeStyles={position:w.getStyle("position"),top:w.getStyle("top"),left:w.getStyle("left")};w.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})}else{w.applyStyles(w.hideModeStyles||{position:"",top:"",left:""});delete w.hideModeStyles}}else{w.fixDisplay();u.style.visibility=t?"visible":d}}}}else{if(t){w.setOpacity(0.01);w.setVisible(true)}w.anim({opacity:{to:(t?1:0)}},w.preanim(arguments,1),null,0.35,"easeIn",function(){t||w.setVisible(false).setOpacity(1)})}i(u,h,t);return w},hasMetrics:function(){var q=this.dom;return this.isVisible()||(o(q)==e.VISIBILITY)},toggle:function(q){var r=this;r.setVisible(!r.isVisible(),r.preanim(arguments,0));return r},setDisplayed:function(q){if(typeof q=="boolean"){q=q?l(this.dom):m}this.setStyle(g,q);return this},fixDisplay:function(){var q=this;if(q.isStyle(g,m)){q.setStyle(j,d);q.setStyle(g,l(this.dom));if(q.isStyle(g,m)){q.setStyle(g,"block")}}},hide:function(q){if(typeof q=="string"){this.setVisible(false,q);return this}this.setVisible(false,this.preanim(arguments,0));return this},show:function(q){if(typeof q=="string"){this.setVisible(true,q);return this}this.setVisible(true,this.preanim(arguments,0));return this}}}());(function(){var y=null,A=undefined,k=true,t=false,j="setX",h="setY",a="setXY",n="left",l="bottom",s="top",m="right",q="height",g="width",i="points",w="hidden",z="absolute",u="visible",e="motion",o="position",r="easeOut",d=new Ext.Element.Flyweight(),v={},x=function(B){return B||{}},p=function(B){d.dom=B;d.id=Ext.id(B);return d},c=function(B){if(!v[B]){v[B]=[]}return v[B]},b=function(C,B){v[C]=B};Ext.enableFx=k;Ext.Fx={switchStatements:function(C,D,B){return D.apply(this,B[C])},slideIn:function(H,E){E=x(E);var J=this,G=J.dom,M=G.style,O,B,L,D,C,M,I,N,K,F;H=H||"t";J.queueFx(E,function(){O=p(G).getXY();p(G).fixDisplay();B=p(G).getFxRestore();L={x:O[0],y:O[1],0:O[0],1:O[1],width:G.offsetWidth,height:G.offsetHeight};L.right=L.x+L.width;L.bottom=L.y+L.height;p(G).setWidth(L.width).setHeight(L.height);D=p(G).fxWrap(B.pos,E,w);M.visibility=u;M.position=z;function P(){p(G).fxUnwrap(D,B.pos,E);M.width=B.width;M.height=B.height;p(G).afterFx(E)}N={to:[L.x,L.y]};K={to:L.width};F={to:L.height};function Q(U,R,V,S,X,Z,ac,ab,aa,W,T){var Y={};p(U).setWidth(V).setHeight(S);if(p(U)[X]){p(U)[X](Z)}R[ac]=R[ab]="0";if(aa){Y.width=aa}if(W){Y.height=W}if(T){Y.points=T}return Y}I=p(G).switchStatements(H.toLowerCase(),Q,{t:[D,M,L.width,0,y,y,n,l,y,F,y],l:[D,M,0,L.height,y,y,m,s,K,y,y],r:[D,M,L.width,L.height,j,L.right,n,s,y,y,N],b:[D,M,L.width,L.height,h,L.bottom,n,s,y,F,N],tl:[D,M,0,0,y,y,m,l,K,F,N],bl:[D,M,0,0,h,L.y+L.height,m,s,K,F,N],br:[D,M,0,0,a,[L.right,L.bottom],n,s,K,F,N],tr:[D,M,0,0,j,L.x+L.width,n,l,K,F,N]});M.visibility=u;p(D).show();arguments.callee.anim=p(D).fxanim(I,E,e,0.5,r,P)});return J},slideOut:function(F,D){D=x(D);var H=this,E=H.dom,K=E.style,L=H.getXY(),C,B,I,J,G={to:0};F=F||"t";H.queueFx(D,function(){B=p(E).getFxRestore();I={x:L[0],y:L[1],0:L[0],1:L[1],width:E.offsetWidth,height:E.offsetHeight};I.right=I.x+I.width;I.bottom=I.y+I.height;p(E).setWidth(I.width).setHeight(I.height);C=p(E).fxWrap(B.pos,D,u);K.visibility=u;K.position=z;p(C).setWidth(I.width).setHeight(I.height);function M(){D.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).fxUnwrap(C,B.pos,D);K.width=B.width;K.height=B.height;p(E).afterFx(D)}function N(O,W,U,X,S,V,R,T,Q){var P={};O[W]=O[U]="0";P[X]=S;if(V){P[V]=R}if(T){P[T]=Q}return P}J=p(E).switchStatements(F.toLowerCase(),N,{t:[K,n,l,q,G],l:[K,m,s,g,G],r:[K,n,s,g,G,i,{to:[I.right,I.y]}],b:[K,n,s,q,G,i,{to:[I.x,I.bottom]}],tl:[K,m,l,g,G,q,G],bl:[K,m,s,g,G,q,G,i,{to:[I.x,I.bottom]}],br:[K,n,s,g,G,q,G,i,{to:[I.x+I.width,I.bottom]}],tr:[K,n,l,g,G,q,G,i,{to:[I.right,I.y]}]});arguments.callee.anim=p(C).fxanim(J,D,e,0.5,r,M)});return H},puff:function(H){H=x(H);var F=this,G=F.dom,C=G.style,D,B,E;F.queueFx(H,function(){D=p(G).getWidth();B=p(G).getHeight();p(G).clearOpacity();p(G).show();E=p(G).getFxRestore();function I(){H.useDisplay?p(G).setDisplayed(t):p(G).hide();p(G).clearOpacity();p(G).setPositioning(E.pos);C.width=E.width;C.height=E.height;C.fontSize="";p(G).afterFx(H)}arguments.callee.anim=p(G).fxanim({width:{to:p(G).adjustWidth(D*2)},height:{to:p(G).adjustHeight(B*2)},points:{by:[-D*0.5,-B*0.5]},opacity:{to:0},fontSize:{to:200,unit:"%"}},H,e,0.5,r,I)});return F},switchOff:function(F){F=x(F);var D=this,E=D.dom,B=E.style,C;D.queueFx(F,function(){p(E).clearOpacity();p(E).clip();C=p(E).getFxRestore();function G(){F.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).clearOpacity();p(E).setPositioning(C.pos);B.width=C.width;B.height=C.height;p(E).afterFx(F)}p(E).fxanim({opacity:{to:0.3}},y,y,0.1,y,function(){p(E).clearOpacity();(function(){p(E).fxanim({height:{to:1},points:{by:[0,p(E).getHeight()*0.5]}},F,e,0.3,"easeIn",G)}).defer(100)})});return D},highlight:function(D,H){H=x(H);var F=this,G=F.dom,B=H.attr||"backgroundColor",C={},E;F.queueFx(H,function(){p(G).clearOpacity();p(G).show();function I(){G.style[B]=E;p(G).afterFx(H)}E=G.style[B];C[B]={from:D||"ffff9c",to:H.endColor||p(G).getColor(B)||"ffffff"};arguments.callee.anim=p(G).fxanim(C,H,"color",1,"easeIn",I)});return F},frame:function(B,E,H){H=x(H);var D=this,G=D.dom,C,F;D.queueFx(H,function(){B=B||"#C3DAF9";if(B.length==6){B="#"+B}E=E||1;p(G).show();var L=p(G).getXY(),J={x:L[0],y:L[1],0:L[0],1:L[1],width:G.offsetWidth,height:G.offsetHeight},I=function(){C=p(document.body||document.documentElement).createChild({style:{position:z,"z-index":35000,border:"0px solid "+B}});return C.queueFx({},K)};arguments.callee.anim={isAnimated:true,stop:function(){E=0;C.stopFx()}};function K(){var M=Ext.isBorderBox?2:1;F=C.anim({top:{from:J.y,to:J.y-20},left:{from:J.x,to:J.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:J.height,to:J.height+20*M},width:{from:J.width,to:J.width+20*M}},{duration:H.duration||1,callback:function(){C.remove();--E>0?I():p(G).afterFx(H)}});arguments.callee.anim={isAnimated:true,stop:function(){F.stop()}}}I()});return D},pause:function(D){var C=this.dom,B;this.queueFx({},function(){B=setTimeout(function(){p(C).afterFx({})},D*1000);arguments.callee.anim={isAnimated:true,stop:function(){clearTimeout(B);p(C).afterFx({})}}});return this},fadeIn:function(D){D=x(D);var B=this,C=B.dom,E=D.endOpacity||1;B.queueFx(D,function(){p(C).setOpacity(0);p(C).fixDisplay();C.style.visibility=u;arguments.callee.anim=p(C).fxanim({opacity:{to:E}},D,y,0.5,r,function(){if(E==1){p(C).clearOpacity()}p(C).afterFx(D)})});return B},fadeOut:function(E){E=x(E);var C=this,D=C.dom,B=D.style,F=E.endOpacity||0;C.queueFx(E,function(){arguments.callee.anim=p(D).fxanim({opacity:{to:F}},E,y,0.5,r,function(){if(F==0){Ext.Element.data(D,"visibilityMode")==Ext.Element.DISPLAY||E.useDisplay?B.display="none":B.visibility=w;p(D).clearOpacity()}p(D).afterFx(E)})});return C},scale:function(B,C,D){this.shift(Ext.apply({},D,{width:B,height:C}));return this},shift:function(D){D=x(D);var C=this.dom,B={};this.queueFx(D,function(){for(var E in D){if(D[E]!=A){B[E]={to:D[E]}}}B.width?B.width.to=p(C).adjustWidth(D.width):B;B.height?B.height.to=p(C).adjustWidth(D.height):B;if(B.x||B.y||B.xy){B.points=B.xy||{to:[B.x?B.x.to:p(C).getX(),B.y?B.y.to:p(C).getY()]}}arguments.callee.anim=p(C).fxanim(B,D,e,0.35,r,function(){p(C).afterFx(D)})});return this},ghost:function(E,C){C=x(C);var G=this,D=G.dom,J=D.style,H={opacity:{to:0},points:{}},K=H.points,B,I,F;E=E||"b";G.queueFx(C,function(){B=p(D).getFxRestore();I=p(D).getWidth();F=p(D).getHeight();function L(){C.useDisplay?p(D).setDisplayed(t):p(D).hide();p(D).clearOpacity();p(D).setPositioning(B.pos);J.width=B.width;J.height=B.height;p(D).afterFx(C)}K.by=p(D).switchStatements(E.toLowerCase(),function(N,M){return[N,M]},{t:[0,-F],l:[-I,0],r:[I,0],b:[0,F],tl:[-I,-F],bl:[-I,F],br:[I,F],tr:[I,-F]});arguments.callee.anim=p(D).fxanim(H,C,e,0.5,r,L)});return G},syncFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:k,stopFx:t});return B},sequenceFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:t,stopFx:t});return B},nextFx:function(){var B=c(this.dom.id)[0];if(B){B.call(this)}},hasActiveFx:function(){return c(this.dom.id)[0]},stopFx:function(B){var C=this,E=C.dom.id;if(C.hasActiveFx()){var D=c(E)[0];if(D&&D.anim){if(D.anim.isAnimated){b(E,[D]);D.anim.stop(B!==undefined?B:k)}else{b(E,[])}}}return C},beforeFx:function(B){if(this.hasActiveFx()&&!B.concurrent){if(B.stopFx){this.stopFx();return k}return t}return k},hasFxBlock:function(){var B=c(this.dom.id);return B&&B[0]&&B[0].block},queueFx:function(E,B){var C=p(this.dom);if(!C.hasFxBlock()){Ext.applyIf(E,C.fxDefaults);if(!E.concurrent){var D=C.beforeFx(E);B.block=E.block;c(C.dom.id).push(B);if(D){C.nextFx()}}else{B.call(C)}}return C},fxWrap:function(H,F,D){var E=this.dom,C,B;if(!F.wrap||!(C=Ext.getDom(F.wrap))){if(F.fixPosition){B=p(E).getXY()}var G=document.createElement("div");G.style.visibility=D;C=E.parentNode.insertBefore(G,E);p(C).setPositioning(H);if(p(C).isStyle(o,"static")){p(C).position("relative")}p(E).clearPositioning("auto");p(C).clip();C.appendChild(E);if(B){p(C).setXY(B)}}return C},fxUnwrap:function(C,F,E){var D=this.dom;p(D).clearPositioning();p(D).setPositioning(F);if(!E.wrap){var B=p(C).dom.parentNode;B.insertBefore(D,C);p(C).remove()}},getFxRestore:function(){var B=this.dom.style;return{pos:this.getPositioning(),width:B.width,height:B.height}},afterFx:function(C){var B=this.dom,D=B.id;if(C.afterStyle){p(B).setStyle(C.afterStyle)}if(C.afterCls){p(B).addClass(C.afterCls)}if(C.remove==k){p(B).remove()}if(C.callback){C.callback.call(C.scope,p(B))}if(!C.concurrent){c(D).shift();p(B).nextFx()}},fxanim:function(E,F,C,G,D,B){C=C||"run";F=F||{};var H=Ext.lib.Anim[C](this.dom,E,(F.duration||G)||0.35,(F.easing||D)||r,B,this);F.anim=H;return H}};Ext.Fx.resize=Ext.Fx.scale;Ext.Element.addMethods(Ext.Fx)})();Ext.CompositeElementLite=function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.Element.Flyweight()};Ext.CompositeElementLite.prototype={isComposite:true,getElement:function(a){var b=this.el;b.dom=a;b.id=a.id;return b},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(d,b){var e=this,g=e.elements;if(!d){return this}if(typeof d=="string"){d=Ext.Element.selectorFunction(d,b)}else{if(d.isComposite){d=d.elements}else{if(!Ext.isIterable(d)){d=[d]}}}for(var c=0,a=d.length;c-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}this.elements.splice(b,1,c)}return this},clear:function(){this.elements=[]}};Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;Ext.CompositeElementLite.importElementMethods=function(){var c,b=Ext.Element.prototype,a=Ext.CompositeElementLite.prototype;for(c in b){if(typeof b[c]=="function"){(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,c)}}};Ext.CompositeElementLite.importElementMethods();if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select}Ext.Element.select=function(a,b){var c;if(typeof a=="string"){c=Ext.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{throw"Invalid selector"}}return new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;(function(){var b="beforerequest",e="requestcomplete",d="requestexception",h=undefined,c="load",i="POST",a="GET",g=window;Ext.data.Connection=function(j){Ext.apply(this,j);this.addEvents(b,e,d);Ext.data.Connection.superclass.constructor.call(this)};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,disableCachingParam:"_dc",request:function(n){var s=this;if(s.fireEvent(b,s,n)){if(n.el){if(!Ext.isEmpty(n.indicatorText)){s.indicatorText='
    '+n.indicatorText+"
    "}if(s.indicatorText){Ext.getDom(n.el).innerHTML=s.indicatorText}n.success=(Ext.isFunction(n.success)?n.success:function(){}).createInterceptor(function(o){Ext.getDom(n.el).innerHTML=o.responseText})}var l=n.params,k=n.url||s.url,j,q={success:s.handleResponse,failure:s.handleFailure,scope:s,argument:{options:n},timeout:Ext.num(n.timeout,s.timeout)},m,t;if(Ext.isFunction(l)){l=l.call(n.scope||g,n)}l=Ext.urlEncode(s.extraParams,Ext.isObject(l)?Ext.urlEncode(l):l);if(Ext.isFunction(k)){k=k.call(n.scope||g,n)}if((m=Ext.getDom(n.form))){k=k||m.action;if(n.isUpload||(/multipart\/form-data/i.test(m.getAttribute("enctype")))){return s.doFormUpload.call(s,n,l,k)}t=Ext.lib.Ajax.serializeForm(m);l=l?(l+"&"+t):t}j=n.method||s.method||((l||n.xmlData||n.jsonData)?i:a);if(j===a&&(s.disableCaching&&n.disableCaching!==false)||n.disableCaching===true){var r=n.disableCachingParam||s.disableCachingParam;k=Ext.urlAppend(k,r+"="+(new Date().getTime()))}n.headers=Ext.applyIf(n.headers||{},s.defaultHeaders||{});if(n.autoAbort===true||s.autoAbort){s.abort()}if((j==a||n.xmlData||n.jsonData)&&l){k=Ext.urlAppend(k,l);l=""}return(s.transId=Ext.lib.Ajax.request(j,k,q,l,n))}else{return n.callback?n.callback.apply(n.scope,[n,h,h]):null}},isLoading:function(j){return j?Ext.lib.Ajax.isCallInProgress(j):!!this.transId},abort:function(j){if(j||this.isLoading()){Ext.lib.Ajax.abort(j||this.transId)}},handleResponse:function(j){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(e,this,j,k);if(k.success){k.success.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,true,j)}},handleFailure:function(j,l){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(d,this,j,k,l);if(k.failure){k.failure.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,false,j)}},doFormUpload:function(q,j,k){var l=Ext.id(),v=document,r=v.createElement("iframe"),m=Ext.getDom(q.form),u=[],t,p="multipart/form-data",n={target:m.target,method:m.method,encoding:m.encoding,enctype:m.enctype,action:m.action};Ext.fly(r).set({id:l,name:l,cls:"x-hidden",src:Ext.SSL_SECURE_URL});v.body.appendChild(r);if(Ext.isIE){document.frames[l].name=l}Ext.fly(m).set({target:l,method:i,enctype:p,encoding:p,action:k||n.action});Ext.iterate(Ext.urlDecode(j,false),function(w,o){t=v.createElement("input");Ext.fly(t).set({type:"hidden",value:o,name:w});m.appendChild(t);u.push(t)});function s(){var x=this,w={responseText:"",responseXML:null,argument:q.argument},A,z;try{A=r.contentWindow.document||r.contentDocument||g.frames[l].document;if(A){if(A.body){if(/textarea/i.test((z=A.body.firstChild||{}).tagName)){w.responseText=z.value}else{w.responseText=A.body.innerHTML}}w.responseXML=A.XMLDocument||A}}catch(y){}Ext.EventManager.removeListener(r,c,s,x);x.fireEvent(e,x,w,q);function o(D,C,B){if(Ext.isFunction(D)){D.apply(C,B)}}o(q.success,q.scope,[w,q]);o(q.callback,q.scope,[q,true,w]);if(!x.debugUploads){setTimeout(function(){Ext.removeNode(r)},100)}}Ext.EventManager.on(r,c,s,this);m.submit();Ext.fly(m).set(n);Ext.each(u,function(o){Ext.removeNode(o)})}})})();Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(a){return Ext.lib.Ajax.serializeForm(a)}});Ext.util.JSON=new (function(){var useHasOwn=!!{}.hasOwnProperty,isNative=function(){var useNative=null;return function(){if(useNative===null){useNative=Ext.USE_NATIVE_JSON&&window.JSON&&JSON.toString()=="[object JSON]"}return useNative}}(),pad=function(n){return n<10?"0"+n:n},doDecode=function(json){return json?eval("("+json+")"):""},doEncode=function(o){if(!Ext.isDefined(o)||o===null){return"null"}else{if(Ext.isArray(o)){return encodeArray(o)}else{if(Ext.isDate(o)){return Ext.util.JSON.encodeDate(o)}else{if(Ext.isString(o)){return encodeString(o)}else{if(typeof o=="number"){return isFinite(o)?String(o):"null"}else{if(Ext.isBoolean(o)){return String(o)}else{var a=["{"],b,i,v;for(i in o){if(!o.getElementsByTagName){if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b){a.push(",")}a.push(doEncode(i),":",v===null?"null":doEncode(v));b=true}}}}a.push("}");return a.join("")}}}}}}},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},encodeString=function(s){if(/["\\\x00-\x1f]/.test(s)){return'"'+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"'}return'"'+s+'"'},encodeArray=function(o){var a=["["],b,i,l=o.length,v;for(i=0;i
    ';e.body.appendChild(g);d=g.lastChild;if((c=e.defaultView)){if(c.getComputedStyle(g.firstChild.firstChild,null).marginRight!="0px"){b.correctRightMargin=false}if(c.getComputedStyle(d,null).backgroundColor!="transparent"){b.correctTransparentColor=false}}b.cssFloat=!!d.style.cssFloat;e.body.removeChild(g)};if(Ext.isReady){a()}else{Ext.onReady(a)}})();Ext.EventObject=function(){var b=Ext.lib.Event,c=/(dbl)?click/,a={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},d=Ext.isIE?{1:0,4:1,2:2}:{0:0,1:1,2:2};Ext.EventObjectImpl=function(g){if(g){this.setEvent(g.browserEvent||g)}};Ext.EventObjectImpl.prototype={setEvent:function(h){var g=this;if(h==g||(h&&h.browserEvent)){return h}g.browserEvent=h;if(h){g.button=h.button?d[h.button]:(h.which?h.which-1:-1);if(c.test(h.type)&&g.button==-1){g.button=0}g.type=h.type;g.shiftKey=h.shiftKey;g.ctrlKey=h.ctrlKey||h.metaKey||false;g.altKey=h.altKey;g.keyCode=h.keyCode;g.charCode=h.charCode;g.target=b.getTarget(h);g.xy=b.getXY(h)}else{g.button=-1;g.shiftKey=false;g.ctrlKey=false;g.altKey=false;g.keyCode=0;g.charCode=0;g.target=null;g.xy=[0,0]}return g},stopEvent:function(){var e=this;if(e.browserEvent){if(e.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(e)}b.stopEvent(e.browserEvent)}},preventDefault:function(){if(this.browserEvent){b.preventDefault(this.browserEvent)}},stopPropagation:function(){var e=this;if(e.browserEvent){if(e.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(e)}b.stopPropagation(e.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(e){return Ext.isSafari?(a[e]||e):e},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getXY:function(){return this.xy},getTarget:function(g,h,e){return g?Ext.fly(this.target).findParent(g,h,e):(e?Ext.get(this.target):this.target)},getRelatedTarget:function(){return this.browserEvent?b.getRelatedTarget(this.browserEvent):null},getWheelDelta:function(){var g=this.browserEvent;var h=0;if(g.wheelDelta){h=g.wheelDelta/120}else{if(g.detail){h=-g.detail/3}}return h},within:function(h,i,e){if(h){var g=this[i?"getRelatedTarget":"getTarget"]();return g&&((e?(g==Ext.getDom(h)):false)||Ext.fly(h).contains(g))}return false}};return new Ext.EventObjectImpl()}();Ext.Loader=Ext.apply({},{load:function(j,i,k,c){var k=k||this,g=document.getElementsByTagName("head")[0],b=document.createDocumentFragment(),a=j.length,h=0,e=this;var l=function(m){g.appendChild(e.buildScriptTag(j[m],d))};var d=function(){h++;if(a==h&&typeof i=="function"){i.call(k)}else{if(c===true){l(h)}}};if(c===true){l.call(this,0)}else{Ext.each(j,function(n,m){b.appendChild(this.buildScriptTag(n,d))},this);g.appendChild(b)}},buildScriptTag:function(b,c){var a=document.createElement("script");a.type="text/javascript";a.src=b;if(a.readyState){a.onreadystatechange=function(){if(a.readyState=="loaded"||a.readyState=="complete"){a.onreadystatechange=null;c()}}}else{a.onload=c}return a}});Ext.ns("Ext.grid","Ext.list","Ext.dd","Ext.tree","Ext.form","Ext.menu","Ext.state","Ext.layout.boxOverflow","Ext.app","Ext.ux","Ext.chart","Ext.direct","Ext.slider");Ext.apply(Ext,function(){var c=Ext,a=0,b=null;return{emptyFn:function(){},BLANK_IMAGE_URL:Ext.isIE6||Ext.isIE7||Ext.isAir?"http://www.extjs.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",extendX:function(d,e){return Ext.extend(d,e(d.prototype))},getDoc:function(){return Ext.get(document)},num:function(e,d){e=Number(Ext.isEmpty(e)||Ext.isArray(e)||typeof e=="boolean"||(typeof e=="string"&&e.trim().length==0)?NaN:e);return isNaN(e)?d:e},value:function(g,d,e){return Ext.isEmpty(g,e)?d:g},escapeRe:function(d){return d.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},sequence:function(h,d,g,e){h[d]=h[d].createSequence(g,e)},addBehaviors:function(i){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(i)})}else{var e={},h,d,g;for(d in i){if((h=d.split("@"))[1]){g=h[0];if(!e[g]){e[g]=Ext.select(g)}e[g].on(h[1],i[d])}}e=null}},getScrollBarWidth:function(g){if(!Ext.isReady){return 0}if(g===true||b===null){var i=Ext.getBody().createChild('
    '),h=i.child("div",true);var e=h.offsetWidth;i.setStyle("overflow",(Ext.isWebKit||Ext.isGecko)?"auto":"scroll");var d=h.offsetWidth;i.remove();b=e-d+2}return b},combine:function(){var g=arguments,e=g.length,j=[];for(var h=0;hh?1:-1};Ext.each(d,function(h){g=e(g,h)==1?g:h});return g},mean:function(d){return d.length>0?Ext.sum(d)/d.length:undefined},sum:function(d){var e=0;Ext.each(d,function(g){e+=g});return e},partition:function(d,e){var g=[[],[]];Ext.each(d,function(j,k,h){g[(e&&e(j,k,h))||(!e&&j)?0:1].push(j)});return g},invoke:function(d,e){var h=[],g=Array.prototype.slice.call(arguments,2);Ext.each(d,function(j,k){if(j&&typeof j[e]=="function"){h.push(j[e].apply(j,g))}else{h.push(undefined)}});return h},pluck:function(d,g){var e=[];Ext.each(d,function(h){e.push(h[g])});return e},zip:function(){var n=Ext.partition(arguments,function(i){return typeof i!="function"}),k=n[0],m=n[1][0],d=Ext.max(Ext.pluck(k,"length")),h=[];for(var l=0;l=a.left&&b.right<=a.right&&b.top>=a.top&&b.bottom<=a.bottom)},getArea:function(){var a=this;return((a.bottom-a.top)*(a.right-a.left))},intersect:function(h){var g=this,d=Math.max(g.top,h.top),e=Math.min(g.right,h.right),a=Math.min(g.bottom,h.bottom),c=Math.max(g.left,h.left);if(a>=d&&e>=c){return new Ext.lib.Region(d,e,a,c)}},union:function(h){var g=this,d=Math.min(g.top,h.top),e=Math.max(g.right,h.right),a=Math.max(g.bottom,h.bottom),c=Math.min(g.left,h.left);return new Ext.lib.Region(d,e,a,c)},constrainTo:function(b){var a=this;a.top=a.top.constrain(b.top,b.bottom);a.bottom=a.bottom.constrain(b.top,b.bottom);a.left=a.left.constrain(b.left,b.right);a.right=a.right.constrain(b.left,b.right);return a},adjust:function(d,c,a,g){var e=this;e.top+=d;e.left+=c;e.right+=g;e.bottom+=a;return e}};Ext.lib.Region.getRegion=function(e){var h=Ext.lib.Dom.getXY(e),d=h[1],g=h[0]+e.offsetWidth,a=h[1]+e.offsetHeight,c=h[0];return new Ext.lib.Region(d,g,a,c)};Ext.lib.Point=function(a,c){if(Ext.isArray(a)){c=a[1];a=a[0]}var b=this;b.x=b.right=b.left=b[0]=a;b.y=b.top=b.bottom=b[1]=c};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.apply(Ext.DomHelper,function(){var e,a="afterbegin",h="afterend",i="beforebegin",d="beforeend",b=/tag|children|cn|html$/i;function g(m,p,n,q,l,j){m=Ext.getDom(m);var k;if(e.useDom){k=c(p,null);if(j){m.appendChild(k)}else{(l=="firstChild"?m:m.parentNode).insertBefore(k,m[l]||m)}}else{k=Ext.DomHelper.insertHtml(q,m,Ext.DomHelper.createHtml(p))}return n?Ext.get(k,true):k}function c(j,r){var k,u=document,p,s,m,t;if(Ext.isArray(j)){k=u.createDocumentFragment();for(var q=0,n=j.length;q0){return setTimeout(d,c)}d();return 0},createSequence:function(c,b,a){if(!Ext.isFunction(b)){return c}else{return function(){var d=c.apply(this||window,arguments);b.apply(a||this||window,arguments);return d}}}};Ext.defer=Ext.util.Functions.defer;Ext.createInterceptor=Ext.util.Functions.createInterceptor;Ext.createSequence=Ext.util.Functions.createSequence;Ext.createDelegate=Ext.util.Functions.createDelegate;Ext.apply(Ext.util.Observable.prototype,function(){function a(j){var i=(this.methodEvents=this.methodEvents||{})[j],d,c,g,h=this;if(!i){this.methodEvents[j]=i={};i.originalFn=this[j];i.methodName=j;i.before=[];i.after=[];var b=function(l,k,e){if((c=l.apply(k||h,e))!==undefined){if(typeof c=="object"){if(c.returnValue!==undefined){d=c.returnValue}else{d=c}g=!!c.cancel}else{if(c===false){g=true}else{d=c}}}};this[j]=function(){var l=Array.prototype.slice.call(arguments,0),k;d=c=undefined;g=false;for(var m=0,e=i.before.length;m=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera);return{_unload:function(){Ext.EventManager.un(window,"resize",this.fireWindowResize,this);c.call(Ext.EventManager)},doResizeEvent:function(){var m=a.getViewHeight(),l=a.getViewWidth();if(h!=m||i!=l){d.fire(i=l,h=m)}},onWindowResize:function(n,m,l){if(!d){d=new Ext.util.Event();k=new Ext.util.DelayedTask(this.doResizeEvent);Ext.EventManager.on(window,"resize",this.fireWindowResize,this)}d.addListener(n,m,l)},fireWindowResize:function(){if(d){k.delay(100)}},onTextResize:function(o,n,l){if(!g){g=new Ext.util.Event();var m=new Ext.Element(document.createElement("div"));m.dom.className="x-text-resize";m.dom.innerHTML="X";m.appendTo(document.body);b=m.dom.offsetHeight;setInterval(function(){if(m.dom.offsetHeight!=b){g.fire(b,b=m.dom.offsetHeight)}},this.textResizeInterval)}g.addListener(o,n,l)},removeResizeListener:function(m,l){if(d){d.removeListener(m,l)}},fireResize:function(){if(d){d.fire(a.getViewWidth(),a.getViewHeight())}},textResizeInterval:50,ieDeferSrc:false,getKeyEvent:function(){return e?"keydown":"keypress"},useKeydown:e}}());Ext.EventManager.on=Ext.EventManager.addListener;Ext.apply(Ext.EventObjectImpl.prototype,{BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,CONTROL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGEUP:33,PAGE_DOWN:34,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,isNavKeyPress:function(){var b=this,a=this.normalizeKey(b.keyCode);return(a>=33&&a<=40)||a==b.RETURN||a==b.TAB||a==b.ESC},isSpecialKey:function(){var a=this.normalizeKey(this.keyCode);return(this.type=="keypress"&&this.ctrlKey)||this.isNavKeyPress()||(a==this.BACKSPACE)||(a>=16&&a<=20)||(a>=44&&a<=46)},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)}});Ext.Element.addMethods({swallowEvent:function(a,b){var d=this;function c(g){g.stopPropagation();if(b){g.preventDefault()}}if(Ext.isArray(a)){Ext.each(a,function(g){d.on(g,c)});return d}d.on(a,c);return d},relayEvent:function(a,b){this.on(a,function(c){b.fireEvent(a,c)})},clean:function(b){var d=this,e=d.dom,g=e.firstChild,c=-1;if(Ext.Element.data(e,"isCleaned")&&b!==true){return d}while(g){var a=g.nextSibling;if(g.nodeType==3&&!(/\S/.test(g.nodeValue))){e.removeChild(g)}else{g.nodeIndex=++c}g=a}Ext.Element.data(e,"isCleaned",true);return d},load:function(){var a=this.getUpdater();a.update.apply(a,arguments);return this},getUpdater:function(){return this.updateManager||(this.updateManager=new Ext.Updater(this))},update:function(html,loadScripts,callback){if(!this.dom){return this}html=html||"";if(loadScripts!==true){this.dom.innerHTML=html;if(typeof callback=="function"){callback()}return this}var id=Ext.id(),dom=this.dom;html+='';Ext.lib.Event.onAvailable(id,function(){var DOC=document,hd=DOC.getElementsByTagName("head")[0],re=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,match,attrs,srcMatch,typeMatch,el,s;while((match=re.exec(html))){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}el=DOC.getElementById(id);if(el){Ext.removeNode(el)}if(typeof callback=="function"){callback()}});dom.innerHTML=html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},createProxy:function(a,e,d){a=(typeof a=="object")?a:{tag:"div",cls:a};var c=this,b=e?Ext.DomHelper.append(e,a,true):Ext.DomHelper.insertBefore(c.dom,a,true);if(d&&c.setBox&&c.getBox){b.setBox(c.getBox())}return b}});Ext.Element.prototype.getUpdateManager=Ext.Element.prototype.getUpdater;Ext.Element.addMethods({getAnchorXY:function(e,l,q){e=(e||"tl").toLowerCase();q=q||{};var k=this,b=k.dom==document.body||k.dom==document,n=q.width||b?Ext.lib.Dom.getViewWidth():k.getWidth(),i=q.height||b?Ext.lib.Dom.getViewHeight():k.getHeight(),p,a=Math.round,c=k.getXY(),m=k.getScroll(),j=b?m.left:!l?c[0]:0,g=b?m.top:!l?c[1]:0,d={c:[a(n*0.5),a(i*0.5)],t:[a(n*0.5),0],l:[0,a(i*0.5)],r:[n,a(i*0.5)],b:[a(n*0.5),i],tl:[0,0],bl:[0,i],br:[n,i],tr:[n,0]};p=d[e];return[p[0]+j,p[1]+g]},anchorTo:function(b,h,c,a,k,l){var i=this,e=i.dom,j=!Ext.isEmpty(k),d=function(){Ext.fly(e).alignTo(b,h,c,a);Ext.callback(l,Ext.fly(e))},g=this.getAnchor();this.removeAnchor();Ext.apply(g,{fn:d,scroll:j});Ext.EventManager.onWindowResize(d,null);if(j){Ext.EventManager.on(window,"scroll",d,null,{buffer:!isNaN(k)?k:50})}d.call(i);return i},removeAnchor:function(){var b=this,a=this.getAnchor();if(a&&a.fn){Ext.EventManager.removeResizeListener(a.fn);if(a.scroll){Ext.EventManager.un(window,"scroll",a.fn)}delete a.fn}return b},getAnchor:function(){var b=Ext.Element.data,c=this.dom;if(!c){return}var a=b(c,"_anchor");if(!a){a=b(c,"_anchor",{})}return a},getAlignToXY:function(g,A,B){g=Ext.get(g);if(!g||!g.dom){throw"Element.alignToXY with an element that doesn't exist"}B=B||[0,0];A=(!A||A=="?"?"tl-bl?":(!(/-/).test(A)&&A!==""?"tl-"+A:A||"tl-bl")).toLowerCase();var K=this,H=K.dom,M,L,n,l,s,F,v,t=Ext.lib.Dom.getViewWidth()-10,G=Ext.lib.Dom.getViewHeight()-10,b,i,j,k,u,z,N=document,J=N.documentElement,q=N.body,E=(J.scrollLeft||q.scrollLeft||0)+5,D=(J.scrollTop||q.scrollTop||0)+5,I=false,e="",a="",C=A.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!C){throw"Element.alignTo with an invalid alignment "+A}e=C[1];a=C[2];I=!!C[3];M=K.getAnchorXY(e,true);L=g.getAnchorXY(a,false);n=L[0]-M[0]+B[0];l=L[1]-M[1]+B[1];if(I){s=K.getWidth();F=K.getHeight();v=g.getRegion();b=e.charAt(0);i=e.charAt(e.length-1);j=a.charAt(0);k=a.charAt(a.length-1);u=((b=="t"&&j=="b")||(b=="b"&&j=="t"));z=((i=="r"&&k=="l")||(i=="l"&&k=="r"));if(n+s>t+E){n=z?v.left-s:t+E-s}if(nG+D){l=u?v.top-F:G+D-F}if(lB){p=B-q;m=true}if((o+C)>g){o=g-C;m=true}if(p"+String.format(Ext.Element.boxMarkup,c)+"
    "));Ext.DomQuery.selectNode("."+c+"-mc",d.dom).appendChild(this.dom);return d},setSize:function(e,c,d){var g=this;if(typeof e=="object"){c=e.height;e=e.width}e=g.adjustWidth(e);c=g.adjustHeight(c);if(!d||!g.anim){g.dom.style.width=g.addUnits(e);g.dom.style.height=g.addUnits(c)}else{g.anim({width:{to:e},height:{to:c}},g.preanim(arguments,2))}return g},getComputedHeight:function(){var d=this,c=Math.max(d.dom.offsetHeight,d.dom.clientHeight);if(!c){c=parseFloat(d.getStyle("height"))||0;if(!d.isBorderBox()){c+=d.getFrameWidth("tb")}}return c},getComputedWidth:function(){var c=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!c){c=parseFloat(this.getStyle("width"))||0;if(!this.isBorderBox()){c+=this.getFrameWidth("lr")}}return c},getFrameWidth:function(d,c){return c&&this.isBorderBox()?0:(this.getPadding(d)+this.getBorderWidth(d))},addClassOnOver:function(c){this.hover(function(){Ext.fly(this,a).addClass(c)},function(){Ext.fly(this,a).removeClass(c)});return this},addClassOnFocus:function(c){this.on("focus",function(){Ext.fly(this,a).addClass(c)},this.dom);this.on("blur",function(){Ext.fly(this,a).removeClass(c)},this.dom);return this},addClassOnClick:function(c){var d=this.dom;this.on("mousedown",function(){Ext.fly(d,a).addClass(c);var g=Ext.getDoc(),e=function(){Ext.fly(d,a).removeClass(c);g.removeListener("mouseup",e)};g.on("mouseup",e)});return this},getViewSize:function(){var g=document,h=this.dom,c=(h==g||h==g.body);if(c){var e=Ext.lib.Dom;return{width:e.getViewWidth(),height:e.getViewHeight()}}else{return{width:h.clientWidth,height:h.clientHeight}}},getStyleSize:function(){var j=this,c,i,l=document,m=this.dom,e=(m==l||m==l.body),g=m.style;if(e){var k=Ext.lib.Dom;return{width:k.getViewWidth(),height:k.getViewHeight()}}if(g.width&&g.width!="auto"){c=parseFloat(g.width);if(j.isBorderBox()){c-=j.getFrameWidth("lr")}}if(g.height&&g.height!="auto"){i=parseFloat(g.height);if(j.isBorderBox()){i-=j.getFrameWidth("tb")}}return{width:c||j.getWidth(true),height:i||j.getHeight(true)}},getSize:function(c){return{width:this.getWidth(c),height:this.getHeight(c)}},repaint:function(){var c=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.fly(c).removeClass("x-repaint")},1);return this},unselectable:function(){this.dom.unselectable="on";return this.swallowEvent("selectstart",true).addClass("x-unselectable")},getMargins:function(d){var e=this,c,g={t:"top",l:"left",r:"right",b:"bottom"},h={};if(!d){for(c in e.margins){h[g[c]]=parseFloat(e.getStyle(e.margins[c]))||0}return h}else{return e.addStyles.call(e,d,e.margins)}}}}());Ext.Element.addMethods({setBox:function(e,g,b){var d=this,a=e.width,c=e.height;if((g&&!d.autoBoxAdjust)&&!d.isBorderBox()){a-=(d.getBorderWidth("lr")+d.getPadding("lr"));c-=(d.getBorderWidth("tb")+d.getPadding("tb"))}d.setBounds(e.x,e.y,a,c,d.animTest.call(d,arguments,b,2));return d},getBox:function(j,p){var m=this,v,e,o,d=m.getBorderWidth,q=m.getPadding,g,a,u,n;if(!p){v=m.getXY()}else{e=parseInt(m.getStyle("left"),10)||0;o=parseInt(m.getStyle("top"),10)||0;v=[e,o]}var c=m.dom,s=c.offsetWidth,i=c.offsetHeight,k;if(!j){k={x:v[0],y:v[1],0:v[0],1:v[1],width:s,height:i}}else{g=d.call(m,"l")+q.call(m,"l");a=d.call(m,"r")+q.call(m,"r");u=d.call(m,"t")+q.call(m,"t");n=d.call(m,"b")+q.call(m,"b");k={x:v[0]+g,y:v[1]+u,0:v[0]+g,1:v[1]+u,width:s-(g+a),height:i-(u+n)}}k.right=k.x+k.width;k.bottom=k.y+k.height;return k},move:function(j,b,c){var g=this,m=g.getXY(),k=m[0],i=m[1],d=[k-b,i],l=[k+b,i],h=[k,i-b],a=[k,i+b],e={l:d,left:d,r:l,right:l,t:h,top:h,up:h,b:a,bottom:a,down:a};j=j.toLowerCase();g.moveTo(e[j][0],e[j][1],g.animTest.call(g,arguments,c,2))},setLeftTop:function(d,c){var b=this,a=b.dom.style;a.left=b.addUnits(d);a.top=b.addUnits(c);return b},getRegion:function(){return Ext.lib.Dom.getRegion(this.dom)},setBounds:function(b,g,d,a,c){var e=this;if(!c||!e.anim){e.setSize(d,a);e.setLocation(b,g)}else{e.anim({points:{to:[b,g]},width:{to:e.adjustWidth(d)},height:{to:e.adjustHeight(a)}},e.preanim(arguments,4),"motion")}return e},setRegion:function(b,a){return this.setBounds(b.left,b.top,b.right-b.left,b.bottom-b.top,this.animTest.call(this,arguments,a,1))}});Ext.Element.addMethods({scrollTo:function(b,d,a){var e=/top/i.test(b),c=this,g=c.dom,h;if(!a||!c.anim){h="scroll"+(e?"Top":"Left");g[h]=d}else{h="scroll"+(e?"Left":"Top");c.anim({scroll:{to:e?[g[h],d]:[d,g[h]]}},c.preanim(arguments,2),"scroll")}return c},scrollIntoView:function(e,i){var p=Ext.getDom(e)||Ext.getBody().dom,h=this.dom,g=this.getOffsetsTo(p),k=g[0]+p.scrollLeft,u=g[1]+p.scrollTop,q=u+h.offsetHeight,d=k+h.offsetWidth,a=p.clientHeight,m=parseInt(p.scrollTop,10),s=parseInt(p.scrollLeft,10),j=m+a,n=s+p.clientWidth;if(h.offsetHeight>a||uj){p.scrollTop=q-a}}p.scrollTop=p.scrollTop;if(i!==false){if(h.offsetWidth>p.clientWidth||kn){p.scrollLeft=d-p.clientWidth}}p.scrollLeft=p.scrollLeft}return this},scrollChildIntoView:function(b,a){Ext.fly(b,"_scrollChildIntoView").scrollIntoView(this,a)},scroll:function(m,b,d){if(!this.isScrollable()){return false}var e=this.dom,g=e.scrollLeft,p=e.scrollTop,n=e.scrollWidth,k=e.scrollHeight,i=e.clientWidth,a=e.clientHeight,c=false,o,j={l:Math.min(g+b,n-i),r:o=Math.max(g-b,0),t:Math.max(p-b,0),b:Math.min(p+b,k-a)};j.d=j.b;j.u=j.t;m=m.substr(0,1);if((o=j[m])>-1){c=true;this.scrollTo(m=="l"||m=="r"?"left":"top",o,this.preanim(arguments,2))}return c}});Ext.Element.addMethods(function(){var d="visibility",b="display",a="hidden",h="none",c="x-masked",g="x-masked-relative",e=Ext.Element.data;return{isVisible:function(i){var j=!this.isStyle(d,a)&&!this.isStyle(b,h),k=this.dom.parentNode;if(i!==true||!j){return j}while(k&&!(/^body/i.test(k.tagName))){if(!Ext.fly(k,"_isVisible").isVisible()){return false}k=k.parentNode}return true},isDisplayed:function(){return !this.isStyle(b,h)},enableDisplayMode:function(i){this.setVisibilityMode(Ext.Element.DISPLAY);if(!Ext.isEmpty(i)){e(this.dom,"originalDisplay",i)}return this},mask:function(j,n){var p=this,l=p.dom,o=Ext.DomHelper,m="ext-el-mask-msg",i,q;if(!/^body/i.test(l.tagName)&&p.getStyle("position")=="static"){p.addClass(g)}if(i=e(l,"maskMsg")){i.remove()}if(i=e(l,"mask")){i.remove()}q=o.append(l,{cls:"ext-el-mask"},true);e(l,"mask",q);p.addClass(c);q.setDisplayed(true);if(typeof j=="string"){var k=o.append(l,{cls:m,cn:{tag:"div"}},true);e(l,"maskMsg",k);k.dom.className=n?m+" "+n:m;k.dom.firstChild.innerHTML=j;k.setDisplayed(true);k.center(p)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&p.getStyle("height")=="auto"){q.setSize(undefined,p.getHeight())}return q},unmask:function(){var k=this,l=k.dom,i=e(l,"mask"),j=e(l,"maskMsg");if(i){if(j){j.remove();e(l,"maskMsg",undefined)}i.remove();e(l,"mask",undefined);k.removeClass([c,g])}},isMasked:function(){var i=e(this.dom,"mask");return i&&i.isVisible()},createShim:function(){var i=document.createElement("iframe"),j;i.frameBorder="0";i.className="ext-shim";i.src=Ext.SSL_SECURE_URL;j=Ext.get(this.dom.parentNode.insertBefore(i,this.dom));j.autoBoxAdjust=false;return j}}}());Ext.Element.addMethods({addKeyListener:function(b,d,c){var a;if(typeof b!="object"||Ext.isArray(b)){a={key:b,fn:d,scope:c}}else{a={key:b.key,shift:b.shift,ctrl:b.ctrl,alt:b.alt,fn:d,scope:c}}return new Ext.KeyMap(this,a)},addKeyMap:function(a){return new Ext.KeyMap(this,a)}});Ext.CompositeElementLite.importElementMethods();Ext.apply(Ext.CompositeElementLite.prototype,{addElements:function(c,a){if(!c){return this}if(typeof c=="string"){c=Ext.Element.selectorFunction(c,a)}var b=this.elements;Ext.each(c,function(d){b.push(Ext.get(d))});return this},first:function(){return this.item(0)},last:function(){return this.item(this.getCount()-1)},contains:function(a){return this.indexOf(a)!=-1},removeElement:function(d,e){var c=this,a=this.elements,b;Ext.each(d,function(g){if((b=(a[g]||a[g=c.indexOf(g)]))){if(e){if(b.dom){b.remove()}else{Ext.removeNode(b)}}a.splice(g,1)}});return this}});Ext.CompositeElement=Ext.extend(Ext.CompositeElementLite,{constructor:function(b,a){this.elements=[];this.add(b,a)},getElement:function(a){return a},transformElement:function(a){return Ext.get(a)}});Ext.Element.select=function(a,d,b){var c;if(typeof a=="string"){c=Ext.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{throw"Invalid selector"}}return(d===true)?new Ext.CompositeElement(c):new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;Ext.UpdateManager=Ext.Updater=Ext.extend(Ext.util.Observable,function(){var b="beforeupdate",d="update",c="failure";function a(h){var i=this;i.transaction=null;if(h.argument.form&&h.argument.reset){try{h.argument.form.reset()}catch(j){}}if(i.loadScripts){i.renderer.render(i.el,h,i,g.createDelegate(i,[h]))}else{i.renderer.render(i.el,h,i);g.call(i,h)}}function g(h,i,j){this.fireEvent(i||d,this.el,h);if(Ext.isFunction(h.argument.callback)){h.argument.callback.call(h.argument.scope,this.el,Ext.isEmpty(j)?true:false,h,h.argument.options)}}function e(h){g.call(this,h,c,!!(this.transaction=null))}return{constructor:function(i,h){var j=this;i=Ext.get(i);if(!h&&i.updateManager){return i.updateManager}j.el=i;j.defaultUrl=null;j.addEvents(b,d,c);Ext.apply(j,Ext.Updater.defaults);j.transaction=null;j.refreshDelegate=j.refresh.createDelegate(j);j.updateDelegate=j.update.createDelegate(j);j.formUpdateDelegate=(j.formUpdate||function(){}).createDelegate(j);j.renderer=j.renderer||j.getDefaultRenderer();Ext.Updater.superclass.constructor.call(j)},setRenderer:function(h){this.renderer=h},getRenderer:function(){return this.renderer},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer()},setDefaultUrl:function(h){this.defaultUrl=h},getEl:function(){return this.el},update:function(i,n,p,l){var k=this,h,j;if(k.fireEvent(b,k.el,i,n)!==false){if(Ext.isObject(i)){h=i;i=h.url;n=n||h.params;p=p||h.callback;l=l||h.discardUrl;j=h.scope;if(!Ext.isEmpty(h.nocache)){k.disableCaching=h.nocache}if(!Ext.isEmpty(h.text)){k.indicatorText='
    '+h.text+"
    "}if(!Ext.isEmpty(h.scripts)){k.loadScripts=h.scripts}if(!Ext.isEmpty(h.timeout)){k.timeout=h.timeout}}k.showLoading();if(!l){k.defaultUrl=i}if(Ext.isFunction(i)){i=i.call(k)}var m=Ext.apply({},{url:i,params:(Ext.isFunction(n)&&j)?n.createDelegate(j):n,success:a,failure:e,scope:k,callback:undefined,timeout:(k.timeout*1000),disableCaching:k.disableCaching,argument:{options:h,url:i,form:null,callback:p,scope:j||window,params:n}},h);k.transaction=Ext.Ajax.request(m)}},formUpdate:function(k,h,j,l){var i=this;if(i.fireEvent(b,i.el,k,h)!==false){if(Ext.isFunction(h)){h=h.call(i)}k=Ext.getDom(k);i.transaction=Ext.Ajax.request({form:k,url:h,success:a,failure:e,scope:i,timeout:(i.timeout*1000),argument:{url:h,form:k,callback:l,reset:j}});i.showLoading.defer(1,i)}},startAutoRefresh:function(i,j,l,m,h){var k=this;if(h){k.update(j||k.defaultUrl,l,m,true)}if(k.autoRefreshProcId){clearInterval(k.autoRefreshProcId)}k.autoRefreshProcId=setInterval(k.update.createDelegate(k,[j||k.defaultUrl,l,m,true]),i*1000)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return !!this.autoRefreshProcId},showLoading:function(){if(this.showLoadIndicator){this.el.dom.innerHTML=this.indicatorText}},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction)}},isUpdating:function(){return this.transaction?Ext.Ajax.isLoading(this.transaction):false},refresh:function(h){if(this.defaultUrl){this.update(this.defaultUrl,null,h,true)}}}}());Ext.Updater.defaults={timeout:30,disableCaching:false,showLoadIndicator:true,indicatorText:'
    Loading...
    ',loadScripts:false,sslBlankUrl:Ext.SSL_SECURE_URL};Ext.Updater.updateElement=function(d,c,e,b){var a=Ext.get(d).getUpdater();Ext.apply(a,b);a.update(c,e,b?b.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(c,a,b,d){c.update(a.responseText,b.loadScripts,d)}};(function(){Date.useStrict=false;function b(d){var c=Array.prototype.slice.call(arguments,1);return d.replace(/\{(\d+)\}/g,function(e,g){return c[g]})}Date.formatCodeToRegex=function(d,c){var e=Date.parseCodes[d];if(e){e=typeof e=="function"?e():e;Date.parseCodes[d]=e}return e?Ext.applyIf({c:e.c?b(e.c,c||"{0}"):e.c},e):{g:0,c:null,s:Ext.escapeRe(d)}};var a=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{"M$":function(d,c){var e=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/");var g=(d||"").match(e);return g?new Date(((g[1]||"")+g[2])*1):null}},parseRegexes:[],formatFunctions:{"M$":function(){return"\\/Date("+this.getTime()+")\\/"}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(c){return Date.monthNames[c].substring(0,3)},getShortDayName:function(c){return Date.dayNames[c].substring(0,3)},getMonthNumber:function(c){return Date.monthNumbers[c.substring(0,1).toUpperCase()+c.substring(1,3).toLowerCase()]},formatContainsHourInfo:(function(){var d=/(\\.)/g,c=/([gGhHisucUOPZ]|M\$)/;return function(e){return c.test(e.replace(d,""))}})(),formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"String.leftPad(this.getFullYear(), 4, '0')",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var k="Y-m-dTH:i:sP",h=[],g=0,d=k.length;g= 0 && y >= 0){","v = new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);","v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);","}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = new Date(y < 100 ? 100 : y, m, d, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);","}","}","}","if(v){","if(zz != null){","v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(m){var e=Date.parseRegexes.length,o=1,g=[],l=[],k=false,d="",j=0,h,n;for(;j Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:function(){return a("A")},A:{calcLast:true,g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM|am|pm)"},g:function(){return a("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return a("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var e=[],c=[a("Y",1),a("m",2),a("d",3),a("h",4),a("i",5),a("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",a("P",8).c,"}else{",a("O",8).c,"}","}"].join("\n")}];for(var g=0,d=c.length;g0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+(a?":":"")+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0")},getDayOfYear:function(){var b=0,e=this.clone(),a=this.getMonth(),c;for(c=0,e.setDate(1),e.setMonth(0);c28){a=Math.min(a,this.getFirstDateOfMonth().add("mo",c).getLastDateOfMonth().getDate())}e.setDate(a);e.setMonth(this.getMonth()+c);break;case Date.YEAR:e.setFullYear(this.getFullYear()+c);break}return e},between:function(c,a){var b=this.getTime();return c.getTime()<=b&&b<=a.getTime()}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari&&(navigator.userAgent.match(/WebKit\/(\d+)/)[1]||NaN)<420){Ext.apply(Date.prototype,{_xMonth:Date.prototype.setMonth,_xDate:Date.prototype.setDate,setMonth:function(a){if(a<=-1){var d=Math.ceil(-a),c=Math.ceil(d/12),b=(d%12)?12-d%12:0;this.setFullYear(this.getFullYear()-c);return this._xMonth(b)}else{return this._xMonth(a)}},setDate:function(a){return this.setTime(this.getTime()-(this.getDate()-a)*86400000)}})}Ext.util.MixedCollection=function(b,a){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions=b===true;if(a){this.getKey=a}Ext.util.MixedCollection.superclass.constructor.call(this)};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(b,c){if(arguments.length==1){c=arguments[0];b=this.getKey(c)}if(typeof b!="undefined"&&b!==null){var a=this.map[b];if(typeof a!="undefined"){return this.replace(b,c)}this.map[b]=c}this.length++;this.items.push(c);this.keys.push(b);this.fireEvent("add",this.length-1,c,b);return c},getKey:function(a){return a.id},replace:function(c,d){if(arguments.length==1){d=arguments[0];c=this.getKey(d)}var a=this.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined"){return this.add(c,d)}var b=this.indexOfKey(c);this.items[b]=d;this.map[c]=d;this.fireEvent("replace",c,a,d);return d},addAll:function(e){if(arguments.length>1||Ext.isArray(e)){var b=arguments.length>1?arguments:e;for(var d=0,a=b.length;d=this.length){return this.add(b,c)}this.length++;this.items.splice(a,0,c);if(typeof b!="undefined"&&b!==null){this.map[b]=c}this.keys.splice(a,0,b);this.fireEvent("add",a,c,b);return c},remove:function(a){return this.removeAt(this.indexOf(a))},removeAt:function(a){if(a=0){this.length--;var c=this.items[a];this.items.splice(a,1);var b=this.keys[a];if(typeof b!="undefined"){delete this.map[b]}this.keys.splice(a,1);this.fireEvent("remove",c,b);return c}return false},removeKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return this.items.indexOf(a)},indexOfKey:function(a){return this.keys.indexOf(a)},item:function(b){var a=this.map[b],c=a!==undefined?a:(typeof b=="number")?this.items[b]:undefined;return typeof c!="function"||this.allowFunctions?c:null},itemAt:function(a){return this.items[a]},key:function(a){return this.map[a]},contains:function(a){return this.indexOf(a)!=-1},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(k,a,j){var d,e,b=String(a).toUpperCase()=="DESC"?-1:1,h=[],l=this.keys,g=this.items;j=j||function(i,c){return i-c};for(d=0,e=g.length;de?1:(g=a;c--){d[d.length]=b[c]}}return d},filter:function(c,b,d,a){if(Ext.isEmpty(b,false)){return this.clone()}b=this.createValueMatcher(b,d,a);return this.filterBy(function(e){return e&&b.test(e[c])})},filterBy:function(g,e){var h=new Ext.util.MixedCollection();h.getKey=this.getKey;var b=this.keys,d=this.items;for(var c=0,a=d.length;c]+>/gi,stripScriptsRe=/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,nl2brRe=/\r?\n/g;return{ellipsis:function(value,len,word){if(value&&value.length>len){if(word){var vs=value.substr(0,len-2),index=Math.max(vs.lastIndexOf(" "),vs.lastIndexOf("."),vs.lastIndexOf("!"),vs.lastIndexOf("?"));if(index==-1||index<(len-15)){return value.substr(0,len-3)+"..."}else{return vs.substr(0,index)+"..."}}else{return value.substr(0,len-3)+"..."}}return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){if(!defaultValue&&defaultValue!==0){defaultValue=""}return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return !value?value:String(value).replace(/&/g,"&").replace(/>/g,">").replace(/").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return !value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else{return eval(fn).call(window,value)}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split("."),whole=ps[0],sub=ps[1]?"."+ps[1]:".00",r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,"$1,$2")}v=whole+sub;if(v.charAt(0)=="-"){return"-$"+v.substr(1)}return"$"+v},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTags:function(v){return !v?v:String(v).replace(stripTagsRE,"")},stripScripts:function(v){return !v?v:String(v).replace(stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function("v","return v "+a+";")}return fns[a](v)}}(),round:function(value,precision){var result=Number(value);if(typeof precision=="number"){precision=Math.pow(10,precision);result=Math.round(value*precision)/precision}return result},number:function(v,format){if(!format){return v}v=Ext.num(v,NaN);if(isNaN(v)){return""}var comma=",",dec=".",i18n=false,neg=v<0;v=Math.abs(v);if(format.substr(format.length-2)=="/i"){format=format.substr(0,format.length-2);i18n=true;comma=".";dec=","}var hasComma=format.indexOf(comma)!=-1,psplit=(i18n?format.replace(/[^\d\,]/g,""):format.replace(/[^\d\.]/g,"")).split(dec);if(1")}}}();Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var y=this,j=y.html,q=/]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,d=/^]*?for="(.*?)"/,v=/^]*?if="(.*?)"/,x=/^]*?exec="(.*?)"/,r,p=0,k=[],o="values",w="parent",l="xindex",n="xcount",e="return ",c="with(values){ ";j=["",j,""].join("");while((r=j.match(q))){var b=r[0].match(d),a=r[0].match(v),A=r[0].match(x),g=null,h=null,t=null,z=b&&b[1]?b[1]:"";if(a){g=a&&a[1]?a[1]:null;if(g){h=new Function(o,w,l,n,c+e+(Ext.util.Format.htmlDecode(g))+"; }")}}if(A){g=A&&A[1]?A[1]:null;if(g){t=new Function(o,w,l,n,c+(Ext.util.Format.htmlDecode(g))+"; }")}}if(z){switch(z){case".":z=new Function(o,w,c+e+o+"; }");break;case"..":z=new Function(o,w,c+e+w+"; }");break;default:z=new Function(o,w,c+e+z+"; }")}}k.push({id:p,target:z,exec:t,test:h,body:r[1]||""});j=j.replace(r[0],"{xtpl"+p+"}");++p}for(var u=k.length-1;u>=0;--u){y.compileTpl(k[u])}y.master=k[k.length-1];y.tpls=k};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w\-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(a,k,j,d,c){var h=this,g,m=h.tpls[a],l,b=[];if((m.test&&!m.test.call(h,k,j,d,c))||(m.exec&&m.exec.call(h,k,j,d,c))){return""}l=m.target?m.target.call(h,k,j):k;g=l.length;j=m.target?k:j;if(m.target&&Ext.isArray(l)){for(var e=0,g=l.length;e=0;--g){d[k[g].selectorText.toLowerCase()]=k[g]}}catch(i){}},getRules:function(h){if(d===null||h){d={};var k=c.styleSheets;for(var j=0,g=k.length;j=37&&a<=40){b.stopEvent()}},destroy:function(){this.disable()},enable:function(){if(this.disabled){if(Ext.isSafari2){this.el.on("keyup",this.stopKeyUp,this)}this.el.on(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=false}},disable:function(){if(!this.disabled){if(Ext.isSafari2){this.el.un("keyup",this.stopKeyUp,this)}this.el.un(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=true}},setDisabled:function(a){this[a?"disable":"enable"]()},isKeydown:function(){return this.forceKeyDown||Ext.EventManager.useKeydown}};Ext.KeyMap=function(c,b,a){this.el=Ext.get(c);this.eventName=a||"keydown";this.bindings=[];if(b){this.addBinding(b)}this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(b){if(Ext.isArray(b)){Ext.each(b,function(j){this.addBinding(j)},this);return}var k=b.key,g=b.fn||b.handler,l=b.scope;if(b.stopEvent){this.stopEvent=b.stopEvent}if(typeof k=="string"){var h=[];var e=k.toUpperCase();for(var c=0,d=e.length;c2)?a[2]:null;var h=(i>3)?a[3]:"/";var d=(i>4)?a[4]:null;var g=(i>5)?a[5]:false;document.cookie=c+"="+escape(e)+((b===null)?"":("; expires="+b.toGMTString()))+((h===null)?"":("; path="+h))+((d===null)?"":("; domain="+d))+((g===true)?"; secure":"")},get:function(d){var b=d+"=";var g=b.length;var a=document.cookie.length;var e=0;var c=0;while(e0){return this.ownerCt.items.itemAt(a-1)}}return null},getBubbleTarget:function(){return this.ownerCt}});Ext.reg("component",Ext.Component);Ext.Action=Ext.extend(Object,{constructor:function(a){this.initialConfig=a;this.itemId=a.itemId=(a.itemId||a.id||Ext.id());this.items=[]},isAction:true,setText:function(a){this.initialConfig.text=a;this.callEach("setText",[a])},getText:function(){return this.initialConfig.text},setIconClass:function(a){this.initialConfig.iconCls=a;this.callEach("setIconClass",[a])},getIconClass:function(){return this.initialConfig.iconCls},setDisabled:function(a){this.initialConfig.disabled=a;this.callEach("setDisabled",[a])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(a){this.initialConfig.hidden=a;this.callEach("setVisible",[!a])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(b,a){this.initialConfig.handler=b;this.initialConfig.scope=a;this.callEach("setHandler",[b,a])},each:function(b,a){Ext.each(this.items,b,a)},callEach:function(e,b){var d=this.items;for(var c=0,a=d.length;cj+o.left){k=j-l-c;g=true}if((i+e)>d+o.top){i=d-e-c;g=true}if(k=m){i=m-e-5}}n=[k,i];this.storeXY(n);a.setXY.call(this,n);this.sync()}}return this},getConstrainOffset:function(){return this.shadowOffset},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("")}else{if(this.lastXY){a.setXY.call(this,this.lastXY)}else{if(this.lastLT){a.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false)}else{this.setLeftTop(-10000,-10000)}},setVisible:function(i,h,k,l,j){if(i){this.showAction()}if(h&&i){var g=function(){this.sync(true);if(l){l()}}.createDelegate(this);a.setVisible.call(this,true,true,k,g,j)}else{if(!i){this.hideUnders(true)}var g=l;if(h){g=function(){this.hideAction();if(l){l()}}.createDelegate(this)}a.setVisible.call(this,i,h,k,g,j);if(i){this.sync(true)}else{if(!h){this.hideAction()}}}return this},storeXY:function(c){delete this.lastLT;this.lastXY=c},storeLeftTop:function(d,c){delete this.lastXY;this.lastLT=[d,c]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(c){this.storeLeftTop(c,this.getTop(true));a.setLeft.apply(this,arguments);this.sync();return this},setTop:function(c){this.storeLeftTop(this.getLeft(true),c);a.setTop.apply(this,arguments);this.sync();return this},setLeftTop:function(d,c){this.storeLeftTop(d,c);a.setLeftTop.apply(this,arguments);this.sync();return this},setXY:function(j,h,k,l,i){this.fixDisplay();this.beforeAction();this.storeXY(j);var g=this.createCB(l);a.setXY.call(this,j,h,k,g,i);if(!h){g()}return this},createCB:function(e){var d=this;return function(){d.constrainXY();d.sync(true);if(e){e()}}},setX:function(g,h,j,k,i){this.setXY([g,this.getY()],h,j,k,i);return this},setY:function(k,g,i,j,h){this.setXY([this.getX(),k],g,i,j,h);return this},setSize:function(j,k,i,m,n,l){this.beforeAction();var g=this.createCB(n);a.setSize.call(this,j,k,i,m,g,l);if(!i){g()}return this},setWidth:function(i,h,k,l,j){this.beforeAction();var g=this.createCB(l);a.setWidth.call(this,i,h,k,g,j);if(!h){g()}return this},setHeight:function(j,i,l,m,k){this.beforeAction();var g=this.createCB(m);a.setHeight.call(this,j,i,l,g,k);if(!i){g()}return this},setBounds:function(o,m,p,i,n,k,l,j){this.beforeAction();var g=this.createCB(l);if(!n){this.storeXY([o,m]);a.setXY.call(this,[o,m]);a.setSize.call(this,p,i,n,k,g,j);g()}else{a.setBounds.call(this,o,m,p,i,n,k,g,j)}return this},setZIndex:function(c){this.zindex=c;this.setStyle("z-index",c+2);if(this.shadow){this.shadow.setZIndex(c+1)}if(this.shim){this.shim.setStyle("z-index",c)}return this}})})();Ext.Shadow=function(d){Ext.apply(this,d);if(typeof this.mode!="string"){this.mode=this.defaultMode}var e=this.offset,c={h:0},b=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":c.w=0;c.l=c.t=e;c.t-=1;if(Ext.isIE9m){c.l-=this.offset+b;c.t-=this.offset+b;c.w-=b;c.h-=b;c.t+=1}break;case"sides":c.w=(e*2);c.l=-e;c.t=e-1;if(Ext.isIE9m){c.l-=(this.offset-b);c.t-=this.offset+b;c.l+=1;c.w-=(this.offset-b)*2;c.w-=b+1;c.h-=1}break;case"frame":c.w=c.h=(e*2);c.l=c.t=-e;c.t+=1;c.h-=2;if(Ext.isIE9m){c.l-=(this.offset-b);c.t-=(this.offset-b);c.l+=1;c.w-=(this.offset+b+1);c.h-=(this.offset+b);c.h+=1}break}this.adjusts=c};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(a){a=Ext.get(a);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=a.dom){this.el.insertBefore(a)}}this.el.setStyle("z-index",this.zIndex||parseInt(a.getStyle("z-index"),10)-1);if(Ext.isIE9m){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"}this.realign(a.getLeft(true),a.getTop(true),a.getWidth(),a.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(b,r,q,g){if(!this.el){return}var n=this.adjusts,k=this.el.dom,u=k.style,i=0,p=(q+n.w),e=(g+n.h),j=p+"px",o=e+"px",m,c;u.left=(b+n.l)+"px";u.top=(r+n.t)+"px";if(u.width!=j||u.height!=o){u.width=j;u.height=o;if(!Ext.isIE9m){m=k.childNodes;c=Math.max(0,(p-12))+"px";m[0].childNodes[1].style.width=c;m[1].childNodes[1].style.width=c;m[2].childNodes[1].style.width=c;m[1].style.height=Math.max(0,(e-12))+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(a){this.zIndex=a;if(this.el){this.el.setStyle("z-index",a)}}};Ext.Shadow.Pool=function(){var b=[],a=Ext.isIE9m?'
    ':'
    ';return{pull:function(){var c=b.shift();if(!c){c=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,a));c.autoBoxAdjust=false}return c},push:function(c){b.push(c)}}}();Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(b,d){if(typeof b=="object"){d=b.height;b=b.width}if(Ext.isDefined(b)&&Ext.isDefined(this.boxMinWidth)&&(bthis.boxMaxWidth)){b=this.boxMaxWidth}if(Ext.isDefined(d)&&Ext.isDefined(this.boxMaxHeight)&&(d>this.boxMaxHeight)){d=this.boxMaxHeight}if(!this.boxReady){this.width=b;this.height=d;return this}if(this.cacheSizes!==false&&this.lastSize&&this.lastSize.width==b&&this.lastSize.height==d){return this}this.lastSize={width:b,height:d};var c=this.adjustSize(b,d),g=c.width,a=c.height,e;if(g!==undefined||a!==undefined){e=this.getResizeEl();if(!this.deferHeight&&g!==undefined&&a!==undefined){e.setSize(g,a)}else{if(!this.deferHeight&&a!==undefined){e.setHeight(a)}else{if(g!==undefined){e.setWidth(g)}}}this.onResize(g,a,b,d);this.fireEvent("resize",this,g,a,b,d)}return this},setWidth:function(a){return this.setSize(a)},setHeight:function(a){return this.setSize(undefined,a)},getSize:function(){return this.getResizeEl().getSize()},getWidth:function(){return this.getResizeEl().getWidth()},getHeight:function(){return this.getResizeEl().getHeight()},getOuterSize:function(){var a=this.getResizeEl();return{width:a.getWidth()+a.getMargins("lr"),height:a.getHeight()+a.getMargins("tb")}},getPosition:function(a){var b=this.getPositionEl();if(a===true){return[b.getLeft(true),b.getTop(true)]}return this.xy||b.getXY()},getBox:function(a){var c=this.getPosition(a);var b=this.getSize();b.x=c[0];b.y=c[1];return b},updateBox:function(a){this.setSize(a.width,a.height);this.setPagePosition(a.x,a.y);return this},getResizeEl:function(){return this.resizeEl||this.el},setAutoScroll:function(a){if(this.rendered){this.getContentTarget().setOverflow(a?"auto":"")}this.autoScroll=a;return this},setPosition:function(a,g){if(a&&typeof a[1]=="number"){g=a[1];a=a[0]}this.x=a;this.y=g;if(!this.boxReady){return this}var b=this.adjustPosition(a,g);var e=b.x,d=b.y;var c=this.getPositionEl();if(e!==undefined||d!==undefined){if(e!==undefined&&d!==undefined){c.setLeftTop(e,d)}else{if(e!==undefined){c.setLeft(e)}else{if(d!==undefined){c.setTop(d)}}}this.onPosition(e,d);this.fireEvent("move",this,e,d)}return this},setPagePosition:function(a,c){if(a&&typeof a[1]=="number"){c=a[1];a=a[0]}this.pageX=a;this.pageY=c;if(!this.boxReady){return}if(a===undefined||c===undefined){return}var b=this.getPositionEl().translatePoints(a,c);this.setPosition(b.left,b.top);return this},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}this.boxReady=true;Ext.isDefined(this.autoScroll)&&this.setAutoScroll(this.autoScroll);this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.getResizeEl().getWidth(),this.autoHeight?undefined:this.getResizeEl().getHeight());return this},onResize:function(d,b,a,c){},onPosition:function(a,b){},adjustSize:function(a,b){if(this.autoWidth){a="auto"}if(this.autoHeight){b="auto"}return{width:a,height:b}},adjustPosition:function(a,b){return{x:a,y:b}}});Ext.reg("box",Ext.BoxComponent);Ext.Spacer=Ext.extend(Ext.BoxComponent,{autoEl:"div"});Ext.reg("spacer",Ext.Spacer);Ext.SplitBar=function(c,e,b,d,a){this.el=Ext.get(c,true);this.el.unselectable();this.resizingEl=Ext.get(e,true);this.orientation=b||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!a){this.proxy=Ext.SplitBar.createProxy(this.orientation)}else{this.proxy=Ext.get(a).dom}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=d||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=d||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(a,e){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:" "},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var c=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var d=c-this.activeMinSize;var b=Math.max(this.activeMaxSize-c,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?d:b,this.placement==Ext.SplitBar.LEFT?b:d,this.tickSize);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?d:b,this.placement==Ext.SplitBar.TOP?b:d,this.tickSize)}this.dragSpecs.startSize=c;this.dragSpecs.startPoint=[a,e];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,a,e)},onEndProxyDrag:function(c){Ext.get(this.proxy).setDisplayed(false);var b=Ext.lib.Event.getXY(c);if(this.overlay){Ext.destroy(this.overlay);delete this.overlay}var a;if(this.orientation==Ext.SplitBar.HORIZONTAL){a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?b[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-b[0])}else{a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?b[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-b[1])}a=Math.min(Math.max(a,this.activeMinSize),this.activeMaxSize);if(a!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,a)!==false){this.adapter.setElementSize(this,a);this.fireEvent("moved",this,a);this.fireEvent("resize",this,a)}}},getAdapter:function(){return this.adapter},setAdapter:function(a){this.adapter=a;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(a){this.minSize=a},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(a){this.maxSize=a},setCurrentSize:function(b){var a=this.animate;this.animate=false;this.adapter.setElementSize(this,b);this.animate=a},destroy:function(a){Ext.destroy(this.shim,Ext.get(this.proxy));this.dd.unreg();if(a){this.el.remove()}this.purgeListeners()}});Ext.SplitBar.createProxy=function(b){var c=new Ext.Element(document.createElement("div"));document.body.appendChild(c.dom);c.unselectable();var a="x-splitbar-proxy";c.addClass(a+" "+(b==Ext.SplitBar.HORIZONTAL?a+"-h":a+"-v"));return c.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(a){},getElementSize:function(a){if(a.orientation==Ext.SplitBar.HORIZONTAL){return a.resizingEl.getWidth()}else{return a.resizingEl.getHeight()}},setElementSize:function(b,a,c){if(b.orientation==Ext.SplitBar.HORIZONTAL){if(!b.animate){b.resizingEl.setWidth(a);if(c){c(b,a)}}else{b.resizingEl.setWidth(a,true,0.1,c,"easeOut")}}else{if(!b.animate){b.resizingEl.setHeight(a);if(c){c(b,a)}}else{b.resizingEl.setHeight(a,true,0.1,c,"easeOut")}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(a){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(a)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(a){this.basic.init(a)},getElementSize:function(a){return this.basic.getElementSize(a)},setElementSize:function(b,a,c){this.basic.setElementSize(b,a,this.moveSplitter.createDelegate(this,[b]))},moveSplitter:function(a){var b=Ext.SplitBar;switch(a.placement){case b.LEFT:a.el.setX(a.resizingEl.getRight());break;case b.RIGHT:a.el.setStyle("right",(this.container.getWidth()-a.resizingEl.getLeft())+"px");break;case b.TOP:a.el.setY(a.resizingEl.getBottom());break;case b.BOTTOM:a.el.setY(a.resizingEl.getTop()-a.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4;Ext.Container=Ext.extend(Ext.BoxComponent,{bufferResize:50,autoDestroy:true,forceLayout:false,defaultType:"panel",resizeEvent:"resize",bubbleEvents:["add","remove"],initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var a=this.items;if(a){delete this.items;this.add(a)}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(a){if(this.layout&&this.layout!=a){this.layout.setContainer(null)}this.layout=a;this.initItems();a.setContainer(this)},afterRender:function(){Ext.Container.superclass.afterRender.call(this);if(!this.layout){this.layout="auto"}if(Ext.isObject(this.layout)&&!this.layout.layout){this.layoutConfig=this.layout;this.layout=this.layoutConfig.type}if(Ext.isString(this.layout)){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig)}this.setLayout(this.layout);if(this.activeItem!==undefined&&this.layout.setActiveItem){var a=this.activeItem;delete this.activeItem;this.layout.setActiveItem(a)}if(!this.ownerCt){this.doLayout(false,true)}if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false])}},getLayoutTarget:function(){return this.el},getComponentId:function(a){return a.getItemId()},add:function(b){this.initItems();var e=arguments.length>1;if(e||Ext.isArray(b)){var a=[];Ext.each(e?arguments:b,function(h){a.push(this.add(h))},this);return a}var g=this.lookupComponent(this.applyDefaults(b));var d=this.items.length;if(this.fireEvent("beforeadd",this,g,d)!==false&&this.onBeforeAdd(g)!==false){this.items.add(g);g.onAdded(this,d);this.onAdd(g);this.fireEvent("add",this,g,d)}return g},onAdd:function(a){},onAdded:function(a,b){this.ownerCt=a;this.initRef();this.cascade(function(d){d.initRef()});this.fireEvent("added",this,a,b)},insert:function(e,b){var d=arguments,h=d.length,a=[],g,j;this.initItems();if(h>2){for(g=h-1;g>=1;--g){a.push(this.insert(e,d[g]))}return a}j=this.lookupComponent(this.applyDefaults(b));e=Math.min(e,this.items.length);if(this.fireEvent("beforeadd",this,j,e)!==false&&this.onBeforeAdd(j)!==false){if(j.ownerCt==this){this.items.remove(j)}this.items.insert(e,j);j.onAdded(this,e);this.onAdd(j);this.fireEvent("add",this,j,e)}return j},applyDefaults:function(b){var a=this.defaults;if(a){if(Ext.isFunction(a)){a=a.call(this,b)}if(Ext.isString(b)){b=Ext.ComponentMgr.get(b);Ext.apply(b,a)}else{if(!b.events){Ext.applyIf(b.isAction?b.initialConfig:b,a)}else{Ext.apply(b,a)}}}return b},onBeforeAdd:function(a){if(a.ownerCt){a.ownerCt.remove(a,false)}if(this.hideBorders===true){a.border=(a.border===true)}},remove:function(a,b){this.initItems();var d=this.getComponent(a);if(d&&this.fireEvent("beforeremove",this,d)!==false){this.doRemove(d,b);this.fireEvent("remove",this,d)}return d},onRemove:function(a){},doRemove:function(e,d){var b=this.layout,a=b&&this.rendered;if(a){b.onRemove(e)}this.items.remove(e);e.onRemoved();this.onRemove(e);if(d===true||(d!==false&&this.autoDestroy)){e.destroy()}if(a){b.afterRemove(e)}},removeAll:function(c){this.initItems();var e,g=[],b=[];this.items.each(function(h){g.push(h)});for(var d=0,a=g.length;d','','
    ','
    ',"
    ");a.disableFormats=true;return a.compile()})(),destroy:function(){if(this.resizeTask&&this.resizeTask.cancel){this.resizeTask.cancel()}if(this.container){this.container.un(this.container.resizeEvent,this.onResize,this)}if(!Ext.isEmpty(this.targetCls)){var a=this.container.getLayoutTarget();if(a){a.removeClass(this.targetCls)}}}});Ext.layout.AutoLayout=Ext.extend(Ext.layout.ContainerLayout,{type:"auto",monitorResize:true,onLayout:function(d,g){Ext.layout.AutoLayout.superclass.onLayout.call(this,d,g);var e=this.getRenderedItems(d),a=e.length,b,h;for(b=0;b0){b.setSize(a)}}});Ext.Container.LAYOUTS.fit=Ext.layout.FitLayout;Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,layoutOnCardChange:false,renderHidden:true,type:"card",setActiveItem:function(d){var a=this.activeItem,b=this.container;d=b.getComponent(d);if(d&&a!=d){if(a){a.hide();if(a.hidden!==true){return false}a.fireEvent("deactivate",a)}var c=d.doLayout&&(this.layoutOnCardChange||!d.rendered);this.activeItem=d;delete d.deferLayout;d.show();this.layout();if(c){d.doLayout()}d.fireEvent("activate",d)}},renderAll:function(a,b){if(this.deferredRender){this.renderItem(this.activeItem,undefined,b)}else{Ext.layout.CardLayout.superclass.renderAll.call(this,a,b)}}});Ext.Container.LAYOUTS.card=Ext.layout.CardLayout;Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"anchor",defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,getLayoutTargetSize:function(){var b=this.container.getLayoutTarget(),a={};if(b){a=b.getViewSize();if(Ext.isIE9m&&Ext.isStrict&&a.width==0){a=b.getStyleSize()}a.width-=b.getPadding("lr");a.height-=b.getPadding("tb")}return a},onLayout:function(m,w){Ext.layout.AnchorLayout.superclass.onLayout.call(this,m,w);var p=this.getLayoutTargetSize(),k=p.width,o=p.height,q=w.getStyle("overflow"),n=this.getRenderedItems(m),t=n.length,g=[],j,a,v,l,h,c,e,d,u=0,s,b;if(k<20&&o<20){return}if(m.anchorSize){if(typeof m.anchorSize=="number"){a=m.anchorSize}else{a=m.anchorSize.width;v=m.anchorSize.height}}else{a=m.initialConfig.width;v=m.initialConfig.height}for(s=0;s 
    ');b.disableFormats=true;b.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=b}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{if(this.collapsible!==false&&!this.hideCollapseTool){var a=this.expandToolEl=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);a.addClassOnOver("x-tool-expand-"+this.position+"-over");a.on("click",this.onExpandClick,this,{stopEvent:true})}if(this.floatable!==false||this.titleCollapse){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this[this.floatable?"collapseClick":"onExpandClick"],this)}}}return this.collapsedEl},onExpandClick:function(a){if(this.isSlid){this.panel.expand(false)}else{this.panel.expand()}},onCollapseClick:function(a){this.panel.collapse()},beforeCollapse:function(c,a){this.lastAnim=a;if(this.splitEl){this.splitEl.hide()}this.getCollapsedEl().show();var b=this.panel.getEl();this.originalZIndex=b.getStyle("z-index");b.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(a){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility="visible"}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:0.2})}this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(a){if(this.isSlid){this.afterSlideIn()}var b=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,b.getHeight())}else{this.panel.setSize(b.getWidth(),undefined)}b.hide();b.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",this.floatingZIndex)},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show()}this.layout.layout();this.panel.el.setStyle("z-index",this.originalZIndex);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(a){if(this.isSlid){a.stopPropagation();this.slideIn()}else{a.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide()}else{if(this.splitEl){this.splitEl.hide()}}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show()}else{if(this.splitEl){this.splitEl.show()}}},isVisible:function(){return !this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(a){this.panel=a},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(a){var b=this.getCollapsedEl();b.setLeftTop(a.x,a.y);b.setSize(a.width,a.height)},applyLayout:function(a){if(this.isCollapsed){this.applyLayoutCollapsed(a)}else{this.panel.setPosition(a.x,a.y);this.panel.setSize(a.width,a.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){this.autoHideSlideTask=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={mouseout:function(a){if(!a.within(this.el,true)){this.autoHideSlideTask.delay(500)}},mouseover:function(a){this.autoHideSlideTask.cancel()},scope:this}}this.el.on(this.autoHideHd);this.collapsedEl.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);this.collapsedEl.un("mouseout",this.autoHideHd.mouseout);this.collapsedEl.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return}this.isSlid=true;var b=this.panel.tools,c,a;if(b&&b.toggle){b.toggle.hide()}this.el.show();a=this.panel.collapsed;this.panel.collapsed=false;if(this.position=="east"||this.position=="west"){c=this.panel.deferHeight;this.panel.deferHeight=false;this.panel.setSize(undefined,this.collapsedEl.getHeight());this.panel.deferHeight=c}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined)}this.panel.collapsed=a;this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",this.floatingZIndex+2);this.panel.el.replaceClass("x-panel-collapsed","x-panel-floating");if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.panel.el.replaceClass("x-panel-floating","x-panel-collapsed");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var a=this.panel.tools;if(a&&a.toggle){a.toggle.show()}},slideIn:function(a){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(a);return}this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(a)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(a){if(!a.within(this.el)){this.slideIn()}},anchors:{west:"left",east:"right",north:"top",south:"bottom"},sanchors:{west:"l",east:"r",north:"t",south:"b"},canchors:{west:"tl-tr",east:"tr-tl",north:"tl-bl",south:"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var a=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var b=this.collapsedEl,a=this.cmargins;switch(this.position){case"west":return[-(a.right+b.getWidth()+a.left),0];break;case"east":return[a.right+b.getWidth()+a.left,0];break;case"north":return[0,-(a.top+a.bottom+b.getHeight())];break;case"south":return[0,a.top+a.bottom+b.getHeight()];break}},destroy:function(){if(this.autoHideSlideTask&&this.autoHideSlideTask.cancel){this.autoHideSlideTask.cancel()}Ext.destroyMembers(this,"miniCollapsedEl","collapsedEl","expandToolEl")}};Ext.layout.BorderLayout.SplitRegion=function(b,a,c){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,b,a,c);this.applyLayout=this.applyFns[c]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;this.panel.setPosition(c.x,c.y);var a=d.offsetWidth;b.left=(c.x+c.width-a)+"px";b.top=(c.y)+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},east:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetWidth;this.panel.setPosition(c.x+a,c.y);b.left=(c.x)+"px";b.top=(c.y)+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},north:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y);b.left=(c.x)+"px";b.top=(c.y+c.height-a)+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)},south:function(c){if(this.isCollapsed){return this.applyLayoutCollapsed(c)}var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y+a);b.left=(c.x)+"px";b.top=(c.y)+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)}},render:function(a,c){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,a,c);var d=this.position;this.splitEl=a.createChild({cls:"x-layout-split x-layout-split-"+d,html:" ",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+d,html:" "});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var b=this.splitSettings[d];this.split=new Ext.SplitBar(this.splitEl.dom,c.el,b.orientation);this.split.tickSize=this.tickSize;this.split.placement=b.placement;this.split.getMaximumSize=this[b.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[b.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[b.maxProp];if(c.hidden){this.splitEl.hide()}if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip}if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this)}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize()}var a=this.panel.getSize();if(this.position=="north"||this.position=="south"){a.height+=this.splitEl.dom.offsetHeight}else{a.width+=this.splitEl.dom.offsetWidth}return a},getHMaxSize:function(){var b=this.maxSize||10000;var a=this.layout.center;return Math.min(b,(this.el.getWidth()+a.el.getWidth())-a.getMinWidth())},getVMaxSize:function(){var b=this.maxSize||10000;var a=this.layout.center;return Math.min(b,(this.el.getHeight()+a.el.getHeight())-a.getMinHeight())},onSplitMove:function(b,a){var c=this.panel.getSize();this.lastSplitSize=a;if(this.position=="north"||this.position=="south"){this.panel.setSize(c.width,a);this.state.height=a}else{this.panel.setSize(a,c.height);this.state.width=a}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split},destroy:function(){Ext.destroy(this.miniSplitEl,this.split,this.splitEl);Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.border=Ext.layout.BorderLayout;Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",trackLabels:true,type:"form",onRemove:function(d){Ext.layout.FormLayout.superclass.onRemove.call(this,d);if(this.trackLabels){d.un("show",this.onFieldShow,this);d.un("hide",this.onFieldHide,this)}var b=d.getPositionEl(),a=d.getItemCt&&d.getItemCt();if(d.rendered&&a){if(b&&b.dom){b.insertAfter(a)}Ext.destroy(a);Ext.destroyMembers(d,"label","itemCt");if(d.customItemCt){Ext.destroyMembers(d,"getItemCt","customItemCt")}}},setContainer:function(a){Ext.layout.FormLayout.superclass.setContainer.call(this,a);a.labelAlign=a.labelAlign||this.labelAlign;if(a.labelAlign){a.addClass("x-form-label-"+a.labelAlign)}if(a.hideLabels||this.hideLabels){Ext.apply(this,{labelStyle:"display:none",elementStyle:"padding-left:0;",labelAdjust:0})}else{this.labelSeparator=Ext.isDefined(a.labelSeparator)?a.labelSeparator:this.labelSeparator;a.labelWidth=a.labelWidth||this.labelWidth||100;if(Ext.isNumber(a.labelWidth)){var b=a.labelPad||this.labelPad;b=Ext.isNumber(b)?b:5;Ext.apply(this,{labelAdjust:a.labelWidth+b,labelStyle:"width:"+a.labelWidth+"px;",elementStyle:"padding-left:"+(a.labelWidth+b)+"px"})}if(a.labelAlign=="top"){Ext.apply(this,{labelStyle:"width:auto;",labelAdjust:0,elementStyle:"padding-left:0;"})}}},isHide:function(a){return a.hideLabel||this.container.hideLabels},onFieldShow:function(a){a.getItemCt().removeClass("x-hide-"+a.hideMode);if(a.isComposite){a.doLayout()}},onFieldHide:function(a){a.getItemCt().addClass("x-hide-"+a.hideMode)},getLabelStyle:function(e){var b="",c=[this.labelStyle,e];for(var d=0,a=c.length;d=b)||(this.cells[c]&&this.cells[c][a])){if(b&&a>=b){c++;a=0}else{a++}}return[a,c]},renderItem:function(e,a,d){if(!this.table){this.table=d.createChild(Ext.apply({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true)}if(e&&!e.rendered){e.render(this.getNextCell(e));this.configureItem(e)}else{if(e&&!this.isValidParent(e,d)){var b=this.getNextCell(e);b.insertBefore(e.getPositionEl().dom,null);e.container=Ext.get(b);this.configureItem(e)}}},isValidParent:function(b,a){return b.getPositionEl().up("table",5).dom.parentNode===(a.dom||a)},destroy:function(){delete this.table;Ext.layout.TableLayout.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.table=Ext.layout.TableLayout;Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",type:"absolute",onLayout:function(a,b){b.position();this.paddingLeft=b.getPadding("l");this.paddingTop=b.getPadding("t");Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,a,b)},adjustWidthAnchor:function(b,a){return b?b-a.getPosition(true)[0]+this.paddingLeft:b},adjustHeightAnchor:function(b,a){return b?b-a.getPosition(true)[1]+this.paddingTop:b}});Ext.Container.LAYOUTS.absolute=Ext.layout.AbsoluteLayout;Ext.layout.BoxLayout=Ext.extend(Ext.layout.ContainerLayout,{defaultMargins:{left:0,top:0,right:0,bottom:0},padding:"0",pack:"start",monitorResize:true,type:"box",scrollOffset:0,extraCls:"x-box-item",targetCls:"x-box-layout-ct",innerCls:"x-box-inner",constructor:function(a){Ext.layout.BoxLayout.superclass.constructor.call(this,a);if(Ext.isString(this.defaultMargins)){this.defaultMargins=this.parseMargins(this.defaultMargins)}var d=this.overflowHandler;if(typeof d=="string"){d={type:d}}var c="none";if(d&&d.type!=undefined){c=d.type}var b=Ext.layout.boxOverflow[c];if(b[this.type]){b=b[this.type]}this.overflowHandler=new b(this,d)},onLayout:function(b,h){Ext.layout.BoxLayout.superclass.onLayout.call(this,b,h);var d=this.getLayoutTargetSize(),i=this.getVisibleItems(b),c=this.calculateChildBoxes(i,d),g=c.boxes,j=c.meta;if(d.width>0){var k=this.overflowHandler,a=j.tooNarrow?"handleOverflow":"clearOverflow";var e=k[a](c,d);if(e){if(e.targetSize){d=e.targetSize}if(e.recalculate){i=this.getVisibleItems(b);c=this.calculateChildBoxes(i,d);g=c.boxes}}}this.layoutTargetLastSize=d;this.childBoxCache=c;this.updateInnerCtSize(d,c);this.updateChildBoxes(g);this.handleTargetOverflow(d,b,h)},updateChildBoxes:function(c){for(var b=0,e=c.length;b(None)',constructor:function(a){Ext.layout.boxOverflow.Menu.superclass.constructor.apply(this,arguments);this.menuItems=[]},createInnerElements:function(){if(!this.afterCt){this.afterCt=this.layout.innerCt.insertSibling({cls:this.afterCls},"before")}},clearOverflow:function(a,g){var e=g.width+(this.afterCt?this.afterCt.getWidth():0),b=this.menuItems;this.hideTrigger();for(var c=0,d=b.length;ci.width;return l}},handleOverflow:function(d,h){this.showTrigger();var k=h.width-this.afterCt.getWidth(),l=d.boxes,e=0,r=false;for(var o=0,c=l.length;o=0;j--){var q=l[j].component,p=l[j].left+l[j].width;if(p>=k){this.menuItems.unshift({component:q,width:l[j].width});q.hide()}else{break}}}if(this.menuItems.length==0){this.hideTrigger()}return{targetSize:{height:h.height,width:k},recalculate:r}}});Ext.layout.boxOverflow.menu.hbox=Ext.layout.boxOverflow.HorizontalMenu;Ext.layout.boxOverflow.Scroller=Ext.extend(Ext.layout.boxOverflow.None,{animateScroll:true,scrollIncrement:100,wheelIncrement:3,scrollRepeatInterval:400,scrollDuration:0.4,beforeCls:"x-strip-left",afterCls:"x-strip-right",scrollerCls:"x-strip-scroller",beforeScrollerCls:"x-strip-scroller-left",afterScrollerCls:"x-strip-scroller-right",createWheelListener:function(){this.layout.innerCt.on({scope:this,mousewheel:function(a){a.stopEvent();this.scrollBy(a.getWheelDelta()*this.wheelIncrement*-1,false)}})},handleOverflow:function(a,b){this.createInnerElements();this.showScrollers()},clearOverflow:function(){this.hideScrollers()},showScrollers:function(){this.createScrollers();this.beforeScroller.show();this.afterScroller.show();this.updateScrollButtons()},hideScrollers:function(){if(this.beforeScroller!=undefined){this.beforeScroller.hide();this.afterScroller.hide()}},createScrollers:function(){if(!this.beforeScroller&&!this.afterScroller){var a=this.beforeCt.createChild({cls:String.format("{0} {1} ",this.scrollerCls,this.beforeScrollerCls)});var b=this.afterCt.createChild({cls:String.format("{0} {1}",this.scrollerCls,this.afterScrollerCls)});a.addClassOnOver(this.beforeScrollerCls+"-hover");b.addClassOnOver(this.afterScrollerCls+"-hover");a.setVisibilityMode(Ext.Element.DISPLAY);b.setVisibilityMode(Ext.Element.DISPLAY);this.beforeRepeater=new Ext.util.ClickRepeater(a,{interval:this.scrollRepeatInterval,handler:this.scrollLeft,scope:this});this.afterRepeater=new Ext.util.ClickRepeater(b,{interval:this.scrollRepeatInterval,handler:this.scrollRight,scope:this});this.beforeScroller=a;this.afterScroller=b}},destroy:function(){Ext.destroy(this.beforeScroller,this.afterScroller,this.beforeRepeater,this.afterRepeater,this.beforeCt,this.afterCt)},scrollBy:function(b,a){this.scrollTo(this.getScrollPosition()+b,a)},getItem:function(a){if(Ext.isString(a)){a=Ext.getCmp(a)}else{if(Ext.isNumber(a)){a=this.items[a]}}return a},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},updateScrollButtons:function(){if(this.beforeScroller==undefined||this.afterScroller==undefined){return}var d=this.atExtremeBefore()?"addClass":"removeClass",c=this.atExtremeAfter()?"addClass":"removeClass",a=this.beforeScrollerCls+"-disabled",b=this.afterScrollerCls+"-disabled";this.beforeScroller[d](a);this.afterScroller[c](b);this.scrolling=false},atExtremeBefore:function(){return this.getScrollPosition()===0},scrollLeft:function(a){this.scrollBy(-this.scrollIncrement,a)},scrollRight:function(a){this.scrollBy(this.scrollIncrement,a)},scrollToItem:function(d,b){d=this.getItem(d);if(d!=undefined){var a=this.getItemVisibility(d);if(!a.fullyVisible){var c=d.getBox(true,true),e=c.x;if(a.hiddenRight){e-=(this.layout.innerCt.getWidth()-c.width)}this.scrollTo(e,b)}}},getItemVisibility:function(e){var d=this.getItem(e).getBox(true,true),a=d.x,c=d.x+d.width,g=this.getScrollPosition(),b=this.layout.innerCt.getWidth()+g;return{hiddenLeft:ab,fullyVisible:a>g&&c=this.getMaxScrollBottom()}});Ext.layout.boxOverflow.scroller.vbox=Ext.layout.boxOverflow.VerticalScroller;Ext.layout.boxOverflow.HorizontalScroller=Ext.extend(Ext.layout.boxOverflow.Scroller,{handleOverflow:function(a,b){Ext.layout.boxOverflow.HorizontalScroller.superclass.handleOverflow.apply(this,arguments);return{targetSize:{height:b.height,width:b.width-(this.beforeCt.getWidth()+this.afterCt.getWidth())}}},createInnerElements:function(){var a=this.layout.innerCt;if(!this.beforeCt){this.afterCt=a.insertSibling({cls:this.afterCls},"before");this.beforeCt=a.insertSibling({cls:this.beforeCls},"before");this.createWheelListener()}},scrollTo:function(a,b){var d=this.getScrollPosition(),c=a.constrain(0,this.getMaxScrollRight());if(c!=d&&!this.scrolling){if(b==undefined){b=this.animateScroll}this.layout.innerCt.scrollTo("left",c,b?this.getScrollAnim():false);if(b){this.scrolling=true}else{this.scrolling=false;this.updateScrollButtons()}}},getScrollPosition:function(){return parseInt(this.layout.innerCt.dom.scrollLeft,10)||0},getMaxScrollRight:function(){return this.layout.innerCt.dom.scrollWidth-this.layout.innerCt.getWidth()},atExtremeAfter:function(){return this.getScrollPosition()>=this.getMaxScrollRight()}});Ext.layout.boxOverflow.scroller.hbox=Ext.layout.boxOverflow.HorizontalScroller;Ext.layout.HBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"top",type:"hbox",calculateChildBoxes:function(r,b){var F=r.length,R=this.padding,D=R.top,U=R.left,y=D+R.bottom,O=U+R.right,a=b.width-this.scrollOffset,e=b.height,o=Math.max(0,e-y),P=this.pack=="start",W=this.pack=="center",A=this.pack=="end",L=0,Q=0,T=0,l=0,X=0,H=[],k,J,M,V,w,j,S,I,c,x,q,N;for(S=0;Sa;var n=Math.max(0,a-L-O);if(p){for(S=0;S0){var C=[];for(var E=0,v=F;Ei.available?1:-1});for(var S=0,v=C.length;S0){I.top=D+q+(z/2)}}U+=I.width+w.right}return{boxes:H,meta:{maxHeight:Q,nonFlexWidth:L,desiredWidth:l,minimumWidth:X,shortfall:l-a,tooNarrow:p}}}});Ext.Container.LAYOUTS.hbox=Ext.layout.HBoxLayout;Ext.layout.VBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"left",type:"vbox",calculateChildBoxes:function(o,b){var E=o.length,R=this.padding,C=R.top,V=R.left,x=C+R.bottom,O=V+R.right,a=b.width-this.scrollOffset,c=b.height,K=Math.max(0,a-O),P=this.pack=="start",X=this.pack=="center",z=this.pack=="end",k=0,u=0,U=0,L=0,m=0,G=[],h,I,N,W,t,g,T,H,S,w,n,d,r;for(T=0;Tc;var q=Math.max(0,(c-k-x));if(l){for(T=0,r=E;T0){var J=[];for(var D=0,r=E;Di.available?1:-1});for(var T=0,r=J.length;T0){H.left=V+w+(y/2)}}C+=H.height+t.bottom}return{boxes:G,meta:{maxWidth:u,nonFlexHeight:k,desiredHeight:L,minimumHeight:m,shortfall:L-c,tooNarrow:l}}}});Ext.Container.LAYOUTS.vbox=Ext.layout.VBoxLayout;Ext.layout.ToolbarLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"toolbar",triggerWidth:18,noItemsMenuText:'
    (None)
    ',lastOverflow:false,tableHTML:['',"","",'",'","","","
    ','',"",'',"","
    ","
    ','',"","","","","","","
    ",'',"",'',"","
    ","
    ",'',"",'',"","
    ","
    ","
    "].join(""),onLayout:function(e,j){if(!this.leftTr){var h=e.buttonAlign=="center"?"center":"left";j.addClass("x-toolbar-layout-ct");j.insertHtml("beforeEnd",String.format(this.tableHTML,h));this.leftTr=j.child("tr.x-toolbar-left-row",true);this.rightTr=j.child("tr.x-toolbar-right-row",true);this.extrasTr=j.child("tr.x-toolbar-extras-row",true);if(this.hiddenItem==undefined){this.hiddenItems=[]}}var k=e.buttonAlign=="right"?this.rightTr:this.leftTr,l=e.items.items,d=0;for(var b=0,g=l.length,m;b=0&&(d=e[a]);a--){if(!d.firstChild){b.removeChild(d)}}},insertCell:function(e,b,a){var d=document.createElement("td");d.className="x-toolbar-cell";b.insertBefore(d,b.childNodes[a]||null);return d},hideItem:function(a){this.hiddenItems.push(a);a.xtbHidden=true;a.xtbWidth=a.getPositionEl().dom.parentNode.offsetWidth;a.hide()},unhideItem:function(a){a.show();a.xtbHidden=false;this.hiddenItems.remove(a)},getItemWidth:function(a){return a.hidden?(a.xtbWidth||0):a.getPositionEl().dom.parentNode.offsetWidth},fitToSize:function(k){if(this.container.enableOverflow===false){return}var b=k.dom.clientWidth,j=k.dom.firstChild.offsetWidth,m=b-this.triggerWidth,a=this.lastWidth||0,c=this.hiddenItems,e=c.length!=0,n=b>=a;this.lastWidth=b;if(j>b||(e&&n)){var l=this.container.items.items,h=l.length,d=0,o;for(var g=0;gm){if(!(o.hidden||o.xtbHidden)){this.hideItem(o)}}else{if(o.xtbHidden){this.unhideItem(o)}}}}}e=c.length!=0;if(e){this.initMore();if(!this.lastOverflow){this.container.fireEvent("overflowchange",this.container,true);this.lastOverflow=true}}else{if(this.more){this.clearMenu();this.more.destroy();delete this.more;if(this.lastOverflow){this.container.fireEvent("overflowchange",this.container,false);this.lastOverflow=false}}}},createMenuConfig:function(c,a){var b=Ext.apply({},c.initialConfig),d=c.toggleGroup;Ext.copyTo(b,c,["iconCls","icon","itemId","disabled","handler","scope","menu"]);Ext.apply(b,{text:c.overflowText||c.text,hideOnClick:a});if(d||c.enableToggle){Ext.apply(b,{group:d,checked:c.pressed,listeners:{checkchange:function(g,e){c.toggle(e)}}})}delete b.ownerCt;delete b.xtype;delete b.id;return b},addComponentToMenu:function(b,a){if(a instanceof Ext.Toolbar.Separator){b.add("-")}else{if(Ext.isFunction(a.isXType)){if(a.isXType("splitbutton")){b.add(this.createMenuConfig(a,true))}else{if(a.isXType("button")){b.add(this.createMenuConfig(a,!a.menu))}else{if(a.isXType("buttongroup")){a.items.each(function(c){this.addComponentToMenu(b,c)},this)}}}}}},clearMenu:function(){var a=this.moreMenu;if(a&&a.items){a.items.each(function(b){delete b.menu})}},beforeMoreShow:function(h){var b=this.container.items.items,a=b.length,g,e;var c=function(j,i){return j.isXType("buttongroup")&&!(i instanceof Ext.Toolbar.Separator)};this.clearMenu();h.removeAll();for(var d=0;d','','{altText}',"","")}if(g&&!g.rendered){if(Ext.isNumber(b)){b=e.dom.childNodes[b]}var d=this.getItemArgs(g);g.render(g.positionEl=b?this.itemTpl.insertBefore(b,d,true):this.itemTpl.append(e,d,true));g.positionEl.menuItemId=g.getItemId();if(!d.isMenuItem&&d.needsIcon){g.positionEl.addClass("x-menu-list-item-indent")}this.configureItem(g)}else{if(g&&!this.isValidParent(g,e)){if(Ext.isNumber(b)){b=e.dom.childNodes[b]}e.dom.insertBefore(g.getActionEl().dom,b||null)}}},getItemArgs:function(d){var a=d instanceof Ext.menu.Item,b=!(a||d instanceof Ext.menu.Separator);return{isMenuItem:a,needsIcon:b&&(d.icon||d.iconCls),icon:d.icon||Ext.BLANK_IMAGE_URL,iconCls:"x-menu-item-icon "+(d.iconCls||""),itemId:"x-menu-el-"+d.id,itemCls:"x-menu-list-item ",altText:d.altText||""}},isValidParent:function(b,a){return b.el.up("li.x-menu-list-item",5).dom.parentNode===(a.dom||a)},onLayout:function(a,b){Ext.layout.MenuLayout.superclass.onLayout.call(this,a,b);this.doAutoSize()},doAutoSize:function(){var c=this.container,a=c.width;if(c.floating){if(a){c.setWidth(a)}else{if(Ext.isIE9m){c.setWidth(Ext.isStrict&&(Ext.isIE7||Ext.isIE8||Ext.isIE9)?"auto":c.minWidth);var d=c.getEl(),b=d.dom.offsetWidth;c.setWidth(c.getLayoutTarget().getWidth()+d.getFrameWidth("lr"))}}}}});Ext.Container.LAYOUTS.menu=Ext.layout.MenuLayout;Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(a,b){this.fireEvent("resize",this,a,b,a,b)}});Ext.reg("viewport",Ext.Viewport);Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",preventBodyReset:false,padding:undefined,resizeEvent:"bodyresize",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:true,expandDefaults:{duration:0.25},collapseDefaults:{duration:0.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","iconchange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.unstyled){this.baseCls="x-plain"}this.toolbars=[];if(this.tbar){this.elements+=",tbar";this.topToolbar=this.createToolbar(this.tbar);this.tbar=null}if(this.bbar){this.elements+=",bbar";this.bottomToolbar=this.createToolbar(this.bbar);this.bbar=null}if(this.header===true){this.elements+=",header";this.header=null}else{if(this.headerCfg||(this.title&&this.header!==false)){this.elements+=",header"}}if(this.footerCfg||this.footer===true){this.elements+=",footer";this.footer=null}if(this.buttons){this.fbar=this.buttons;this.buttons=null}if(this.fbar){this.createFbar(this.fbar)}if(this.autoLoad){this.on("render",this.doAutoLoad,this,{delay:10})}},createFbar:function(b){var a=this.minButtonWidth;this.elements+=",footer";this.fbar=this.createToolbar(b,{buttonAlign:this.buttonAlign,toolbarCls:"x-panel-fbar",enableOverflow:false,defaults:function(d){return{minWidth:d.minWidth||a}}});this.fbar.items.each(function(d){d.minWidth=d.minWidth||this.minButtonWidth},this);this.buttons=this.fbar.items.items},createToolbar:function(b,c){var a;if(Ext.isArray(b)){b={items:b}}a=b.events?Ext.apply(b,c):this.createComponent(Ext.apply({},b,c),"toolbar");this.toolbars.push(a);return a},createElement:function(a,c){if(this[a]){c.appendChild(this[a].dom);return}if(a==="bwrap"||this.elements.indexOf(a)!=-1){if(this[a+"Cfg"]){this[a]=Ext.fly(c).createChild(this[a+"Cfg"])}else{var b=document.createElement("div");b.className=this[a+"Cls"];this[a]=Ext.get(c.appendChild(b))}if(this[a+"CssClass"]){this[a].addClass(this[a+"CssClass"])}if(this[a+"Style"]){this[a].applyStyles(this[a+"Style"])}}},onRender:function(g,e){Ext.Panel.superclass.onRender.call(this,g,e);this.createClasses();var a=this.el,h=a.dom,k,i;if(this.collapsible&&!this.hideCollapseTool){this.tools=this.tools?this.tools.slice(0):[];this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.tools){i=this.tools;this.elements+=(this.header!==false)?",header":""}this.tools={};a.addClass(this.baseCls);if(h.firstChild){this.header=a.down("."+this.headerCls);this.bwrap=a.down("."+this.bwrapCls);var j=this.bwrap?this.bwrap:a;this.tbar=j.down("."+this.tbarCls);this.body=j.down("."+this.bodyCls);this.bbar=j.down("."+this.bbarCls);this.footer=j.down("."+this.footerCls);this.fromMarkup=true}if(this.preventBodyReset===true){a.addClass("x-panel-reset")}if(this.cls){a.addClass(this.cls)}if(this.buttons){this.elements+=",footer"}if(this.frame){a.insertHtml("afterBegin",String.format(Ext.Element.boxMarkup,this.baseCls));this.createElement("header",h.firstChild.firstChild.firstChild);this.createElement("bwrap",h);k=this.bwrap.dom;var c=h.childNodes[1],b=h.childNodes[2];k.appendChild(c);k.appendChild(b);var l=k.firstChild.firstChild.firstChild;this.createElement("tbar",l);this.createElement("body",l);this.createElement("bbar",l);this.createElement("footer",k.lastChild.firstChild.firstChild);if(!this.footer){this.bwrap.dom.lastChild.className+=" x-panel-nofooter"}this.ft=Ext.get(this.bwrap.dom.lastChild);this.mc=Ext.get(l)}else{this.createElement("header",h);this.createElement("bwrap",h);k=this.bwrap.dom;this.createElement("tbar",k);this.createElement("body",k);this.createElement("bbar",k);this.createElement("footer",k);if(!this.header){this.body.addClass(this.bodyCls+"-noheader");if(this.tbar){this.tbar.addClass(this.tbarCls+"-noheader")}}}if(Ext.isDefined(this.padding)){this.body.setStyle("padding",this.body.addUnits(this.padding))}if(this.border===false){this.el.addClass(this.baseCls+"-noborder");this.body.addClass(this.bodyCls+"-noborder");if(this.header){this.header.addClass(this.headerCls+"-noborder")}if(this.footer){this.footer.addClass(this.footerCls+"-noborder")}if(this.tbar){this.tbar.addClass(this.tbarCls+"-noborder")}if(this.bbar){this.bbar.addClass(this.bbarCls+"-noborder")}}if(this.bodyBorder===false){this.body.addClass(this.bodyCls+"-noborder")}this.bwrap.enableDisplayMode("block");if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML=''+this.header.dom.innerHTML+"";if(this.iconCls){this.setIconClass(this.iconCls)}}}if(this.floating){this.makeFloating(this.floating)}if(this.collapsible&&this.titleCollapse&&this.header){this.mon(this.header,"click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}if(i){this.addTool.apply(this,i)}if(this.fbar){this.footer.addClass("x-panel-btns");this.fbar.ownerCt=this;this.fbar.render(this.footer);this.footer.createChild({cls:"x-clear"})}if(this.tbar&&this.topToolbar){this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar)}if(this.bbar&&this.bottomToolbar){this.bottomToolbar.ownerCt=this;this.bottomToolbar.render(this.bbar)}},setIconClass:function(b){var a=this.iconCls;this.iconCls=b;if(this.rendered&&this.header){if(this.frame){this.header.addClass("x-panel-icon");this.header.replaceClass(a,this.iconCls)}else{var e=this.header,c=e.child("img.x-panel-inline-icon");if(c){Ext.fly(c).replaceClass(a,this.iconCls)}else{var d=e.child("span."+this.headerTextCls);if(d){Ext.DomHelper.insertBefore(d.dom,{tag:"img",alt:"",src:Ext.BLANK_IMAGE_URL,cls:"x-panel-inline-icon "+this.iconCls})}}}}this.fireEvent("iconchange",this,b,a)},makeFloating:function(a){this.floating=true;this.el=new Ext.Layer(Ext.apply({},a,{shadow:Ext.isDefined(this.shadow)?this.shadow:"sides",shadowOffset:this.shadowOffset,constrain:false,shim:this.shim===false?false:undefined}),this.el)},getTopToolbar:function(){return this.topToolbar},getBottomToolbar:function(){return this.bottomToolbar},getFooterToolbar:function(){return this.fbar},addButton:function(a,c,b){if(!this.fbar){this.createFbar([])}if(c){if(Ext.isString(a)){a={text:a}}a=Ext.apply({handler:c,scope:b},a)}return this.fbar.add(a)},addTool:function(){if(!this.rendered){if(!this.tools){this.tools=[]}Ext.each(arguments,function(a){this.tools.push(a)},this);return}if(!this[this.toolTarget]){return}if(!this.toolTemplate){var h=new Ext.Template('
     
    ');h.disableFormats=true;h.compile();Ext.Panel.prototype.toolTemplate=h}for(var g=0,d=arguments,c=d.length;g0){Ext.each(this.toolbars,function(c){c.doLayout(undefined,a)});this.syncHeight()}},syncHeight:function(){var b=this.toolbarHeight,c=this.body,a=this.lastSize.height,d;if(this.autoHeight||!Ext.isDefined(a)||a=="auto"){return}if(b!=this.getToolbarHeight()){b=Math.max(0,a-this.getFrameHeight());c.setHeight(b);d=c.getSize();this.toolbarHeight=this.getToolbarHeight();this.onBodyResize(d.width,d.height)}},onShow:function(){if(this.floating){return this.el.show()}Ext.Panel.superclass.onShow.call(this)},onHide:function(){if(this.floating){return this.el.hide()}Ext.Panel.superclass.onHide.call(this)},createToolHandler:function(c,a,d,b){return function(g){c.removeClass(d);if(a.stopEvent!==false){g.stopEvent()}if(a.handler){a.handler.call(a.scope||c,g,c,b,a)}}},afterRender:function(){if(this.floating&&!this.hidden){this.el.show()}if(this.title){this.setTitle(this.title)}Ext.Panel.superclass.afterRender.call(this);if(this.collapsed){this.collapsed=false;this.collapse(false)}this.initEvents()},getKeyMap:function(){if(!this.keyMap){this.keyMap=new Ext.KeyMap(this.el,this.keys)}return this.keyMap},initEvents:function(){if(this.keys){this.getKeyMap()}if(this.draggable){this.initDraggable()}if(this.toolbars.length>0){Ext.each(this.toolbars,function(a){a.doLayout();a.on({scope:this,afterlayout:this.syncHeight,remove:this.syncHeight})},this);this.syncHeight()}},initDraggable:function(){this.dd=new Ext.Panel.DD(this,Ext.isBoolean(this.draggable)?null:this.draggable)},beforeEffect:function(a){if(this.floating){this.el.beforeAction()}if(a!==false){this.el.addClass("x-panel-animated")}},afterEffect:function(a){this.syncShadow();this.el.removeClass("x-panel-animated")},createEffect:function(c,b,d){var e={scope:d,block:true};if(c===true){e.callback=b;return e}else{if(!c.callback){e.callback=b}else{e.callback=function(){b.call(d);Ext.callback(c.callback,c.scope)}}}return Ext.applyIf(e,c)},collapse:function(b){if(this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforecollapse",this,b)===false){return}var a=b===true||(b!==false&&this.animCollapse);this.beforeEffect(a);this.onCollapse(a,b);return this},onCollapse:function(a,b){if(a){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterCollapse,this),this.collapseDefaults))}else{this[this.collapseEl].hide(this.hideMode);this.afterCollapse(false)}},afterCollapse:function(a){this.collapsed=true;this.el.addClass(this.collapsedCls);if(a!==false){this[this.collapseEl].hide(this.hideMode)}this.afterEffect(a);this.cascade(function(b){if(b.lastSize){b.lastSize={width:undefined,height:undefined}}});this.fireEvent("collapse",this)},expand:function(b){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforeexpand",this,b)===false){return}var a=b===true||(b!==false&&this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect(a);this.onExpand(a,b);return this},onExpand:function(a,b){if(a){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterExpand,this),this.expandDefaults))}else{this[this.collapseEl].show(this.hideMode);this.afterExpand(false)}},afterExpand:function(a){this.collapsed=false;if(a!==false){this[this.collapseEl].show(this.hideMode)}this.afterEffect(a);if(this.deferLayout){delete this.deferLayout;this.doLayout(true)}this.fireEvent("expand",this)},toggleCollapse:function(a){this[this.collapsed?"expand":"collapse"](a);return this},onDisable:function(){if(this.rendered&&this.maskDisabled){this.el.mask()}Ext.Panel.superclass.onDisable.call(this)},onEnable:function(){if(this.rendered&&this.maskDisabled){this.el.unmask()}Ext.Panel.superclass.onEnable.call(this)},onResize:function(g,d,c,e){var a=g,b=d;if(Ext.isDefined(a)||Ext.isDefined(b)){if(!this.collapsed){if(Ext.isNumber(a)){this.body.setWidth(a=this.adjustBodyWidth(a-this.getFrameWidth()))}else{if(a=="auto"){a=this.body.setWidth("auto").dom.offsetWidth}else{a=this.body.dom.offsetWidth}}if(this.tbar){this.tbar.setWidth(a);if(this.topToolbar){this.topToolbar.setSize(a)}}if(this.bbar){this.bbar.setWidth(a);if(this.bottomToolbar){this.bottomToolbar.setSize(a);if(Ext.isIE9m){this.bbar.setStyle("position","static");this.bbar.setStyle("position","")}}}if(this.footer){this.footer.setWidth(a);if(this.fbar){this.fbar.setSize(Ext.isIE9m?(a-this.footer.getFrameWidth("lr")):"auto")}}if(Ext.isNumber(b)){b=Math.max(0,b-this.getFrameHeight());this.body.setHeight(b)}else{if(b=="auto"){this.body.setHeight(b)}}if(this.disabled&&this.el._mask){this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight())}}else{this.queuedBodySize={width:a,height:b};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on("expand",function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height)},this,{single:true})}}this.onBodyResize(a,b)}this.syncShadow();Ext.Panel.superclass.onResize.call(this,g,d,c,e)},onBodyResize:function(a,b){this.fireEvent("bodyresize",this,a,b)},getToolbarHeight:function(){var a=0;if(this.rendered){Ext.each(this.toolbars,function(b){a+=b.getHeight()},this)}return a},adjustBodyHeight:function(a){return a},adjustBodyWidth:function(a){return a},onPosition:function(){this.syncShadow()},getFrameWidth:function(){var b=this.el.getFrameWidth("lr")+this.bwrap.getFrameWidth("lr");if(this.frame){var a=this.bwrap.dom.firstChild;b+=(Ext.fly(a).getFrameWidth("l")+Ext.fly(a.firstChild).getFrameWidth("r"));b+=this.mc.getFrameWidth("lr")}return b},getFrameHeight:function(){var a=this.el.getFrameWidth("tb")+this.bwrap.getFrameWidth("tb");a+=(this.tbar?this.tbar.getHeight():0)+(this.bbar?this.bbar.getHeight():0);if(this.frame){a+=this.el.dom.firstChild.offsetHeight+this.ft.dom.offsetHeight+this.mc.getFrameWidth("tb")}else{a+=(this.header?this.header.getHeight():0)+(this.footer?this.footer.getHeight():0)}return a},getInnerWidth:function(){return this.getSize().width-this.getFrameWidth()},getInnerHeight:function(){return this.body.getHeight()},syncShadow:function(){if(this.floating){this.el.sync(true)}},getLayoutTarget:function(){return this.body},getContentTarget:function(){return this.body},setTitle:function(b,a){this.title=b;if(this.header&&this.headerAsText){this.header.child("span").update(b)}if(a){this.setIconClass(a)}this.fireEvent("titlechange",this,b);return this},getUpdater:function(){return this.body.getUpdater()},load:function(){var a=this.body.getUpdater();a.update.apply(a,arguments);return this},beforeDestroy:function(){Ext.Panel.superclass.beforeDestroy.call(this);if(this.header){this.header.removeAllListeners()}if(this.tools){for(var a in this.tools){Ext.destroy(this.tools[a])}}if(this.toolbars.length>0){Ext.each(this.toolbars,function(b){b.un("afterlayout",this.syncHeight,this);b.un("remove",this.syncHeight,this)},this)}if(Ext.isArray(this.buttons)){while(this.buttons.length){Ext.destroy(this.buttons[0])}}if(this.rendered){Ext.destroy(this.ft,this.header,this.footer,this.tbar,this.bbar,this.body,this.mc,this.bwrap,this.dd);if(this.fbar){Ext.destroy(this.fbar,this.fbar.el)}}Ext.destroy(this.toolbars)},createClasses:function(){this.headerCls=this.baseCls+"-header";this.headerTextCls=this.baseCls+"-header-text";this.bwrapCls=this.baseCls+"-bwrap";this.tbarCls=this.baseCls+"-tbar";this.bodyCls=this.baseCls+"-body";this.bbarCls=this.baseCls+"-bbar";this.footerCls=this.baseCls+"-footer"},createGhost:function(a,e,b){var d=document.createElement("div");d.className="x-panel-ghost "+(a?a:"");if(this.header){d.appendChild(this.el.dom.firstChild.cloneNode(true))}Ext.fly(d.appendChild(document.createElement("ul"))).setHeight(this.bwrap.getHeight());d.style.width=this.el.dom.offsetWidth+"px";if(!b){this.container.dom.appendChild(d)}else{Ext.getDom(b).appendChild(d)}if(e!==false&&this.el.useShim!==false){var c=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},d);c.show();return c}else{return new Ext.Element(d)}},doAutoLoad:function(){var a=this.body.getUpdater();if(this.renderer){a.setRenderer(this.renderer)}a.update(Ext.isObject(this.autoLoad)?this.autoLoad:{url:this.autoLoad})},getTool:function(a){return this.tools[a]}});Ext.reg("panel",Ext.Panel);Ext.Editor=function(b,a){if(b.field){this.field=Ext.create(b.field,"textfield");a=Ext.apply({},b);delete a.field}else{this.field=b}Ext.Editor.superclass.constructor.call(this,a)};Ext.extend(Ext.Editor,Ext.Component,{allowBlur:true,value:"",alignment:"c-c?",offsets:[0,0],shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:true,cancelOnEsc:true,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onRender:function(b,a){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:b,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex){this.el.setZIndex(this.zIndex)}this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title"){this.field.msgTarget="qtip"}this.field.inEditor=true;this.mon(this.field,{scope:this,blur:this.onBlur,specialkey:this.onSpecialKey});if(this.field.grow){this.mon(this.field,"autosize",this.el.sync,this.el,{delay:1})}this.field.render(this.el).show();this.field.getEl().dom.name="";if(this.swallowKeys){this.field.el.swallowEvent(["keypress","keydown"])}},onSpecialKey:function(g,d){var b=d.getKey(),a=this.completeOnEnter&&b==d.ENTER,c=this.cancelOnEsc&&b==d.ESC;if(a||c){d.stopEvent();if(a){this.completeEdit()}else{this.cancelEdit()}if(g.triggerBlur){g.triggerBlur()}}this.fireEvent("specialkey",g,d)},startEdit:function(b,c){if(this.editing){this.completeEdit()}this.boundEl=Ext.get(b);var a=c!==undefined?c:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body)}if(this.fireEvent("beforestartedit",this,this.boundEl,a)!==false){this.startValue=a;this.field.reset();this.field.setValue(a);this.realign(true);this.editing=true;this.show()}},doAutoSize:function(){if(this.autoSize){var b=this.boundEl.getSize(),a=this.field.getSize();switch(this.autoSize){case"width":this.setSize(b.width,a.height);break;case"height":this.setSize(a.width,b.height);break;case"none":this.setSize(a.width,a.height);break;default:this.setSize(b.width,b.height)}}},setSize:function(a,b){delete this.field.lastSize;this.field.setSize(a,b);if(this.el){if(Ext.isGecko2||Ext.isOpera||(Ext.isIE7&&Ext.isStrict)){this.el.setSize(a,b)}this.el.sync()}},realign:function(a){if(a===true){this.doAutoSize()}this.el.alignTo(this.boundEl,this.alignment,this.offsets)},completeEdit:function(a){if(!this.editing){return}if(this.field.assertValue){this.field.assertValue()}var b=this.getValue();if(!this.field.isValid()){if(this.revertInvalid!==false){this.cancelEdit(a)}return}if(String(b)===String(this.startValue)&&this.ignoreNoChange){this.hideEdit(a);return}if(this.fireEvent("beforecomplete",this,b,this.startValue)!==false){b=this.getValue();if(this.updateEl&&this.boundEl){this.boundEl.update(b)}this.hideEdit(a);this.fireEvent("complete",this,b,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide()}this.field.show().focus(false,true);this.fireEvent("startedit",this.boundEl,this.startValue)},cancelEdit:function(a){if(this.editing){var b=this.getValue();this.setValue(this.startValue);this.hideEdit(a);this.fireEvent("canceledit",this,b,this.startValue)}},hideEdit:function(a){if(a!==true){this.editing=false;this.hide()}},onBlur:function(){if(this.allowBlur===true&&this.editing&&this.selectSameEditor!==true){this.completeEdit()}},onHide:function(){if(this.editing){this.completeEdit();return}this.field.blur();if(this.field.collapse){this.field.collapse()}this.el.hide();if(this.hideEl!==false){this.boundEl.show()}},setValue:function(a){this.field.setValue(a)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){Ext.destroyMembers(this,"field");delete this.parentEl;delete this.boundEl}});Ext.reg("editor",Ext.Editor);Ext.ColorPalette=Ext.extend(Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],initComponent:function(){Ext.ColorPalette.superclass.initComponent.call(this);this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope,true)}},onRender:function(b,a){this.autoEl={tag:"div",cls:this.itemCls};Ext.ColorPalette.superclass.onRender.call(this,b,a);var c=this.tpl||new Ext.XTemplate(' ');c.overwrite(this.el,this.colors);this.mon(this.el,this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click"){this.mon(this.el,"click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var a=this.value;this.value=null;this.select(a,true)}},handleClick:function(b,a){b.preventDefault();if(!this.disabled){var d=a.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(d.toUpperCase())}},select:function(b,a){b=b.replace("#","");if(b!=this.value||this.allowReselect){var c=this.el;if(this.value){c.child("a.color-"+this.value).removeClass("x-color-palette-sel")}c.child("a.color-"+b).addClass("x-color-palette-sel");this.value=b;if(a!==true){this.fireEvent("select",this,b)}}}});Ext.reg("colorpalette",Ext.ColorPalette);Ext.DatePicker=Ext.extend(Ext.BoxComponent,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,focusOnSelect:true,initHour:12,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime(true):new Date().clearTime();this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope||this)}this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a){c+="|"}},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){if(Ext.isArray(a)){this.disabledDates=a;this.disabledDatesRE=null}else{this.disabledDatesRE=a}this.initDisabledDays();this.update(this.value,true)},setDisabledDays:function(a){this.disabledDays=a;this.update(this.value,true)},setMinDate:function(a){this.minDate=a;this.update(this.value,true)},setMaxDate:function(a){this.maxDate=a;this.update(this.value,true)},setValue:function(a){this.value=a.clearTime(true);this.update(this.value)},getValue:function(){return this.value},focus:function(){this.update(this.activeDate)},onEnable:function(a){Ext.DatePicker.superclass.onEnable.call(this);this.doDisabled(false);this.update(a?this.value:this.activeDate);if(Ext.isIE9m){this.el.repaint()}},onDisable:function(){Ext.DatePicker.superclass.onDisable.call(this);this.doDisabled(true);if(Ext.isIE9m&&!Ext.isIE8){Ext.each([].concat(this.textNodes,this.el.query("th span")),function(a){Ext.fly(a).repaint()})}},doDisabled:function(a){this.keyNav.setDisabled(a);this.prevRepeater.setDisabled(a);this.nextRepeater.setDisabled(a);if(this.showToday){this.todayKeyListener.setDisabled(a);this.todayBtn.setDisabled(a)}},onRender:function(e,b){var a=['','','",this.showToday?'':"",'
      
    '],c=this.dayNames,h;for(h=0;h<7;h++){var k=this.startDay+h;if(k>6){k=k-7}a.push("")}a[a.length]="";for(h=0;h<42;h++){if(h%7===0&&h!==0){a[a.length]=""}a[a.length]=''}a.push("
    ",c[k].substr(0,1),"
    ');var j=document.createElement("div");j.className="x-date-picker";j.innerHTML=a.join("");e.dom.insertBefore(j,b);this.el=Ext.get(j);this.eventEl=Ext.get(j.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.nextRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(d.ctrlKey){this.showPrevMonth()}else{this.update(this.activeDate.add("d",-1))}},right:function(d){if(d.ctrlKey){this.showNextMonth()}else{this.update(this.activeDate.add("d",1))}},up:function(d){if(d.ctrlKey){this.showNextYear()}else{this.update(this.activeDate.add("d",-7))}},down:function(d){if(d.ctrlKey){this.showPrevYear()}else{this.update(this.activeDate.add("d",7))}},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();return true},scope:this});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.el.child("em").addClass("x-btn-arrow");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var g=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,g),tooltip:String.format(this.todayTip,g),handler:this.selectToday,scope:this})}this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.mon(this.mbtn,"click",this.showMonthPicker,this);this.onEnable(true)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var a=[''];for(var b=0;b<6;b++){a.push('",'",b===0?'':'')}a.push('","
    ',Date.getShortMonthName(b),"',Date.getShortMonthName(b+6),"
    ");this.monthPicker.update(a.join(""));this.mon(this.monthPicker,"click",this.onMonthClick,this);this.mon(this.monthPicker,"dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(c,d,e){e+=1;if((e%2)===0){c.dom.xmonth=5+Math.round(e*0.5)}else{c.dom.xmonth=Math.round((e-1)*0.5)}})}},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var a=this.el.getSize();this.monthPicker.setSize(a);this.monthPicker.child("table").setSize(a);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})}},updateMPYear:function(e){this.mpyear=e;var c=this.mpYears.elements;for(var b=1;b<=10;b++){var d=c[b-1],a;if((b%2)===0){a=e+Math.round(b*0.5);d.firstChild.innerHTML=a;d.xyear=a}else{a=e-(5-Math.round(b*0.5));d.firstChild.innerHTML=a;d.xyear=a}this.mpYears.item(b-1)[a==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(a){this.mpMonths.each(function(b,c,d){b[b.dom.xmonth==a?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(a){},onMonthClick:function(g,b){g.stopEvent();var c=new Ext.Element(b),a;if(c.is("button.x-date-mp-cancel")){this.hideMonthPicker()}else{if(c.is("button.x-date-mp-ok")){var h=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(h.getMonth()!=this.mpSelMonth){h=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth()}this.update(h);this.hideMonthPicker()}else{if((a=c.up("td.x-date-mp-month",2))){this.mpMonths.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelMonth=a.dom.xmonth}else{if((a=c.up("td.x-date-mp-year",2))){this.mpYears.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelYear=a.dom.xyear}else{if(c.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10)}else{if(c.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10)}}}}}}},onMonthDblClick:function(d,b){d.stopEvent();var c=new Ext.Element(b),a;if((a=c.up("td.x-date-mp-month",2))){this.update(new Date(this.mpSelYear,a.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if((a=c.up("td.x-date-mp-year",2))){this.update(new Date(a.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}}},hideMonthPicker:function(a){if(this.monthPicker){if(a===true){this.monthPicker.hide()}else{this.monthPicker.slideOut("t",{duration:0.2})}}},showPrevMonth:function(a){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(a){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(a){a.stopEvent();if(!this.disabled){var b=a.getWheelDelta();if(b>0){this.showPrevMonth()}else{if(b<0){this.showNextMonth()}}}},handleDateClick:function(b,a){b.stopEvent();if(!this.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasClass("x-date-disabled")){this.cancelFocus=this.focusOnSelect===false;this.setValue(new Date(a.dateValue));delete this.cancelFocus;this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value)}},update:function(G,A){if(this.rendered){var a=this.activeDate,p=this.isVisible();this.activeDate=G;if(!A&&a&&this.el){var o=G.getTime();if(a.getMonth()==G.getMonth()&&a.getFullYear()==G.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(d){if(d.dom.firstChild.dateValue==o){d.addClass("x-date-selected");if(p&&!this.cancelFocus){Ext.fly(d.dom.firstChild).focus(50)}return false}},this);return}}var k=G.getDaysInMonth(),q=G.getFirstDateOfMonth(),g=q.getDay()-this.startDay;if(g<0){g+=7}k+=g;var B=G.add("mo",-1),h=B.getDaysInMonth()-g,e=this.cells.elements,r=this.textNodes,D=(new Date(B.getFullYear(),B.getMonth(),h,this.initHour)),C=new Date().clearTime().getTime(),v=G.clearTime(true).getTime(),u=this.minDate?this.minDate.clearTime(true):Number.NEGATIVE_INFINITY,y=this.maxDate?this.maxDate.clearTime(true):Number.POSITIVE_INFINITY,F=this.disabledDatesRE,s=this.disabledDatesText,I=this.disabledDays?this.disabledDays.join(""):false,E=this.disabledDaysText,z=this.format;if(this.showToday){var m=new Date().clearTime(),c=(my||(F&&z&&F.test(m.dateFormat(z)))||(I&&I.indexOf(m.getDay())!=-1));if(!this.disabled){this.todayBtn.setDisabled(c);this.todayKeyListener[c?"disable":"enable"]()}}var l=function(J,d){d.title="";var i=D.clearTime(true).getTime();d.firstChild.dateValue=i;if(i==C){d.className+=" x-date-today";d.title=J.todayText}if(i==v){d.className+=" x-date-selected";if(p){Ext.fly(d.firstChild).focus(50)}}if(iy){d.className=" x-date-disabled";d.title=J.maxText;return}if(I){if(I.indexOf(D.getDay())!=-1){d.title=E;d.className=" x-date-disabled"}}if(F&&z){var w=D.dateFormat(z);if(F.test(w)){d.title=s.replace("%0",w);d.className=" x-date-disabled"}}};var x=0;for(;x=a.value){d=a.value}}c.setValue(b,d,false);c.fireEvent("drag",c,g,this)},getNewValue:function(){var a=this.slider,b=a.innerEl.translatePoints(this.tracker.getXY());return Ext.util.Format.round(a.reverseValue(b.left),a.decimalPrecision)},onDragEnd:function(c){var a=this.slider,b=this.value;this.el.removeClass("x-slider-thumb-drag");this.dragging=false;a.fireEvent("dragend",a,c);if(this.dragStartValue!=b){a.fireEvent("changecomplete",a,b,this)}},destroy:function(){Ext.destroyMembers(this,"tracker","el")}});Ext.slider.MultiSlider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,constrainThumbs:true,topThumbZIndex:10000,initComponent:function(){if(!Ext.isDefined(this.value)){this.value=this.minValue}this.thumbs=[];Ext.slider.MultiSlider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(this.values==undefined||Ext.isEmpty(this.values)){this.values=[0]}var a=this.values;for(var b=0;bthis.clickRange[0]&&c.top=c){d+=c}else{if(a*2<-c){d-=c}}}return d.constrain(this.minValue,this.maxValue)},afterRender:function(){Ext.slider.MultiSlider.superclass.afterRender.apply(this,arguments);for(var c=0;ce?e:c.value}this.syncThumb()},setValue:function(d,c,b,g){var a=this.thumbs[d],e=a.el;c=this.normalizeValue(c);if(c!==a.value&&this.fireEvent("beforechange",this,c,a.value,a)!==false){a.value=c;if(this.rendered){this.moveThumb(d,this.translateValue(c),b!==false);this.fireEvent("change",this,c,a);if(g){this.fireEvent("changecomplete",this,c,a)}}}},translateValue:function(a){var b=this.getRatio();return(a*b)-(this.minValue*b)-this.halfThumb},reverseValue:function(b){var a=this.getRatio();return(b+(this.minValue*a))/a},moveThumb:function(d,c,b){var a=this.thumbs[d].el;if(!b||this.animate===false){a.setLeft(c)}else{a.shift({left:c,stopFx:true,duration:0.35})}},focus:function(){this.focusEl.focus(10)},onResize:function(c,e){var b=this.thumbs,a=b.length,d=0;for(;dthis.clickRange[0]&&c.left','
    ','
    ','
    ',"
     
    ","
    ","
    ",'
    ',"
     
    ","
    ","
    ","");this.el=a?c.insertBefore(a,{cls:this.baseCls},true):c.append(d,{cls:this.baseCls},true);if(this.id){this.el.dom.id=this.id}var b=this.el.dom.firstChild;this.progressBar=Ext.get(b.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var e=Ext.get(b.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,e.dom.firstChild]);this.textEl.setWidth(b.offsetWidth)}this.progressBar.setHeight(b.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value){this.updateProgress(this.value,this.text)}else{this.updateText(this.text)}},updateProgress:function(c,d,b){this.value=c||0;if(d){this.updateText(d)}if(this.rendered&&!this.isDestroyed){var a=Math.floor(c*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(a,b===true||(b!==false&&this.animate));if(this.textTopEl){this.textTopEl.removeClass("x-hidden").setWidth(a)}}this.fireEvent("update",this,c,d);return this},wait:function(b){if(!this.waitTimer){var a=this;b=b||{};this.updateText(b.text);this.waitTimer=Ext.TaskMgr.start({run:function(c){var d=b.increment||10;c-=1;this.updateProgress(((((c+d)%d)+1)*(100/d))*0.01,null,b.animate)},interval:b.interval||1000,duration:b.duration,onStop:function(){if(b.fn){b.fn.apply(b.scope||this)}this.reset()},scope:a})}return this},isWaiting:function(){return this.waitTimer!==null},updateText:function(a){this.text=a||" ";if(this.rendered){this.textEl.update(this.text)}return this},syncProgressBar:function(){if(this.value){this.updateProgress(this.value,this.text)}return this},setSize:function(a,c){Ext.ProgressBar.superclass.setSize.call(this,a,c);if(this.textTopEl){var b=this.el.dom.firstChild;this.textEl.setSize(b.offsetWidth,b.offsetHeight)}this.syncProgressBar();return this},reset:function(a){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass("x-hidden")}this.clearTimer();if(a===true){this.hide()}return this},clearTimer:function(){if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}},onDestroy:function(){this.clearTimer();if(this.rendered){if(this.textEl.isComposite){this.textEl.clear()}Ext.destroyMembers(this,"textEl","progressBar","textTopEl")}Ext.ProgressBar.superclass.onDestroy.call(this)}});Ext.reg("progress",Ext.ProgressBar);(function(){var a=Ext.EventManager;var b=Ext.lib.Dom;Ext.dd.DragDrop=function(e,c,d){if(e){this.init(e,c,d)}};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(c,d){},startDrag:function(c,d){},b4Drag:function(c){},onDrag:function(c){},onDragEnter:function(c,d){},b4DragOver:function(c){},onDragOver:function(c,d){},b4DragOut:function(c){},onDragOut:function(c,d){},b4DragDrop:function(c){},onDragDrop:function(c,d){},onInvalidDrop:function(c){},b4EndDrag:function(c){},endDrag:function(c){},b4MouseDown:function(c){},onMouseDown:function(c){},onMouseUp:function(c){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(j,h,o){if(Ext.isNumber(h)){h={left:h,right:h,top:h,bottom:h}}h=h||this.defaultPadding;var l=Ext.get(this.getEl()).getBox(),d=Ext.get(j),n=d.getScroll(),k,e=d.dom;if(e==document.body){k={x:n.left,y:n.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()}}else{var m=d.getXY();k={x:m[0],y:m[1],width:e.clientWidth,height:e.clientHeight}}var i=l.y-k.y,g=l.x-k.x;this.resetConstraints();this.setXConstraint(g-(h.left||0),k.width-g-l.width-(h.right||0),this.xTickSize);this.setYConstraint(i-(h.top||0),k.height-i-l.height-(h.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(e,c,d){this.initTarget(e,c,d);a.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(e,c,d){this.config=d||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof e!=="string"){e=Ext.id(e)}this.id=e;this.addToGroup((c)?c:"default");this.handleElId=e;this.setDragElId(e);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(e,c,g,d){if(!c&&0!==c){this.padding=[e,e,e,e]}else{if(!g&&0!==g){this.padding=[e,c,e,c]}else{this.padding=[e,c,g,d]}}},setInitPosition:function(g,e){var h=this.getEl();if(!this.DDM.verifyEl(h)){return}var d=g||0;var c=e||0;var i=b.getXY(h);this.initPageX=i[0]-d;this.initPageY=i[1]-c;this.lastPageX=i[0];this.lastPageY=i[1];this.setStartPosition(i)},setStartPosition:function(d){var c=d||b.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=c[0];this.startPageY=c[1]},addToGroup:function(c){this.groups[c]=true;this.DDM.regDragDrop(this,c)},removeFromGroup:function(c){if(this.groups[c]){delete this.groups[c]}this.DDM.removeDDFromGroup(this,c)},setDragElId:function(c){this.dragElId=c},setHandleElId:function(c){if(typeof c!=="string"){c=Ext.id(c)}this.handleElId=c;this.DDM.regHandle(this.id,c)},setOuterHandleElId:function(c){if(typeof c!=="string"){c=Ext.id(c)}a.on(c,"mousedown",this.handleMouseDown,this);this.setHandleElId(c);this.hasOuterHandles=true},unreg:function(){a.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDM.isLocked()||this.locked)},handleMouseDown:function(g,d){if(this.primaryButtonOnly&&g.button!=0){return}if(this.isLocked()){return}this.DDM.refreshCache(this.groups);var c=new Ext.lib.Point(Ext.lib.Event.getPageX(g),Ext.lib.Event.getPageY(g));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(c,this)){}else{if(this.clickValidator(g)){this.setStartPosition();this.b4MouseDown(g);this.onMouseDown(g);this.DDM.handleMouseDown(g,this);if(this.preventDefault||this.stopPropagation){if(this.preventDefault){g.preventDefault()}if(this.stopPropagation){g.stopPropagation()}}else{this.DDM.stopEvent(g)}}else{}}},clickValidator:function(d){var c=d.getTarget();return(this.isValidHandleChild(c)&&(this.id==this.handleElId||this.DDM.handleWasClicked(c,this.id)))},addInvalidHandleType:function(c){var d=c.toUpperCase();this.invalidHandleTypes[d]=d},addInvalidHandleId:function(c){if(typeof c!=="string"){c=Ext.id(c)}this.invalidHandleIds[c]=c},addInvalidHandleClass:function(c){this.invalidHandleClasses.push(c)},removeInvalidHandleType:function(c){var d=c.toUpperCase();delete this.invalidHandleTypes[d]},removeInvalidHandleId:function(c){if(typeof c!=="string"){c=Ext.id(c)}delete this.invalidHandleIds[c]},removeInvalidHandleClass:function(d){for(var e=0,c=this.invalidHandleClasses.length;e=this.minX;d=d-c){if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}}for(d=this.initPageX;d<=this.maxX;d=d+c){if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(g,c){this.yTicks=[];this.yTickSize=c;var e={};for(var d=this.initPageY;d>=this.minY;d=d-c){if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}}for(d=this.initPageY;d<=this.maxY;d=d+c){if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(e,d,c){this.leftConstraint=e;this.rightConstraint=d;this.minX=this.initPageX-e;this.maxX=this.initPageX+d;if(c){this.setXTicks(this.initPageX,c)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(c,e,d){this.topConstraint=c;this.bottomConstraint=e;this.minY=this.initPageY-c;this.maxY=this.initPageY+e;if(d){this.setYTicks(this.initPageY,d)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var d=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var c=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(d,c)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(k,g){if(!g){return k}else{if(g[0]>=k){return g[0]}else{for(var d=0,c=g.length;d=k){var j=k-g[d];var h=g[e]-k;return(h>j)?g[d]:g[e]}}return g[g.length-1]}}},toString:function(){return("DragDrop "+this.id)}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var a=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,notifyOccluded:false,_execOnAll:function(d,c){for(var e in this.ids){for(var b in this.ids[e]){var g=this.ids[e][b];if(!this.isTypeOfDD(g)){continue}g[d].apply(g,c)}}},_onLoad:function(){this.init();a.on(document,"mouseup",this.handleMouseUp,this,true);a.on(document,"mousemove",this.handleMouseMove,this,true);a.on(window,"unload",this._onUnload,this,true);a.on(window,"resize",this._onResize,this,true)},_onResize:function(b){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(c,b){if(!this.initialized){this.init()}if(!this.ids[b]){this.ids[b]={}}this.ids[b][c.id]=c},removeDDFromGroup:function(d,b){if(!this.ids[b]){this.ids[b]={}}var c=this.ids[b];if(c&&c[d.id]){delete c[d.id]}},_remove:function(c){for(var b in c.groups){if(b&&this.ids[b]&&this.ids[b][c.id]){delete this.ids[b][c.id]}}delete this.handleIds[c.id]},regHandle:function(c,b){if(!this.handleIds[c]){this.handleIds[c]={}}this.handleIds[c][b]=b},isDragDrop:function(b){return(this.getDDById(b))?true:false},getRelated:function(h,c){var g=[];for(var e in h.groups){for(var d in this.ids[e]){var b=this.ids[e][d];if(!this.isTypeOfDD(b)){continue}if(!c||b.isTarget){g[g.length]=b}}}return g},isLegalTarget:function(g,e){var c=this.getRelated(g,true);for(var d=0,b=c.length;dthis.clickPixelThresh||b>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(d);this.dragCurrent.onDrag(d);if(!this.dragCurrent.moveOnly){this.fireEvents(d,false)}}this.stopEvent(d);return true},fireEvents:function(o,r){var q=this,l=q.dragCurrent,s=o.getPoint(),c,u,g=[],b=[],h=[],m=[],k=[],d=[],p,j,n,t;if(!l||l.isLocked()){return}for(j in q.dragOvers){c=q.dragOvers[j];if(!q.isTypeOfDD(c)){continue}if(!this.isOverTarget(s,c,q.mode)){h.push(c)}b[j]=true;delete q.dragOvers[j]}for(t in l.groups){if("string"!=typeof t){continue}for(j in q.ids[t]){c=q.ids[t][j];if(q.isTypeOfDD(c)&&(u=c.getEl())&&(c.isTarget)&&(!c.isLocked())&&((c!=l)||(l.ignoreSelf===false))){if((c.zIndex=q.getZIndex(u))!==-1){p=true}g.push(c)}}}if(p){g.sort(q.byZIndex)}for(j=0,n=g.length;j2000){}else{setTimeout(b._addListeners,10);if(document&&document.body){b._timeoutCount+=1}}}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id)){return true}else{var c=b.parentNode;while(c){if(this.isHandle(d,c.id)){return true}else{c=c.parentNode}}}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(c,a,b){if(c){this.init(c,a,b)}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(c,b){var a=c-this.startPageX;var d=b-this.startPageY;this.setDelta(a,d)},setDelta:function(b,a){this.deltaX=b;this.deltaY=a},setDragElPos:function(c,b){var a=this.getDragEl();this.alignElWithMouse(a,c,b)},alignElWithMouse:function(c,h,g){var e=this.getTargetCoord(h,g);var b=c.dom?c:Ext.fly(c,"_dd");if(!this.deltaSetXY){var i=[e.x,e.y];b.setXY(i);var d=b.getLeft(true);var a=b.getTop(true);this.deltaSetXY=[d-e.x,a-e.y]}else{b.setLeftTop(e.x+this.deltaSetXY[0],e.y+this.deltaSetXY[1])}this.cachePosition(e.x,e.y);this.autoScroll(e.x,e.y,c.offsetHeight,c.offsetWidth);return e},cachePosition:function(b,a){if(b){this.lastPageX=b;this.lastPageY=a}else{var c=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=c[0];this.lastPageY=c[1]}},autoScroll:function(l,k,e,m){if(this.scroll){var n=Ext.lib.Dom.getViewHeight();var b=Ext.lib.Dom.getViewWidth();var p=this.DDM.getScrollTop();var d=this.DDM.getScrollLeft();var j=e+k;var o=m+l;var i=(n+p-k-this.deltaY);var g=(b+d-l-this.deltaX);var c=40;var a=(document.all)?80:30;if(j>n&&i0&&k-pb&&g0&&l-dthis.maxX){a=this.maxX}}if(this.constrainY){if(dthis.maxY){d=this.maxY}}a=this.getTick(a,this.xTicks);d=this.getTick(d,this.yTicks);return{x:a,y:d}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false)},b4MouseDown:function(a){this.autoOffset(a.getPageX(),a.getPageY())},b4Drag:function(a){this.setDragElPos(a.getPageX(),a.getPageY())},toString:function(){return("DD "+this.id)}});Ext.dd.DDProxy=function(c,a,b){if(c){this.init(c,a,b);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var b=this;var a=document.body;if(!a||!a.firstChild){setTimeout(function(){b.createFrame()},50);return}var d=this.getDragEl();if(!d){d=document.createElement("div");d.id=this.dragElId;var c=d.style;c.position="absolute";c.visibility="hidden";c.cursor="move";c.border="2px solid #aaa";c.zIndex=999;a.insertBefore(d,a.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(e,d){var c=this.getEl();var a=this.getDragEl();var b=a.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(b.width,10)/2),Math.round(parseInt(b.height,10)/2))}this.setDragElPos(e,d);Ext.fly(a).show()},_resizeProxy:function(){if(this.resizeFrame){var a=this.getEl();Ext.fly(this.getDragEl()).setSize(a.offsetWidth,a.offsetHeight)}},b4MouseDown:function(b){var a=b.getPageX();var c=b.getPageY();this.autoOffset(a,c);this.setDragElPos(a,c)},b4StartDrag:function(a,b){this.showFrame(a,b)},b4EndDrag:function(a){Ext.fly(this.getDragEl()).hide()},endDrag:function(c){var b=this.getEl();var a=this.getDragEl();a.style.visibility="";this.beforeMove();b.style.visibility="hidden";Ext.dd.DDM.moveToEl(b,a);a.style.visibility="hidden";b.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.dd.DDTarget=function(c,a,b){if(c){this.initTarget(c,a,b)}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return("DDTarget "+this.id)}});Ext.dd.DragTracker=Ext.extend(Ext.util.Observable,{active:false,tolerance:5,autoStart:false,constructor:function(a){Ext.apply(this,a);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el)}Ext.dd.DragTracker.superclass.constructor.call(this,a)},initEl:function(a){this.el=Ext.get(a);a.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this);delete this.el},onMouseDown:function(b,a){if(this.fireEvent("mousedown",this,b)!==false&&this.onBeforeStart(b)!==false){this.startXY=this.lastXY=b.getXY();this.dragTarget=this.delegate?a:this.el.dom;if(this.preventDefault!==false){b.preventDefault()}Ext.getDoc().on({scope:this,mouseup:this.onMouseUp,mousemove:this.onMouseMove,selectstart:this.stopSelect});if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this,[b])}}},onMouseMove:function(g,d){var b=Ext.isIE6||Ext.isIE7||Ext.isIE8;if(this.active&&b&&!g.browserEvent.button){g.preventDefault();this.onMouseUp(g);return}g.preventDefault();var c=g.getXY(),a=this.startXY;this.lastXY=c;if(!this.active){if(Math.abs(a[0]-c[0])>this.tolerance||Math.abs(a[1]-c[1])>this.tolerance){this.triggerStart(g)}else{return}}this.fireEvent("mousemove",this,g);this.onDrag(g);this.fireEvent("drag",this,g)},onMouseUp:function(c){var b=Ext.getDoc(),a=this.active;b.un("mousemove",this.onMouseMove,this);b.un("mouseup",this.onMouseUp,this);b.un("selectstart",this.stopSelect,this);c.preventDefault();this.clearStart();this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,c);if(a){this.onEnd(c);this.fireEvent("dragend",this,c)}},triggerStart:function(a){this.clearStart();this.active=true;this.onStart(a);this.fireEvent("dragstart",this,a)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(a){a.stopEvent();return false},onBeforeStart:function(a){},onStart:function(a){},onDrag:function(a){},onEnd:function(a){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(a){return a?this.constrainModes[a].call(this,this.lastXY):this.lastXY},getOffset:function(c){var b=this.getXY(c),a=this.startXY;return[a[0]-b[0],a[1]-b[1]]},constrainModes:{point:function(b){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion()}var a=this.dragRegion;a.left=b[0];a.top=b[1];a.right=b[0];a.bottom=b[1];a.constrainTo(this.elRegion);return[a.left,a.top]}}});Ext.dd.ScrollManager=function(){var c=Ext.dd.DragDropMgr;var e={};var b=null;var i={};var h=function(l){b=null;a()};var j=function(){if(c.dragCurrent){c.refreshCache(c.dragCurrent.groups)}};var d=function(){if(c.dragCurrent){var l=Ext.dd.ScrollManager;var m=i.el.ddScrollConfig?i.el.ddScrollConfig.increment:l.increment;if(!l.animate){if(i.el.scroll(i.dir,m)){j()}}else{i.el.scroll(i.dir,m,true,l.animDuration,j)}}};var a=function(){if(i.id){clearInterval(i.id)}i.id=0;i.el=null;i.dir=""};var g=function(m,l){a();i.el=m;i.dir=l;var o=m.ddScrollConfig?m.ddScrollConfig.ddGroup:undefined,n=(m.ddScrollConfig&&m.ddScrollConfig.frequency)?m.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;if(o===undefined||c.dragCurrent.ddGroup==o){i.id=setInterval(d,n)}};var k=function(o,q){if(q||!c.dragCurrent){return}var s=Ext.dd.ScrollManager;if(!b||b!=c.dragCurrent){b=c.dragCurrent;s.refreshCache()}var t=Ext.lib.Event.getXY(o);var u=new Ext.lib.Point(t[0],t[1]);for(var m in e){var n=e[m],l=n._region;var p=n.ddScrollConfig?n.ddScrollConfig:s;if(l&&l.contains(u)&&n.isScrollable()){if(l.bottom-u.y<=p.vthresh){if(i.el!=n){g(n,"down")}return}else{if(l.right-u.x<=p.hthresh){if(i.el!=n){g(n,"left")}return}else{if(u.y-l.top<=p.vthresh){if(i.el!=n){g(n,"up")}return}else{if(u.x-l.left<=p.hthresh){if(i.el!=n){g(n,"right")}return}}}}}}a()};c.fireEvents=c.fireEvents.createSequence(k,c);c.stopDrag=c.stopDrag.createSequence(h,c);return{register:function(n){if(Ext.isArray(n)){for(var m=0,l=n.length;m]+>/gi,asText:function(a){return String(a).replace(this.stripTagsRE,"")},asUCText:function(a){return String(a).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(a){return String(a).toUpperCase()},asDate:function(a){if(!a){return 0}if(Ext.isDate(a)){return a.getTime()}return Date.parse(String(a))},asFloat:function(a){var b=parseFloat(String(a).replace(/,/g,""));return isNaN(b)?0:b},asInt:function(a){var b=parseInt(String(a).replace(/,/g,""),10);return isNaN(b)?0:b}};Ext.data.Record=function(a,b){this.id=(b||b===0)?b:Ext.data.Record.id(this);this.data=a||{}};Ext.data.Record.create=function(e){var c=Ext.extend(Ext.data.Record,{});var d=c.prototype;d.fields=new Ext.util.MixedCollection(false,function(g){return g.name});for(var b=0,a=e.length;b-1){a.join(null);this.data.removeAt(b)}if(this.pruneModifiedRecords){this.modified.remove(a)}if(this.snapshot){this.snapshot.remove(a)}if(b>-1){this.fireEvent("remove",this,a,b)}},removeAt:function(a){this.remove(this.getAt(a))},removeAll:function(b){var a=[];this.each(function(c){a.push(c)});this.clearData();if(this.snapshot){this.snapshot.clear()}if(this.pruneModifiedRecords){this.modified=[]}if(b!==true){this.fireEvent("clear",this,a)}},onClear:function(b,a){Ext.each(a,function(d,c){this.destroyRecord(this,d,c)},this)},insert:function(d,c){var e,a,b;c=[].concat(c);for(e=0,a=c.length;e=0;d--){if(b[d].phantom===true){var a=b.splice(d,1).shift();if(a.isValid()){g.push(a)}}else{if(!b[d].isValid()){b.splice(d,1)}}}if(g.length){h.push(["create",g])}if(b.length){h.push(["update",b])}}j=h.length;if(j){e=++this.batchCounter;for(d=0;d=0;b--){this.modified.splice(this.modified.indexOf(a[b]),1)}}else{this.modified.splice(this.modified.indexOf(a),1)}},reMap:function(b){if(Ext.isArray(b)){for(var d=0,a=b.length;d=0;c--){this.insert(b[c].lastIndex,b[c])}}},handleException:function(a){Ext.handleError(a)},reload:function(a){this.load(Ext.applyIf(a||{},this.lastOptions))},loadRecords:function(b,l,h){var e,g;if(this.isDestroyed===true){return}if(!b||h===false){if(h!==false){this.fireEvent("load",this,[],l)}if(l.callback){l.callback.call(l.scope||this,[],l,false,b)}return}var a=b.records,j=b.totalRecords||a.length;if(!l||l.add!==true){if(this.pruneModifiedRecords){this.modified=[]}for(e=0,g=a.length;e-1){this.doUpdate(d)}else{k.push(d);++c}}this.totalLength=Math.max(j,this.data.length+c);this.add(k)}this.fireEvent("load",this,a,l);if(l.callback){l.callback.call(l.scope||this,a,l,true)}},loadData:function(c,a){var b=this.reader.readRecords(c);this.loadRecords(b,{add:a},true)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalLength||0},getSortState:function(){return this.sortInfo},applySort:function(){if((this.sortInfo||this.multiSortInfo)&&!this.remoteSort){this.sortData()}},sortData:function(){var a=this.hasMultiSort?this.multiSortInfo:this.sortInfo,k=a.direction||"ASC",h=a.sorters,c=[];if(!this.hasMultiSort){h=[{direction:k,field:a.field}]}for(var d=0,b=h.length;d1){for(var p=1,o=c.length;ph?1:(i=0;b--){if(Ext.isArray(c)){this.realize(a.splice(b,1).shift(),c.splice(b,1).shift())}else{this.realize(a.splice(b,1).shift(),c)}}}else{if(Ext.isArray(c)&&c.length==1){c=c.shift()}if(!this.isData(c)){throw new Ext.data.DataReader.Error("realize",a)}a.phantom=false;a._phid=a.id;a.id=this.getId(c);a.data=c;a.commit();a.store.reMap(a)}},update:function(a,c){if(Ext.isArray(a)){for(var b=a.length-1;b>=0;b--){if(Ext.isArray(c)){this.update(a.splice(b,1).shift(),c.splice(b,1).shift())}else{this.update(a.splice(b,1).shift(),c)}}}else{if(Ext.isArray(c)&&c.length==1){c=c.shift()}if(this.isData(c)){a.data=Ext.apply(a.data,c)}a.commit()}},extractData:function(k,a){var j=(this instanceof Ext.data.JsonReader)?"json":"node";var c=[];if(this.isData(k)&&!(this instanceof Ext.data.XmlReader)){k=[k]}var h=this.recordType.prototype.fields,o=h.items,m=h.length,c=[];if(a===true){var l=this.recordType;for(var e=0;e=0){return new Function("obj","return obj"+(b>0?".":"")+c)}return function(d){return d[c]}}}(),extractValues:function(h,d,a){var g,c={};for(var e=0;e<\u003fxml version="{version}" encoding="{encoding}"\u003f><{documentRoot}><{name}>{value}<{root}><{parent.record}><{name}>{value}',render:function(b,c,a){c=this.toArray(c);b.xmlData=this.tpl.applyTemplate({version:this.xmlVersion,encoding:this.xmlEncoding,documentRoot:(c.length>0||this.forceDocumentRoot===true)?this.documentRoot:false,record:this.meta.record,root:this.root,baseParams:c,records:(Ext.isArray(a[0]))?a:[a]})},createRecord:function(a){return this.toArray(this.toHash(a))},updateRecord:function(a){return this.toArray(this.toHash(a))},destroyRecord:function(b){var a={};a[this.meta.idProperty]=b.id;return this.toArray(a)}});Ext.data.XmlReader=function(a,b){a=a||{};Ext.applyIf(a,{idProperty:a.idProperty||a.idPath||a.id,successProperty:a.successProperty||a.success});Ext.data.XmlReader.superclass.constructor.call(this,a,b||a.fields)};Ext.extend(Ext.data.XmlReader,Ext.data.DataReader,{read:function(a){var b=a.responseXML;if(!b){throw {message:"XmlReader.read: XML Document not available"}}return this.readRecords(b)},readRecords:function(d){this.xmlData=d;var a=d.documentElement||d,c=Ext.DomQuery,g=0,e=true;if(this.meta.totalProperty){g=this.getTotal(a,0)}if(this.meta.successProperty){e=this.getSuccess(a)}var b=this.extractData(c.select(this.meta.record,a),true);return{success:e,records:b,totalRecords:g||b.length}},readResponse:function(g,b){var e=Ext.DomQuery,h=b.responseXML,a=h.documentElement||h;var c=new Ext.data.Response({action:g,success:this.getSuccess(a),message:this.getMessage(a),data:this.extractData(e.select(this.meta.record,a)||e.select(this.meta.root,a),false),raw:h});if(Ext.isEmpty(c.success)){throw new Ext.data.DataReader.Error("successProperty-response",this.meta.successProperty)}if(g===Ext.data.Api.actions.create){var d=Ext.isDefined(c.data);if(d&&Ext.isEmpty(c.data)){throw new Ext.data.JsonReader.Error("root-empty",this.meta.root)}else{if(!d){throw new Ext.data.JsonReader.Error("root-undefined-response",this.meta.root)}}}return c},getSuccess:function(){return true},buildExtractors:function(){if(this.ef){return}var l=this.meta,h=this.recordType,e=h.prototype.fields,k=e.items,j=e.length;if(l.totalProperty){this.getTotal=this.createAccessor(l.totalProperty)}if(l.successProperty){this.getSuccess=this.createAccessor(l.successProperty)}if(l.messageProperty){this.getMessage=this.createAccessor(l.messageProperty)}this.getRoot=function(g){return(!Ext.isEmpty(g[this.meta.record]))?g[this.meta.record]:g[this.meta.root]};if(l.idPath||l.idProperty){var d=this.createAccessor(l.idPath||l.idProperty);this.getId=function(g){var i=d(g)||g.id;return(i===undefined||i==="")?null:i}}else{this.getId=function(){return null}}var c=[];for(var b=0;b0&&c[0].field==this.groupField){c.shift()}this.groupField=e;this.groupDir=d;this.applyGroupField();var b=function(){this.fireEvent("groupchange",this,this.getGroupState())};if(this.groupOnSort){this.sort(e,d);b.call(this);return}if(this.remoteGroup){this.on("load",b,this,{single:true});this.reload()}else{this.sort(c);b.call(this)}},sort:function(h,c){if(this.remoteSort){return Ext.data.GroupingStore.superclass.sort.call(this,h,c)}var g=[];if(Ext.isArray(arguments[0])){g=arguments[0]}else{if(h==undefined){g=this.sortInfo?[this.sortInfo]:[]}else{var e=this.fields.get(h);if(!e){return false}var b=e.name,a=this.sortInfo||null,d=this.sortToggle?this.sortToggle[b]:null;if(!c){if(a&&a.field==b){c=(this.sortToggle[b]||"ASC").toggle("ASC","DESC")}else{c=e.sortDir}}this.sortToggle[b]=c;this.sortInfo={field:b,direction:c};g=[this.sortInfo]}}if(this.groupField){g.unshift({direction:this.groupDir,field:this.groupField})}return this.multiSort.call(this,g,c)},applyGroupField:function(){if(this.remoteGroup){if(!this.baseParams){this.baseParams={}}Ext.apply(this.baseParams,{groupBy:this.groupField,groupDir:this.groupDir});var a=this.lastOptions;if(a&&a.params){a.params.groupDir=this.groupDir;delete a.params.groupBy}}},applyGrouping:function(a){if(this.groupField!==false){this.groupBy(this.groupField,true,this.groupDir);return true}else{if(a===true){this.fireEvent("datachanged",this)}return false}},getGroupState:function(){return this.groupOnSort&&this.groupField!==false?(this.sortInfo?this.sortInfo.field:undefined):this.groupField}});Ext.reg("groupingstore",Ext.data.GroupingStore);Ext.data.DirectProxy=function(a){Ext.apply(this,a);if(typeof this.paramOrder=="string"){this.paramOrder=this.paramOrder.split(/[\s,|]/)}Ext.data.DirectProxy.superclass.constructor.call(this,a)};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,doRequest:function(b,c,a,e,k,l,n){var j=[],h=this.api[b]||this.directFn;switch(b){case Ext.data.Api.actions.create:j.push(a.jsonData);break;case Ext.data.Api.actions.read:if(h.directCfg.method.len>0){if(this.paramOrder){for(var d=0,g=this.paramOrder.length;d1){for(var d=0,b=c.length;d0){this.doSend(a==1?this.callBuffer[0]:this.callBuffer);this.callBuffer=[]}},queueTransaction:function(a){if(a.form){this.processForm(a);return}this.callBuffer.push(a);if(this.enableBuffer){if(!this.callTask){this.callTask=new Ext.util.DelayedTask(this.combineAndSend,this)}this.callTask.delay(Ext.isNumber(this.enableBuffer)?this.enableBuffer:10)}else{this.combineAndSend()}},doCall:function(i,a,b){var h=null,e=b[a.len],g=b[a.len+1];if(a.len!==0){h=b.slice(0,a.len)}var d=new Ext.Direct.Transaction({provider:this,args:b,action:i,method:a.name,data:h,cb:g&&Ext.isFunction(e)?e.createDelegate(g):e});if(this.fireEvent("beforecall",this,d,a)!==false){Ext.Direct.addTransaction(d);this.queueTransaction(d);this.fireEvent("call",this,d,a)}},doForm:function(j,b,g,i,e){var d=new Ext.Direct.Transaction({provider:this,action:j,method:b.name,args:[g,i,e],cb:e&&Ext.isFunction(i)?i.createDelegate(e):i,isForm:true});if(this.fireEvent("beforecall",this,d,b)!==false){Ext.Direct.addTransaction(d);var a=String(g.getAttribute("enctype")).toLowerCase()=="multipart/form-data",h={extTID:d.tid,extAction:j,extMethod:b.name,extType:"rpc",extUpload:String(a)};Ext.apply(d,{form:Ext.getDom(g),isUpload:a,params:i&&Ext.isObject(i.params)?Ext.apply(h,i.params):h});this.fireEvent("call",this,d,b);this.processForm(d)}},processForm:function(a){Ext.Ajax.request({url:this.url,params:a.params,callback:this.onData,scope:this,form:a.form,isUpload:a.isUpload,ts:a})},createMethod:function(d,a){var b;if(!a.formHandler){b=function(){this.doCall(d,a,Array.prototype.slice.call(arguments,0))}.createDelegate(this)}else{b=function(e,g,c){this.doForm(d,a,e,g,c)}.createDelegate(this)}b.directCfg={action:d,method:a};return b},getTransaction:function(a){return a&&a.tid?Ext.Direct.getTransaction(a.tid):null},doCallback:function(c,g){var d=g.status?"success":"failure";if(c&&c.cb){var b=c.cb,a=Ext.isDefined(g.result)?g.result:g.data;if(Ext.isFunction(b)){b(a,g)}else{Ext.callback(b[d],b.scope,[a,g]);Ext.callback(b.callback,b.scope,[a,g])}}}});Ext.Direct.PROVIDERS.remoting=Ext.direct.RemotingProvider;Ext.Resizable=Ext.extend(Ext.util.Observable,{constructor:function(d,e){this.el=Ext.get(d);if(e&&e.wrap){e.resizeChild=this.el;this.el=this.el.wrap(typeof e.wrap=="object"?e.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=e.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(e.resizeChild.getPositioning());e.resizeChild.clearPositioning();if(!e.width||!e.height){var g=e.resizeChild.getSize();this.el.setSize(g.width,g.height)}if(e.pinned&&!e.adjustments){e.adjustments="auto"}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,e);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var k=this.el.getStyle("position");if(k!="absolute"&&k!="fixed"){this.el.setStyle("position","relative")}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w"}}if(this.handles=="all"){this.handles="n s e w ne nw se sw"}var o=this.handles.split(/\s*?[,;]\s*?| /);var c=Ext.Resizable.positions;for(var j=0,l=o.length;j0){if(a>(e/2)){d=c+(e-a)}else{d=c-a}}return Math.max(b,d)},resizeElement:function(){var a=this.proxy.getBox();if(this.updateBox){this.el.setBox(a,false,this.animate,this.duration,null,this.easing)}else{this.el.setSize(a.width,a.height,this.animate,this.duration,null,this.easing)}this.updateChildSize();if(!this.dynamic){this.proxy.hide()}if(this.draggable&&this.constrainTo){this.dd.resetConstraints();this.dd.constrainTo(this.constrainTo)}return a},constrain:function(b,c,a,d){if(b-cd){c=b-d}}return c},onMouseMove:function(z){if(this.enabled&&this.activeHandle){try{if(this.resizeRegion&&!this.resizeRegion.contains(z.getPoint())){return}var t=this.curSize||this.startBox,l=this.startBox.x,k=this.startBox.y,c=l,b=k,m=t.width,u=t.height,d=m,o=u,n=this.minWidth,A=this.minHeight,s=this.maxWidth,D=this.maxHeight,i=this.widthIncrement,a=this.heightIncrement,B=z.getXY(),r=-(this.startPoint[0]-Math.max(this.minX,B[0])),p=-(this.startPoint[1]-Math.max(this.minY,B[1])),j=this.activeHandle.position,E,g;switch(j){case"east":m+=r;m=Math.min(Math.max(n,m),s);break;case"south":u+=p;u=Math.min(Math.max(A,u),D);break;case"southeast":m+=r;u+=p;m=Math.min(Math.max(n,m),s);u=Math.min(Math.max(A,u),D);break;case"north":p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"west":r=this.constrain(m,r,n,s);l+=r;m-=r;break;case"northeast":m+=r;m=Math.min(Math.max(n,m),s);p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"northwest":r=this.constrain(m,r,n,s);p=this.constrain(u,p,A,D);k+=p;u-=p;l+=r;m-=r;break;case"southwest":r=this.constrain(m,r,n,s);u+=p;u=Math.min(Math.max(A,u),D);l+=r;m-=r;break}var q=this.snap(m,i,n);var C=this.snap(u,a,A);if(q!=m||C!=u){switch(j){case"northeast":k-=C-u;break;case"north":k-=C-u;break;case"southwest":l-=q-m;break;case"west":l-=q-m;break;case"northwest":l-=q-m;k-=C-u;break}m=q;u=C}if(this.preserveRatio){switch(j){case"southeast":case"east":u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);break;case"south":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"northeast":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"north":E=m;m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);l+=(E-m)/2;break;case"southwest":u=o*(m/d);u=Math.min(Math.max(A,u),D);E=m;m=d*(u/o);l+=E-m;break;case"west":g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);k+=(g-u)/2;E=m;m=d*(u/o);l+=E-m;break;case"northwest":E=m;g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);k+=g-u;l+=E-m;break}}this.proxy.setBounds(l,k,m,u);if(this.dynamic){this.resizeElement()}}catch(v){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over")}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over")}},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(b){Ext.destroy(this.dd,this.overlay,this.proxy);this.overlay=null;this.proxy=null;var c=Ext.Resizable.positions;for(var a in c){if(typeof c[a]!="function"&&this[c[a]]){this[c[a]].destroy()}}if(b){this.el.update("");Ext.destroy(this.el);this.el=null}this.purgeListeners()},syncHandleHeight:function(){var a=this.el.getHeight(true);if(this.west){this.west.el.setHeight(a)}if(this.east){this.east.el.setHeight(a)}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=Ext.extend(Object,{constructor:function(d,g,c,e,a){if(!this.tpl){var b=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});b.compile();Ext.Resizable.Handle.prototype.tpl=b}this.position=g;this.rz=d;this.el=this.tpl.append(d.el.dom,[this.position],true);this.el.unselectable();if(e){this.el.setOpacity(0)}if(!Ext.isEmpty(a)){this.el.addClass(a)}this.el.on("mousedown",this.onMouseDown,this);if(!c){this.el.on({scope:this,mouseover:this.onMouseOver,mouseout:this.onMouseOut})}},afterResize:function(a){},onMouseDown:function(a){this.rz.onMouseDown(this,a)},onMouseOver:function(a){this.rz.handleOver(this,a)},onMouseOut:function(a){this.rz.handleOut(this,a)},destroy:function(){Ext.destroy(this.el);this.el=null}});Ext.Window=Ext.extend(Ext.Panel,{baseCls:"x-window",resizable:true,draggable:true,closable:true,closeAction:"close",constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,showAnimDuration:0.25,hideAnimDuration:0.25,collapsible:false,initHidden:undefined,hidden:true,elements:"header,body",frame:true,floating:true,initComponent:function(){this.initTools();Ext.Window.superclass.initComponent.call(this);this.addEvents("resize","maximize","minimize","restore");if(Ext.isDefined(this.initHidden)){this.hidden=this.initHidden}if(this.hidden===false){this.hidden=true;this.show()}},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox(true))},onRender:function(b,a){Ext.Window.superclass.onRender.call(this,b,a);if(this.plain){this.el.addClass("x-window-plain")}this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:" "});this.focusEl.swallowEvent("click",true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode("block");if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mon(this.mask,"click",this.focus,this)}if(this.maximizable){this.mon(this.header,"dblclick",this.toggleMaximize,this)}},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget){this.setAnimateTarget(this.animateTarget)}if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction,handleCls:"x-window-handle"});this.resizer.window=this;this.mon(this.resizer,"beforeresize",this.beforeResize,this)}if(this.draggable){this.header.addClass("x-window-draggable")}this.mon(this.el,"mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);if(this.maximized){this.maximized=false;this.maximize()}if(this.closable){var a=this.getKeyMap();a.on(27,this.onEsc,this);a.disable()}},initDraggable:function(){this.dd=new Ext.Window.DD(this)},onEsc:function(a,b){if(this.activeGhost){this.unghost()}b.stopEvent();this[this.closeAction]()},beforeDestroy:function(){if(this.rendered){this.hide();this.clearAnchor();Ext.destroy(this.focusEl,this.resizer,this.dd,this.proxy,this.mask)}Ext.Window.superclass.beforeDestroy.call(this)},onDestroy:function(){if(this.manager){this.manager.unregister(this)}Ext.Window.superclass.onDestroy.call(this)},initTools:function(){if(this.minimizable){this.addTool({id:"minimize",handler:this.minimize.createDelegate(this,[])})}if(this.maximizable){this.addTool({id:"maximize",handler:this.maximize.createDelegate(this,[])});this.addTool({id:"restore",handler:this.restore.createDelegate(this,[]),hidden:true})}if(this.closable){this.addTool({id:"close",handler:this[this.closeAction].createDelegate(this,[])})}},resizerAction:function(){var a=this.proxy.getBox();this.proxy.hide();this.window.handleResize(a);return a},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox()},updateHandles:function(){if(Ext.isIE9m&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint()}},handleResize:function(b){var a=this.resizeBox;if(a.x!=b.x||a.y!=b.y){this.updateBox(b)}else{this.setSize(b);if(Ext.isIE6&&Ext.isStrict){this.doLayout()}}this.focus();this.updateHandles();this.saveState()},focus:function(){var e=this.focusEl,a=this.defaultButton,c=typeof a,d,b;if(Ext.isDefined(a)){if(Ext.isNumber(a)&&this.fbar){e=this.fbar.items.get(a)}else{if(Ext.isString(a)){e=Ext.getCmp(a)}else{e=a}}d=e.getEl();b=Ext.getDom(this.container);if(d&&b){if(b!=document.body&&!Ext.lib.Region.getRegion(b).contains(Ext.lib.Region.getRegion(d.dom))){return}}}e=e||this.focusEl;e.focus.defer(10,e)},setAnimateTarget:function(a){a=Ext.get(a);this.animateTarget=a},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var a=this.el.getAlignToXY(this.container,"c-c");var b=this.el.translatePoints(a[0],a[1]);this.x=this.x===undefined?b.left:this.x;this.y=this.y===undefined?b.top:this.y}this.el.setLeftTop(this.x,this.y);if(this.expandOnShow){this.expand(false)}if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show()}},show:function(c,a,b){if(!this.rendered){this.render(Ext.getBody())}if(this.hidden===false){this.toFront();return this}if(this.fireEvent("beforeshow",this)===false){return this}if(a){this.on("show",a,b,{single:true})}this.hidden=false;if(Ext.isDefined(c)){this.setAnimateTarget(c)}this.beforeShow();if(this.animateTarget){this.animShow()}else{this.afterShow()}return this},afterShow:function(b){if(this.isDestroyed){return false}this.proxy.hide();this.el.setStyle("display","block");this.el.show();if(this.maximized){this.fitContainer()}if(Ext.isMac&&Ext.isGecko2){this.cascade(this.setAutoScroll)}if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.onWindowResize(this.onWindowResize,this)}this.doConstrain();this.doLayout();if(this.keyMap){this.keyMap.enable()}this.toFront();this.updateHandles();if(b&&(Ext.isIE||Ext.isWebKit)){var a=this.getSize();this.onResize(a.width,a.height)}this.onShow();this.fireEvent("show",this)},animShow:function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var a=this.getBox();this.el.setStyle("display","none");this.proxy.shift(Ext.apply(a,{callback:this.afterShow.createDelegate(this,[true],false),scope:this,easing:"easeNone",duration:this.showAnimDuration,opacity:0.5}))},hide:function(c,a,b){if(this.hidden||this.fireEvent("beforehide",this)===false){return this}if(a){this.on("hide",a,b,{single:true})}this.hidden=true;if(c!==undefined){this.setAnimateTarget(c)}if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked")}if(this.animateTarget){this.animHide()}else{this.el.hide();this.afterHide()}return this},afterHide:function(){this.proxy.hide();if(this.monitorResize||this.modal||this.constrain||this.constrainHeader){Ext.EventManager.removeResizeListener(this.onWindowResize,this)}if(this.keyMap){this.keyMap.disable()}this.onHide();this.fireEvent("hide",this)},animHide:function(){this.proxy.setOpacity(0.5);this.proxy.show();var a=this.getBox(false);this.proxy.setBox(a);this.el.hide();this.proxy.shift(Ext.apply(this.animateTarget.getBox(),{callback:this.afterHide,scope:this,duration:this.hideAnimDuration,easing:"easeNone",opacity:0}))},onShow:Ext.emptyFn,onHide:Ext.emptyFn,onWindowResize:function(){if(this.maximized){this.fitContainer()}if(this.modal){this.mask.setSize("100%","100%");var a=this.mask.dom.offsetHeight;this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true))}this.doConstrain()},doConstrain:function(){if(this.constrain||this.constrainHeader){var b;if(this.constrain){b={right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset}}else{var a=this.getSize();b={right:-(a.width-100),bottom:-(a.height-25+this.el.getConstrainOffset())}}var c=this.el.getConstrainToXY(this.container,true,b);if(c){this.setPosition(c[0],c[1])}}},ghost:function(a){var c=this.createGhost(a);var b=this.getBox(true);c.setLeftTop(b.x,b.y);c.setWidth(b.width);this.el.hide();this.activeGhost=c;return c},unghost:function(b,a){if(!this.activeGhost){return}if(b!==false){this.el.show();this.focus.defer(10,this);if(Ext.isMac&&Ext.isGecko2){this.cascade(this.setAutoScroll)}}if(a!==false){this.setPosition(this.activeGhost.getLeft(true),this.activeGhost.getTop(true))}this.activeGhost.hide();this.activeGhost.remove();delete this.activeGhost},minimize:function(){this.fireEvent("minimize",this);return this},close:function(){if(this.fireEvent("beforeclose",this)!==false){if(this.hidden){this.doClose()}else{this.hide(null,this.doClose,this)}}},doClose:function(){this.fireEvent("close",this);this.destroy()},maximize:function(){if(!this.maximized){this.expand(false);this.restoreSize=this.getSize();this.restorePos=this.getPosition(true);if(this.maximizable){this.tools.maximize.hide();this.tools.restore.show()}this.maximized=true;this.el.disableShadow();if(this.dd){this.dd.lock()}if(this.collapsible){this.tools.toggle.hide()}this.el.addClass("x-window-maximized");this.container.addClass("x-window-maximized-ct");this.setPosition(0,0);this.fitContainer();this.fireEvent("maximize",this)}return this},restore:function(){if(this.maximized){var a=this.tools;this.el.removeClass("x-window-maximized");if(a.restore){a.restore.hide()}if(a.maximize){a.maximize.show()}this.setPosition(this.restorePos[0],this.restorePos[1]);this.setSize(this.restoreSize.width,this.restoreSize.height);delete this.restorePos;delete this.restoreSize;this.maximized=false;this.el.enableShadow(true);if(this.dd){this.dd.unlock()}if(this.collapsible&&a.toggle){a.toggle.show()}this.container.removeClass("x-window-maximized-ct");this.doConstrain();this.fireEvent("restore",this)}return this},toggleMaximize:function(){return this[this.maximized?"restore":"maximize"]()},fitContainer:function(){var a=this.container.getViewSize(false);this.setSize(a.width,a.height)},setZIndex:function(a){if(this.modal){this.mask.setStyle("z-index",a)}this.el.setZIndex(++a);a+=5;if(this.resizer){this.resizer.proxy.setStyle("z-index",++a)}this.lastZIndex=a},alignTo:function(b,a,c){var d=this.el.getAlignToXY(b,a,c);this.setPagePosition(d[0],d[1]);return this},anchorTo:function(c,e,d,b){this.clearAnchor();this.anchorTarget={el:c,alignment:e,offsets:d};Ext.EventManager.onWindowResize(this.doAnchor,this);var a=typeof b;if(a!="undefined"){Ext.EventManager.on(window,"scroll",this.doAnchor,this,{buffer:a=="number"?b:50})}return this.doAnchor()},doAnchor:function(){var a=this.anchorTarget;this.alignTo(a.el,a.alignment,a.offsets);return this},clearAnchor:function(){if(this.anchorTarget){Ext.EventManager.removeResizeListener(this.doAnchor,this);Ext.EventManager.un(window,"scroll",this.doAnchor,this);delete this.anchorTarget}return this},toFront:function(a){if(this.manager.bringToFront(this)){if(!a||!a.getTarget().focus){this.focus()}}return this},setActive:function(a){if(a){if(!this.maximized){this.el.enableShadow(true)}this.fireEvent("activate",this)}else{this.el.disableShadow();this.fireEvent("deactivate",this)}},toBack:function(){this.manager.sendToBack(this);return this},center:function(){var a=this.el.getAlignToXY(this.container,"c-c");this.setPagePosition(a[0],a[1]);return this}});Ext.reg("window",Ext.Window);Ext.Window.DD=Ext.extend(Ext.dd.DD,{constructor:function(a){this.win=a;Ext.Window.DD.superclass.constructor.call(this,a.el.id,"WindowDD-"+a.id);this.setHandleElId(a.header.id);this.scroll=false},moveOnly:true,headerOffsets:[100,25],startDrag:function(){var a=this.win;this.proxy=a.ghost(a.initialConfig.cls);if(a.constrain!==false){var c=a.el.shadowOffset;this.constrainTo(a.container,{right:c,left:c,bottom:c})}else{if(a.constrainHeader!==false){var b=this.proxy.getSize();this.constrainTo(a.container,{right:-(b.width-this.headerOffsets[0]),bottom:-(b.height-this.headerOffsets[1])})}}},b4Drag:Ext.emptyFn,onDrag:function(a){this.alignElWithMouse(this.proxy,a.getPageX(),a.getPageY())},endDrag:function(a){this.win.unghost();this.win.saveState()}});Ext.WindowGroup=function(){var g={};var d=[];var e=null;var c=function(j,i){return(!j._lastAccess||j._lastAccess0){l.sort(c);var k=l[0].manager.zseed;for(var m=0;m=0;--j){if(!d[j].hidden){b(d[j]);return}}b(null)};return{zseed:9000,register:function(i){if(i.manager){i.manager.unregister(i)}i.manager=this;g[i.id]=i;d.push(i);i.on("hide",a)},unregister:function(i){delete i.manager;delete g[i.id];i.un("hide",a);d.remove(i)},get:function(i){return typeof i=="object"?i:g[i]},bringToFront:function(i){i=this.get(i);if(i!=e){i._lastAccess=new Date().getTime();h();return true}return false},sendToBack:function(i){i=this.get(i);i._lastAccess=-(new Date().getTime());h();return i},hideAll:function(){for(var i in g){if(g[i]&&typeof g[i]!="function"&&g[i].isVisible()){g[i].hide()}}},getActive:function(){return e},getBy:function(l,k){var m=[];for(var j=d.length-1;j>=0;--j){var n=d[j];if(l.call(k||n,n)!==false){m.push(n)}}return m},each:function(j,i){for(var k in g){if(g[k]&&typeof g[k]!="function"){if(j.call(i||g[k],g[k])===false){return}}}}}};Ext.WindowMgr=new Ext.WindowGroup();Ext.MessageBox=function(){var u,b,q,t,h,l,s,a,n,p,j,g,r,v,o,i="",d="",m=["ok","yes","no","cancel"];var c=function(x){r[x].blur();if(u.isVisible()){u.hide();w();Ext.callback(b.fn,b.scope||window,[x,v.dom.value,b],1)}};var w=function(){if(b&&b.cls){u.el.removeClass(b.cls)}n.reset()};var e=function(z,x,y){if(b&&b.closable!==false){u.hide();w()}if(y){y.stopEvent()}};var k=function(x){var z=0,y;if(!x){Ext.each(m,function(A){r[A].hide()});return z}u.footer.dom.style.display="";Ext.iterate(r,function(A,B){y=x[A];if(y){B.show();B.setText(Ext.isString(y)?y:Ext.MessageBox.buttonText[A]);z+=B.getEl().getWidth()+15}else{B.hide()}});return z};return{getDialog:function(x){if(!u){var z=[];r={};Ext.each(m,function(A){z.push(r[A]=new Ext.Button({text:this.buttonText[A],handler:c.createCallback(A),hideMode:"offsets"}))},this);u=new Ext.Window({autoCreate:true,title:x,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(b&&b.buttons&&b.buttons.no&&!b.buttons.cancel){c("no")}else{c("cancel")}},fbar:new Ext.Toolbar({items:z,enableOverflow:false})});u.render(document.body);u.getEl().addClass("x-window-dlg");q=u.mask;h=u.body.createChild({html:'

    '});j=Ext.get(h.dom.firstChild);var y=h.dom.childNodes[1];l=Ext.get(y.firstChild);s=Ext.get(y.childNodes[2].firstChild);s.enableDisplayMode();s.addKeyListener([10,13],function(){if(u.isVisible()&&b&&b.buttons){if(b.buttons.ok){c("ok")}else{if(b.buttons.yes){c("yes")}}}});a=Ext.get(y.childNodes[2].childNodes[1]);a.enableDisplayMode();n=new Ext.ProgressBar({renderTo:h});h.createChild({cls:"x-clear"})}return u},updateText:function(A){if(!u.isVisible()&&!b.width){u.setSize(this.maxWidth,100)}l.update(A?A+" ":" ");var y=d!=""?(j.getWidth()+j.getMargins("lr")):0,C=l.getWidth()+l.getMargins("lr"),z=u.getFrameWidth("lr"),B=u.body.getFrameWidth("lr"),x;x=Math.max(Math.min(b.width||y+C+z+B,b.maxWidth||this.maxWidth),Math.max(b.minWidth||this.minWidth,o||0));if(b.prompt===true){v.setWidth(x-y-z-B)}if(b.progress===true||b.wait===true){n.setSize(x-y-z-B)}if(Ext.isIE9m&&x==o){x+=4}l.update(A||" ");u.setSize(x,"auto").center();return this},updateProgress:function(y,x,z){n.updateProgress(y,x);if(z){this.updateText(z)}return this},isVisible:function(){return u&&u.isVisible()},hide:function(){var x=u?u.activeGhost:null;if(this.isVisible()||x){u.hide();w();if(x){u.unghost(false,false)}}return this},show:function(A){if(this.isVisible()){this.hide()}b=A;var B=this.getDialog(b.title||" ");B.setTitle(b.title||" ");var x=(b.closable!==false&&b.progress!==true&&b.wait!==true);B.tools.close.setDisplayed(x);v=s;b.prompt=b.prompt||(b.multiline?true:false);if(b.prompt){if(b.multiline){s.hide();a.show();a.setHeight(Ext.isNumber(b.multiline)?b.multiline:this.defaultTextHeight);v=a}else{s.show();a.hide()}}else{s.hide();a.hide()}v.dom.value=b.value||"";if(b.prompt){B.focusEl=v}else{var z=b.buttons;var y=null;if(z&&z.ok){y=r.ok}else{if(z&&z.yes){y=r.yes}}if(y){B.focusEl=y}}if(Ext.isDefined(b.iconCls)){B.setIconClass(b.iconCls)}this.setIcon(Ext.isDefined(b.icon)?b.icon:i);o=k(b.buttons);n.setVisible(b.progress===true||b.wait===true);this.updateProgress(0,b.progressText);this.updateText(b.msg);if(b.cls){B.el.addClass(b.cls)}B.proxyDrag=b.proxyDrag===true;B.modal=b.modal!==false;B.mask=b.modal!==false?q:false;if(!B.isVisible()){document.body.appendChild(u.el.dom);B.setAnimateTarget(b.animEl);B.on("show",function(){if(x===true){B.keyMap.enable()}else{B.keyMap.disable()}},this,{single:true});B.show(b.animEl)}if(b.wait===true){n.wait(b.waitConfig)}return this},setIcon:function(x){if(!u){i=x;return}i=undefined;if(x&&x!=""){j.removeClass("x-hidden");j.replaceClass(d,x);h.addClass("x-dlg-icon");d=x}else{j.replaceClass(d,"x-hidden");h.removeClass("x-dlg-icon");d=""}return this},progress:function(z,y,x){this.show({title:z,msg:y,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:x});return this},wait:function(z,y,x){this.show({title:y,msg:z,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:x});return this},alert:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.OK,fn:y,scope:x,minWidth:this.minWidth});return this},confirm:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.YESNO,fn:y,scope:x,icon:this.QUESTION,minWidth:this.minWidth});return this},prompt:function(C,B,z,y,x,A){this.show({title:C,msg:B,buttons:this.OKCANCEL,fn:z,minWidth:this.minPromptWidth,scope:y,prompt:true,multiline:x,value:A});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox;Ext.dd.PanelProxy=Ext.extend(Object,{constructor:function(a,b){this.panel=a;this.id=this.panel.id+"-ddproxy";Ext.apply(this,b)},insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(this.panel.initialConfig.cls,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(b,c,a){this.hide();if(typeof c=="function"){c.call(a||this)}},moveProxy:function(a,b){if(this.proxy){a.insertBefore(this.proxy.dom,b)}}});Ext.Panel.DD=Ext.extend(Ext.dd.DragSource,{constructor:function(b,a){this.panel=b;this.dragData={panel:b};this.proxy=new Ext.dd.PanelProxy(b,a);Ext.Panel.DD.superclass.constructor.call(this,b.el,a);var d=b.header,c=b.body;if(d){this.setHandleElId(d.id);c=b.header}c.setStyle("cursor","move");this.scroll=false},showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(a,b){this.proxy.show()},b4MouseDown:function(b){var a=b.getPageX(),c=b.getPageY();this.autoOffset(a,c)},onInitDrag:function(a,b){this.onStartDrag(a,b);return true},createFrame:Ext.emptyFn,getDragEl:function(a){return this.proxy.ghost.dom},endDrag:function(a){this.proxy.hide();this.panel.saveState()},autoOffset:function(a,b){a-=this.startPageX;b-=this.startPageY;this.setDelta(a,b)}});Ext.state.Provider=Ext.extend(Ext.util.Observable,{constructor:function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)},get:function(b,a){return typeof this.state[b]=="undefined"?a:this.state[b]},clear:function(a){delete this.state[a];this.fireEvent("statechange",this,a,null)},set:function(a,b){this.state[a]=b;this.fireEvent("statechange",this,a,b)},decodeValue:function(b){var e=/^(a|n|d|b|s|o|e)\:(.*)$/,h=e.exec(unescape(b)),d,c,a,g;if(!h||!h[1]){return}c=h[1];a=h[2];switch(c){case"e":return null;case"n":return parseFloat(a);case"d":return new Date(Date.parse(a));case"b":return(a=="1");case"a":d=[];if(a!=""){Ext.each(a.split("^"),function(i){d.push(this.decodeValue(i))},this)}return d;case"o":d={};if(a!=""){Ext.each(a.split("^"),function(i){g=i.split("=");d[g[0]]=this.decodeValue(g[1])},this)}return d;default:return a}},encodeValue:function(c){var b,g="",e=0,a,d;if(c==null){return"e:1"}else{if(typeof c=="number"){b="n:"+c}else{if(typeof c=="boolean"){b="b:"+(c?"1":"0")}else{if(Ext.isDate(c)){b="d:"+c.toGMTString()}else{if(Ext.isArray(c)){for(a=c.length;e-1){var e=this.isSelected(b),c=this.all.elements[b],d=this.bufferRender([a],b)[0];this.all.replaceElement(b,d,true);if(e){this.selected.replaceElement(c,d);this.all.item(b).addClass(this.selectedClass)}this.updateIndexes(b,b)}},onAdd:function(g,d,e){if(this.all.getCount()===0){this.refresh();return}var c=this.bufferRender(d,e),h,b=this.all.elements;if(e0){if(!b){this.selected.removeClass(this.selectedClass)}this.selected.clear();this.last=false;if(!a){this.fireEvent("selectionchange",this,this.selected.elements)}}},isSelected:function(a){return this.selected.contains(this.getNode(a))},deselect:function(a){if(this.isSelected(a)){a=this.getNode(a);this.selected.removeElement(a);if(this.last==a.viewIndex){this.last=false}Ext.fly(a).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(d,g,b){if(Ext.isArray(d)){if(!g){this.clearSelections(true)}for(var c=0,a=d.length;c=a&&d[c];c--){b.push(d[c])}}return b},indexOf:function(a){a=this.getNode(a);if(Ext.isNumber(a.viewIndex)){return a.viewIndex}return this.all.indexOf(a)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.getTemplateTarget().update('
    '+this.loadingText+"
    ");this.all.clear()}},onDestroy:function(){this.all.clear();this.selected.clear();Ext.DataView.superclass.onDestroy.call(this);this.bindStore(null)}});Ext.DataView.prototype.setStore=Ext.DataView.prototype.bindStore;Ext.reg("dataview",Ext.DataView);Ext.list.ListView=Ext.extend(Ext.DataView,{itemSelector:"dl",selectedClass:"x-list-selected",overClass:"x-list-over",scrollOffset:undefined,columnResize:true,columnSort:true,maxColumnWidth:Ext.isIE9m?99:100,initComponent:function(){if(this.columnResize){this.colResizer=new Ext.list.ColumnResizer(this.colResizer);this.colResizer.init(this)}if(this.columnSort){this.colSorter=new Ext.list.Sorter(this.columnSort);this.colSorter.init(this)}if(!this.internalTpl){this.internalTpl=new Ext.XTemplate('
    ','','
    ',"{header}","
    ","
    ",'
    ',"
    ",'
    ',"
    ")}if(!this.tpl){this.tpl=new Ext.XTemplate('',"
    ",'','
    ',' class="{cls}">',"{[values.tpl.apply(parent)]}","
    ","
    ",'
    ',"
    ","
    ")}var l=this.columns,h=0,k=0,m=l.length,b=[];for(var g=0;gthis.maxColumnWidth){n.width-=(h-this.maxColumnWidth)/100}k++}b.push(n)}l=this.columns=b;if(k10)){b.style.width=d;g.style.width=d}else{b.style.width=c+"px";g.style.width=c+"px";setTimeout(function(){if((a.offsetWidth-a.clientWidth)>10){b.style.width=d;g.style.width=d}},10)}}if(Ext.isNumber(e)){a.style.height=Math.max(0,e-g.parentNode.offsetHeight)+"px"}},updateIndexes:function(){Ext.list.ListView.superclass.updateIndexes.apply(this,arguments);this.verifyInternalSize()},findHeaderIndex:function(g){g=g.dom||g;var a=g.parentNode,d=a.parentNode.childNodes,b=0,e;for(;e=d[b];b++){if(e==a){return b}}return -1},setHdWidths:function(){var d=this.innerHd.dom.getElementsByTagName("div"),c=0,b=this.columns,a=b.length;for(;c','','{text}',"");d.disableFormats=true;d.compile();Ext.TabPanel.prototype.itemTpl=d}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false)}if(this.activeTab!==undefined){var a=Ext.isObject(this.activeTab)?this.activeTab:this.items.get(this.activeTab);delete this.activeTab;this.setActiveTab(a)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.mon(this.strip,{scope:this,mousedown:this.onStripMouseDown,contextmenu:this.onStripContextMenu});if(this.enableTabScroll){this.mon(this.strip,"mousewheel",this.onWheel,this)}},findTargets:function(c){var b=null,a=c.getTarget("li:not(.x-tab-edge)",this.strip);if(a){b=this.getComponent(a.id.split(this.idDelimiter)[1]);if(b.disabled){return{close:null,item:null,el:null}}}return{close:c.getTarget(".x-tab-strip-close",this.strip),item:b,el:a}},onStripMouseDown:function(b){if(b.button!==0){return}b.preventDefault();var a=this.findTargets(b);if(a.close){if(a.item.fireEvent("beforeclose",a.item)!==false){a.item.fireEvent("close",a.item);this.remove(a.item)}return}if(a.item&&a.item!=this.activeTab){this.setActiveTab(a.item)}},onStripContextMenu:function(b){b.preventDefault();var a=this.findTargets(b);if(a.item){this.fireEvent("contextmenu",this,a.item,b)}},readTabs:function(d){if(d===true){this.items.each(function(h){this.remove(h)},this)}var c=this.el.query(this.autoTabSelector);for(var b=0,a=c.length;b0){this.setActiveTab(0)}else{this.setActiveTab(null)}}}if(!this.destroying){this.delegateUpdates()}},onBeforeShowItem:function(a){if(a!=this.activeTab){this.setActiveTab(a);return false}},onItemDisabled:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).addClass("x-item-disabled")}this.stack.remove(b)},onItemEnabled:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).removeClass("x-item-disabled")}},onItemTitleChanged:function(b){var a=this.getTabEl(b);if(a){Ext.fly(a).child("span.x-tab-strip-text",true).innerHTML=b.title;this.delegateUpdates()}},onItemIconChanged:function(d,a,c){var b=this.getTabEl(d);if(b){b=Ext.get(b);b.child("span.x-tab-strip-text").replaceClass(c,a);b[Ext.isEmpty(a)?"removeClass":"addClass"]("x-tab-with-icon");this.delegateUpdates()}},getTabEl:function(a){var b=this.getComponent(a);return b?b.tabEl:null},onResize:function(){Ext.TabPanel.superclass.onResize.apply(this,arguments);this.delegateUpdates()},beginUpdate:function(){this.suspendUpdates=true},endUpdate:function(){this.suspendUpdates=false;this.delegateUpdates()},hideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="none";this.delegateUpdates()}this.stack.remove(b)},unhideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="";this.delegateUpdates()}},delegateUpdates:function(){var a=this.rendered;if(this.suspendUpdates){return}if(this.resizeTabs&&a){this.autoSizeTabs()}if(this.enableTabScroll&&a){this.autoScrollTabs()}},autoSizeTabs:function(){var h=this.items.length,b=this.tabPosition!="bottom"?"header":"footer",c=this[b].dom.offsetWidth,a=this[b].dom.clientWidth;if(!this.resizeTabs||h<1||!a){return}var k=Math.max(Math.min(Math.floor((a-4)/h)-this.tabMargin,this.tabWidth),this.minTabWidth);this.lastTabWidth=k;var m=this.strip.query("li:not(.x-tab-edge)");for(var e=0,j=m.length;e20?c:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers()}else{this.scrollLeft.show();this.scrollRight.show()}}this.scrolling=true;if(i>(a-c)){e.scrollLeft=a-c}else{this.scrollToTab(this.activeTab,false)}this.updateScrollButtons()}},createScrollers:function(){this.pos.addClass("x-tab-scrolling-"+this.tabPosition);var c=this.stripWrap.dom.offsetHeight;var a=this.pos.insertFirst({cls:"x-tab-scroller-left"});a.setHeight(c);a.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(a,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=a;var b=this.pos.insertFirst({cls:"x-tab-scroller-right"});b.setHeight(c);b.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(b,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=b},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(e,a){if(!e){return}var c=this.getTabEl(e),h=this.getScrollPos(),d=this.getScrollArea(),g=Ext.fly(c).getOffsetsTo(this.stripWrap)[0]+h,b=g+c.offsetWidth;if(g(h+d)){this.scrollTo(b-d,a)}}},scrollTo:function(b,a){this.stripWrap.scrollTo("left",b,a?this.getScrollAnim():false);if(!a){this.updateScrollButtons()}},onWheel:function(g){var h=g.getWheelDelta()*this.wheelIncrement*-1;g.stopEvent();var i=this.getScrollPos(),c=i+h,a=this.getScrollWidth()-this.getScrollArea();var b=Math.max(0,Math.min(a,c));if(b!=i){this.scrollTo(b,false)}},onScrollRight:function(){var a=this.getScrollWidth()-this.getScrollArea(),c=this.getScrollPos(),b=Math.min(a,c+this.getScrollIncrement());if(b!=c){this.scrollTo(b,this.animScroll)}},onScrollLeft:function(){var b=this.getScrollPos(),a=Math.max(0,b-this.getScrollIncrement());if(a!=b){this.scrollTo(a,this.animScroll)}},updateScrollButtons:function(){var a=this.getScrollPos();this.scrollLeft[a===0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[a>=(this.getScrollWidth()-this.getScrollArea())?"addClass":"removeClass"]("x-tab-scroller-right-disabled")},beforeDestroy:function(){Ext.destroy(this.leftRepeater,this.rightRepeater);this.deleteMembers("strip","edge","scrollLeft","scrollRight","stripWrap");this.activeTab=null;Ext.TabPanel.superclass.beforeDestroy.apply(this)}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var a=[];return{add:function(b){a.push(b);if(a.length>10){a.shift()}},remove:function(e){var d=[];for(var c=0,b=a.length;c','  ','  ','  ',"");Ext.Button.buttonTemplate.compile()}this.template=Ext.Button.buttonTemplate}var b,d=this.getTemplateArgs();if(a){b=this.template.insertBefore(a,d,true)}else{b=this.template.append(c,d,true)}this.btnEl=b.child(this.buttonSelector);this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur});this.initButtonEl(b,this.btnEl);Ext.ButtonToggleMgr.register(this)},initButtonEl:function(b,c){this.el=b;this.setIcon(this.icon);this.setText(this.text);this.setIconClass(this.iconCls);if(Ext.isDefined(this.tabIndex)){c.dom.tabIndex=this.tabIndex}if(this.tooltip){this.setTooltip(this.tooltip,true)}if(this.handleMouseEvents){this.mon(b,{scope:this,mouseover:this.onMouseOver,mousedown:this.onMouseDown})}if(this.menu){this.mon(this.menu,{scope:this,show:this.onMenuShow,hide:this.onMenuHide})}if(this.repeat){var a=new Ext.util.ClickRepeater(b,Ext.isObject(this.repeat)?this.repeat:{});this.mon(a,"click",this.onRepeatClick,this)}else{this.mon(b,this.clickEvent,this.onClick,this)}},afterRender:function(){Ext.Button.superclass.afterRender.call(this);this.useSetClass=true;this.setButtonClass();this.doc=Ext.getDoc();this.doAutoWidth()},setIconClass:function(a){this.iconCls=a;if(this.el){this.btnEl.dom.className="";this.btnEl.addClass(["x-btn-text",a||""]);this.setButtonClass()}return this},setTooltip:function(b,a){if(this.rendered){if(!a){this.clearTip()}if(Ext.isObject(b)){Ext.QuickTips.register(Ext.apply({target:this.btnEl.id},b));this.tooltip=b}else{this.btnEl.dom[this.tooltipType]=b}}else{this.tooltip=b}return this},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.QuickTips.unregister(this.btnEl)}},beforeDestroy:function(){if(this.rendered){this.clearTip()}if(this.menu&&this.destroyMenu!==false){Ext.destroy(this.btnEl,this.menu)}Ext.destroy(this.repeater)},onDestroy:function(){if(this.rendered){this.doc.un("mouseover",this.monitorMouseOver,this);this.doc.un("mouseup",this.onMouseUp,this);delete this.doc;delete this.btnEl;Ext.ButtonToggleMgr.unregister(this)}Ext.Button.superclass.onDestroy.call(this)},doAutoWidth:function(){if(this.autoWidth!==false&&this.el&&this.text&&this.width===undefined){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var a=this.btnEl;if(a&&a.getWidth()>20){a.clip();a.setWidth(Ext.util.TextMetrics.measure(a,this.text).width+a.getFrameWidth("lr"))}}if(this.minWidth){if(this.el.getWidth()a}else{return c.getPageY()>this.btnEl.getRegion().bottom}},onClick:function(b,a){b.preventDefault();if(!this.disabled){if(this.isClickOnArrow(b)){if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick){this.showMenu()}this.fireEvent("arrowclick",this,b);if(this.arrowHandler){this.arrowHandler.call(this.scope||this,this,b)}}else{this.doToggle();this.fireEvent("click",this,b);if(this.handler){this.handler.call(this.scope||this,this,b)}}}},isMenuTriggerOver:function(a){return this.menu&&a.target.tagName==this.arrowSelector},isMenuTriggerOut:function(b,a){return this.menu&&b.target.tagName!=this.arrowSelector}});Ext.reg("splitbutton",Ext.SplitButton);Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(a){if(a&&this.showText===true){var b="";if(this.prependText){b+=this.prependText}b+=a.text;return b}return undefined},setActiveItem:function(c,a){if(!Ext.isObject(c)){c=this.menu.getComponent(c)}if(c){if(!this.rendered){this.text=this.getItemText(c);this.iconCls=c.iconCls}else{var b=this.getItemText(c);if(b){this.setText(b)}this.setIconClass(c.iconCls)}this.activeItem=c;if(!c.checked){c.setChecked(true,a)}if(this.forceIcon){this.setIconClass(this.forceIcon)}if(!a){this.fireEvent("change",this,c)}}},getActiveItem:function(){return this.activeItem},initComponent:function(){this.addEvents("change");if(this.changeHandler){this.on("change",this.changeHandler,this.scope||this);delete this.changeHandler}this.itemCount=this.items.length;this.menu={cls:"x-cycle-menu",items:[]};var a=0;Ext.each(this.items,function(c,b){Ext.apply(c,{group:c.group||this.id,itemIndex:b,checkHandler:this.checkHandler,scope:this,checked:c.checked||false});this.menu.items.push(c);if(c.checked){a=b}},this);Ext.CycleButton.superclass.initComponent.call(this);this.on("click",this.toggleSelected,this);this.setActiveItem(a,true)},checkHandler:function(a,b){if(b){this.setActiveItem(a)}},toggleSelected:function(){var a=this.menu;a.render();if(!a.hasLayout){a.doLayout()}var d,b;for(var c=1;c"){b=new a.Fill()}else{b=new a.TextItem(b)}}}this.applyDefaults(b)}else{if(b.isFormField||b.render){b=this.createComponent(b)}else{if(b.tag){b=new a.Item({autoEl:b})}else{if(b.tagName){b=new a.Item({el:b})}else{if(Ext.isObject(b)){b=b.xtype?this.createComponent(b):this.constructButton(b)}}}}}return b},applyDefaults:function(e){if(!Ext.isString(e)){e=Ext.Toolbar.superclass.applyDefaults.call(this,e);var b=this.internalDefaults;if(e.events){Ext.applyIf(e.initialConfig,b);Ext.apply(e,b)}else{Ext.applyIf(e,b)}}return e},addSeparator:function(){return this.add(new a.Separator())},addSpacer:function(){return this.add(new a.Spacer())},addFill:function(){this.add(new a.Fill())},addElement:function(b){return this.addItem(new a.Item({el:b}))},addItem:function(b){return this.add.apply(this,arguments)},addButton:function(c){if(Ext.isArray(c)){var e=[];for(var d=0,b=c.length;d");this.items.push(this.displayItem=new a.TextItem({}))}Ext.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.cursor=0;this.bindStore(this.store,true)},onFirstLayout:function(){if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded)}},updateInfo:function(){if(this.displayItem){var b=this.store.getCount();var c=b==0?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+b,this.store.getTotalCount());this.displayItem.setText(c)}},onLoad:function(b,e,j){if(!this.rendered){this.dsLoaded=[b,e,j];return}var g=this.getParams();this.cursor=(j.params&&j.params[g.start])?j.params[g.start]:0;var i=this.getPageData(),c=i.activePage,h=i.pages;this.afterTextItem.setText(String.format(this.afterPageText,i.pages));this.inputItem.setValue(c);this.first.setDisabled(c==1);this.prev.setDisabled(c==1);this.next.setDisabled(c==h);this.last.setDisabled(c==h);this.refresh.enable();this.updateInfo();this.fireEvent("change",this,i)},getPageData:function(){var b=this.store.getTotalCount();return{total:b,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:b=1&g<=j.pages){i.setValue(g)}}}}}},getParams:function(){return this.paramNames||this.store.paramNames},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},doLoad:function(d){var c={},b=this.getParams();c[b.start]=d;c[b.limit]=this.pageSize;if(this.fireEvent("beforechange",this,c)!==false){this.store.load({params:c})}},moveFirst:function(){this.doLoad(0)},movePrevious:function(){this.doLoad(Math.max(0,this.cursor-this.pageSize))},moveNext:function(){this.doLoad(this.cursor+this.pageSize)},moveLast:function(){var c=this.store.getTotalCount(),b=c%this.pageSize;this.doLoad(b?(c-b):c-this.pageSize)},doRefresh:function(){this.doLoad(this.cursor)},bindStore:function(c,d){var b;if(!d&&this.store){if(c!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this)}if(!c){this.store=null}}if(c){c=Ext.StoreMgr.lookup(c);c.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError});b=true}this.store=c;if(b){this.onLoad(c,null,{})}},unbind:function(b){this.bindStore(null)},bind:function(b){this.bindStore(b)},onDestroy:function(){this.bindStore(null);Ext.PagingToolbar.superclass.onDestroy.call(this)}})})();Ext.reg("paging",Ext.PagingToolbar);Ext.History=(function(){var e,c;var k=false;var d;function g(){var l=location.href,m=l.indexOf("#"),n=m>=0?l.substr(m+1):null;if(Ext.isGecko){n=decodeURIComponent(n)}return n}function a(){c.value=d}function h(l){d=l;Ext.History.fireEvent("change",l)}function i(m){var l=['
    ',Ext.util.Format.htmlEncode(m),"
    "].join("");try{var o=e.contentWindow.document;o.open();o.write(l);o.close();return true}catch(n){return false}}function b(){if(!e.contentWindow||!e.contentWindow.document){setTimeout(b,10);return}var o=e.contentWindow.document;var m=o.getElementById("state");var l=m?m.innerText:null;var n=g();setInterval(function(){o=e.contentWindow.document;m=o.getElementById("state");var q=m?m.innerText:null;var p=g();if(q!==l){l=q;h(l);location.hash=l;n=l;a()}else{if(p!==n){n=p;i(p)}}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}function j(){d=c.value?c.value:g();if(Ext.isIE){b()}else{var l=g();setInterval(function(){var m=g();if(m!==l){l=m;h(l);a()}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(m,l){if(k){Ext.callback(m,l,[this]);return}if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(m,l)});return}c=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){e=Ext.getDom(Ext.History.iframeId)}this.addEvents("ready","change");if(m){this.on("ready",m,l,{single:true})}j()},add:function(l,m){if(m!==false){if(this.getToken()==l){return true}}if(Ext.isIE){return i(l)}else{location.hash=l;return true}},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return k?d:g()}}})();Ext.apply(Ext.History,new Ext.util.Observable());Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,closeAction:"hide",initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=",header"}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:"close",handler:this[this.closeAction],scope:this})}},showAt:function(a){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number")){this.doAutoWidth()}if(this.constrainPosition){a=this.el.adjustForConstraints(a)}this.setPagePosition(a[0],a[1])},doAutoWidth:function(a){a=a||0;var b=this.body.getTextWidth();if(this.title){b=Math.max(b,this.header.child("span").getTextWidth(this.title))}b+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr")+a;this.setWidth(b.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true}},showBy:function(a,b){if(!this.rendered){this.render(Ext.getBody())}this.showAt(this.el.getAlignToXY(a,b||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.reg("tip",Ext.Tip);Ext.Tip.DD=function(b,a){Ext.apply(this,a);this.tip=b;Ext.Tip.DD.superclass.constructor.call(this,b.el.id,"WindowDD-"+b.id);this.setHandleElId(b.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(a){this.tip.el.enableShadow(true)}});Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,constrainPosition:false,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget(this.target);this.origAnchor=this.anchor},onRender:function(b,a){Ext.ToolTip.superclass.onRender.call(this,b,a);this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl=this.el.createChild({cls:"x-tip-anchor "+this.anchorCls})},afterRender:function(){Ext.ToolTip.superclass.afterRender.call(this);this.anchorEl.setStyle("z-index",this.el.getZIndex()+1).setVisibilityMode(Ext.Element.DISPLAY)},initTarget:function(c){var a;if((a=Ext.get(c))){if(this.target){var b=Ext.get(this.target);this.mun(b,"mouseover",this.onTargetOver,this);this.mun(b,"mouseout",this.onTargetOut,this);this.mun(b,"mousemove",this.onMouseMove,this)}this.mon(a,{mouseover:this.onTargetOver,mouseout:this.onTargetOut,mousemove:this.onMouseMove,scope:this});this.target=a}if(this.anchor){this.anchorTarget=this.target}},onMouseMove:function(b){var a=this.delegate?b.getTarget(this.delegate):this.triggerElement=true;if(a){this.targetXY=b.getXY();if(a===this.triggerElement){if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY())}}else{this.hide();this.lastActive=new Date(0);this.onTargetOver(b)}}else{if(!this.closable&&this.isVisible()){this.hide()}}},getTargetXY:function(){if(this.delegate){this.anchorTarget=this.triggerElement}if(this.anchor){this.targetCounter++;var c=this.getOffsets(),l=(this.anchorToTarget&&!this.trackMouse)?this.el.getAlignToXY(this.anchorTarget,this.getAnchorAlign()):this.targetXY,a=Ext.lib.Dom.getViewWidth()-5,h=Ext.lib.Dom.getViewHeight()-5,i=document.documentElement,e=document.body,k=(i.scrollLeft||e.scrollLeft||0)+5,j=(i.scrollTop||e.scrollTop||0)+5,b=[l[0]+c[0],l[1]+c[1]],g=this.getSize();this.anchorEl.removeClass(this.anchorCls);if(this.targetCounter<2){if(b[0]a){if(this.anchorToTarget){this.defaultAlign="r-l";if(this.mouseOffset){this.mouseOffset[0]*=-1}}this.anchor="right";return this.getTargetXY()}if(b[1]h){if(this.anchorToTarget){this.defaultAlign="b-t";if(this.mouseOffset){this.mouseOffset[1]*=-1}}this.anchor="bottom";return this.getTargetXY()}}this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl.addClass(this.anchorCls);this.targetCounter=0;return b}else{var d=this.getMouseOffset();return[this.targetXY[0]+d[0],this.targetXY[1]+d[1]]}},getMouseOffset:function(){var a=this.anchor?[0,0]:[15,18];if(this.mouseOffset){a[0]+=this.mouseOffset[0];a[1]+=this.mouseOffset[1]}return a},getAnchorPosition:function(){if(this.anchor){this.tipAnchor=this.anchor.charAt(0)}else{var a=this.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!a){throw"AnchorTip.defaultAlign is invalid"}this.tipAnchor=a[1].charAt(0)}switch(this.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var b,a=this.getAnchorPosition().charAt(0);if(this.anchorToTarget&&!this.trackMouse){switch(a){case"t":b=[0,9];break;case"b":b=[0,-13];break;case"r":b=[-13,0];break;default:b=[9,0];break}}else{switch(a){case"t":b=[-15-this.anchorOffset,30];break;case"b":b=[-19-this.anchorOffset,-13-this.el.dom.offsetHeight];break;case"r":b=[-15-this.el.dom.offsetWidth,-13-this.anchorOffset];break;default:b=[25,-13-this.anchorOffset];break}}var c=this.getMouseOffset();b[0]+=c[0];b[1]+=c[1];return b},onTargetOver:function(b){if(this.disabled||b.within(this.target.dom,true)){return}var a=b.getTarget(this.delegate);if(a){this.triggerElement=a;this.clearTimer("hide");this.targetXY=b.getXY();this.delayShow()}},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()=c){d=c-b-5}}return{x:a,y:d}},beforeDestroy:function(){this.clearTimers();Ext.destroy(this.anchorEl);delete this.anchorEl;delete this.target;delete this.anchorTarget;delete this.triggerElement;Ext.ToolTip.superclass.beforeDestroy.call(this)},onDestroy:function(){Ext.getDoc().un("mousedown",this.onDocMouseDown,this);Ext.ToolTip.superclass.onDestroy.call(this)}});Ext.reg("tooltip",Ext.ToolTip);Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(e){var h=Ext.isArray(e)?e:arguments;for(var g=0,a=h.length;g1){var d=function(i,h){if(i&&h){var j=h.findChild(a,b);if(j){j.select();if(g){g(true,j)}}else{if(g){g(false,j)}}}else{if(g){g(false,j)}}};this.expandPath(c.join(this.pathSeparator),a,d)}else{this.root.select();if(g){g(true,this.root)}}},getTreeEl:function(){return this.body},onRender:function(b,a){Ext.tree.TreePanel.superclass.onRender.call(this,b,a);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body)}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true})}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll})}this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.renderRoot()},beforeDestroy:function(){if(this.rendered){Ext.dd.ScrollManager.unregister(this.body);Ext.destroy(this.dropZone,this.dragZone)}this.destroyRoot();Ext.destroy(this.loader);this.nodeHash=this.root=this.loader=null;Ext.tree.TreePanel.superclass.beforeDestroy.call(this)},destroyRoot:function(){if(this.root&&this.root.destroy){this.root.destroy(true)}}});Ext.tree.TreePanel.nodeTypes={};Ext.reg("treepanel",Ext.tree.TreePanel);Ext.tree.TreeEventModel=function(a){this.tree=a;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var a=this.tree;if(a.trackMouseOver!==false){a.mon(a.innerCt,{scope:this,mouseover:this.delegateOver,mouseout:this.delegateOut})}a.mon(a.getTreeEl(),{scope:this,click:this.delegateClick,dblclick:this.delegateDblClick,contextmenu:this.delegateContextMenu})},getNode:function(b){var a;if(a=b.getTarget(".x-tree-node-el",10)){var c=Ext.fly(a,"_treeEvents").getAttribute("tree-node-id","ext");if(c){return this.tree.getNodeById(c)}}return null},getNodeTarget:function(b){var a=b.getTarget(".x-tree-node-icon",1);if(!a){a=b.getTarget(".x-tree-node-el",6)}return a},delegateOut:function(b,a){if(!this.beforeEvent(b)){return}if(b.getTarget(".x-tree-ec-icon",1)){var c=this.getNode(b);this.onIconOut(b,c);if(c==this.lastEcOver){delete this.lastEcOver}}if((a=this.getNodeTarget(b))&&!b.within(a,true)){this.onNodeOut(b,this.getNode(b))}},delegateOver:function(b,a){if(!this.beforeEvent(b)){return}if(Ext.isGecko&&!this.trackingDoc){Ext.getBody().on("mouseover",this.trackExit,this);this.trackingDoc=true}if(this.lastEcOver){this.onIconOut(b,this.lastEcOver);delete this.lastEcOver}if(b.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(b);this.onIconOver(b,this.lastEcOver)}if(a=this.getNodeTarget(b)){this.onNodeOver(b,this.getNode(b))}},trackExit:function(a){if(this.lastOverNode){if(this.lastOverNode.ui&&!a.within(this.lastOverNode.ui.getEl())){this.onNodeOut(a,this.lastOverNode)}delete this.lastOverNode;Ext.getBody().un("mouseover",this.trackExit,this);this.trackingDoc=false}},delegateClick:function(b,a){if(this.beforeEvent(b)){if(b.getTarget("input[type=checkbox]",1)){this.onCheckboxClick(b,this.getNode(b))}else{if(b.getTarget(".x-tree-ec-icon",1)){this.onIconClick(b,this.getNode(b))}else{if(this.getNodeTarget(b)){this.onNodeClick(b,this.getNode(b))}}}}else{this.checkContainerEvent(b,"click")}},delegateDblClick:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b)){this.onNodeDblClick(b,this.getNode(b))}}else{this.checkContainerEvent(b,"dblclick")}},delegateContextMenu:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b)){this.onNodeContextMenu(b,this.getNode(b))}}else{this.checkContainerEvent(b,"contextmenu")}},checkContainerEvent:function(b,a){if(this.disabled){b.stopEvent();return false}this.onContainerEvent(b,a)},onContainerEvent:function(b,a){this.tree.fireEvent("container"+a,this.tree,b)},onNodeClick:function(b,a){a.ui.onClick(b)},onNodeOver:function(b,a){this.lastOverNode=a;a.ui.onOver(b)},onNodeOut:function(b,a){a.ui.onOut(b)},onIconOver:function(b,a){a.ui.addClass("x-tree-ec-over")},onIconOut:function(b,a){a.ui.removeClass("x-tree-ec-over")},onIconClick:function(b,a){a.ui.ecClick(b)},onCheckboxClick:function(b,a){a.ui.onCheckChange(b)},onNodeDblClick:function(b,a){a.ui.onDblClick(b)},onNodeContextMenu:function(b,a){a.ui.onContextMenu(b)},beforeEvent:function(b){var a=this.getNode(b);if(this.disabled||!a||!a.ui){b.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}};Ext.tree.DefaultSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,a);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){this.select(a)},select:function(c,a){if(!Ext.fly(c.ui.wrap).isVisible()&&a){return a.call(this,c)}var b=this.selNode;if(c==b){c.ui.onSelectedChange(true)}else{if(this.fireEvent("beforeselect",this,c,b)!==false){if(b&&b.ui){b.ui.onSelectedChange(false)}this.selNode=c;c.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,c,b)}}return c},unselect:function(b,a){if(this.selNode==b){this.clearSelections(a)}},clearSelections:function(a){var b=this.selNode;if(b){b.ui.onSelectedChange(false);this.selNode=null;if(a!==true){this.fireEvent("selectionchange",this,null)}}return b},getSelectedNode:function(){return this.selNode},isSelected:function(a){return this.selNode==a},selectPrevious:function(a){if(!(a=a||this.selNode||this.lastSelNode)){return null}var c=a.previousSibling;if(c){if(!c.isExpanded()||c.childNodes.length<1){return this.select(c,this.selectPrevious)}else{var b=c.lastChild;while(b&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible()&&b.childNodes.length>0){b=b.lastChild}return this.select(b,this.selectPrevious)}}else{if(a.parentNode&&(this.tree.rootVisible||!a.parentNode.isRoot)){return this.select(a.parentNode,this.selectPrevious)}}return null},selectNext:function(b){if(!(b=b||this.selNode||this.lastSelNode)){return null}if(b.firstChild&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible()){return this.select(b.firstChild,this.selectNext)}else{if(b.nextSibling){return this.select(b.nextSibling,this.selectNext)}else{if(b.parentNode){var a=null;b.parentNode.bubble(function(){if(this.nextSibling){a=this.getOwnerTree().selModel.select(this.nextSibling,this.selectNext);return false}});return a}}}return null},onKeyDown:function(c){var b=this.selNode||this.lastSelNode;var d=this;if(!b){return}var a=c.getKey();switch(a){case c.DOWN:c.stopEvent();this.selectNext();break;case c.UP:c.stopEvent();this.selectPrevious();break;case c.RIGHT:c.preventDefault();if(b.hasChildNodes()){if(!b.isExpanded()){b.expand()}else{if(b.firstChild){this.select(b.firstChild,c)}}}break;case c.LEFT:c.preventDefault();if(b.hasChildNodes()&&b.isExpanded()){b.collapse()}else{if(b.parentNode&&(this.tree.rootVisible||b.parentNode!=this.tree.getRootNode())){this.select(b.parentNode,c)}}break}}});Ext.tree.MultiSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,a);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){if(b.ctrlKey&&this.isSelected(a)){this.unselect(a)}else{this.select(a,b,b.ctrlKey)}},select:function(a,c,b){if(b!==true){this.clearSelections(true)}if(this.isSelected(a)){this.lastSelNode=a;return a}this.selNodes.push(a);this.selMap[a.id]=a;this.lastSelNode=a;a.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return a},unselect:function(b){if(this.selMap[b.id]){b.ui.onSelectedChange(false);var c=this.selNodes;var a=c.indexOf(b);if(a!=-1){this.selNodes.splice(a,1)}delete this.selMap[b.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(b){var d=this.selNodes;if(d.length>0){for(var c=0,a=d.length;c0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(e){var g=false;if(Ext.isArray(e)){g=e}else{if(arguments.length>1){g=arguments}}if(g){for(var d=0,a=g.length;d0){var g=d?function(){e.apply(d,arguments)}:e;c.sort(g);for(var b=0;b
    ','',this.indentMarkup,"",'','',g?('':"/>")):"",'',e.text,"
    ",'',""].join("");if(l!==true&&e.nextSibling&&(b=e.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,d)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",j,d)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var i=this.elNode.childNodes;this.indentNode=i[0];this.ecNode=i[1];this.iconNode=i[2];var h=3;if(g){this.checkbox=i[3];this.checkbox.defaultChecked=this.checkbox.checked;h++}this.anchor=i[h];this.textNode=i[h].firstChild},getHref:function(a){return Ext.isEmpty(a)?(Ext.isGecko?"":"#"):a},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var g=this.node,d,c,a=g.isLast()?"x-tree-elbow-end":"x-tree-elbow",e=g.hasChildNodes();if(e||g.attributes.expandable){if(g.expanded){a+="-minus";d="x-tree-node-collapsed";c="x-tree-node-expanded"}else{a+="-plus";d="x-tree-node-expanded";c="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=d||this.c2!=c){Ext.fly(this.elNode).replaceClass(d,c);this.c1=d;this.c2=c}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-collapsed");delete this.c1;delete this.c2;this.wasLeaf=true}}var b="x-tree-ec-icon "+a;if(this.ecc!=b){this.ecNode.className=b;this.ecc=b}}},onIdChange:function(a){if(this.rendered){this.elNode.setAttribute("ext:tree-node-id",a)}},getChildIndent:function(){if(!this.childIndent){var a=[],b=this.node;while(b){if(!b.isRoot||(b.isRoot&&b.ownerTree.rootVisible)){if(!b.isLast()){a.unshift('')}else{a.unshift('')}}b=b.parentNode}this.childIndent=a.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var a="",b=this.node.parentNode;if(b){a=b.ui.getChildIndent()}if(this.indentMarkup!=a){this.indentNode.innerHTML=a;this.indentMarkup=a}this.updateExpandIcon()}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id)}Ext.each(["textnode","anchor","checkbox","indentNode","ecNode","iconNode","elNode","ctNode","wrap","holder"],function(a){if(this[a]){Ext.fly(this[a]).remove();delete this[a]}},this);delete this.node}});Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var a=this.node.ownerTree.innerCt.dom;this.node.expanded=true;a.innerHTML='
    ';this.wrap=this.ctNode=a.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn});Ext.tree.TreeLoader=function(a){this.baseParams={};Ext.apply(this,a);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this);if(Ext.isString(this.paramOrder)){this.paramOrder=this.paramOrder.split(/[\s,|]/)}};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,paramOrder:undefined,paramsAsHash:false,nodeParameter:"node",directFn:undefined,load:function(b,c,a){if(this.clearOnLoad){while(b.firstChild){b.removeChild(b.firstChild)}}if(this.doPreload(b)){this.runCallback(c,a||b,[b])}else{if(this.directFn||this.dataUrl||this.url){this.requestData(b,c,a||b)}}},doPreload:function(d){if(d.attributes.children){if(d.childNodes.length<1){var c=d.attributes.children;d.beginUpdate();for(var b=0,a=c.length;b-1){c=[]}for(var d=0,a=b.length;dp){return e?-1:1}}return 0}},doSort:function(a){a.sort(this.sortFn)},updateSort:function(a,b){if(b.childrenRendered){this.doSort.defer(1,this,[b])}},updateSortParent:function(a){var b=a.parentNode;if(b&&b.childrenRendered){this.doSort.defer(1,this,[b])}}});if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(a,b){this.allowParentInsert=b.allowParentInsert||false;this.allowContainerDrop=b.allowContainerDrop||false;this.appendOnly=b.appendOnly||false;Ext.tree.TreeDropZone.superclass.constructor.call(this,a.getTreeEl(),b);this.tree=a;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(a){if(a.hasChildNodes()&&!a.isExpanded()){a.expand(false,null,this.triggerCacheRefresh.createDelegate(this))}},queueExpand:function(a){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[a])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(a,k,i,d,c){if(!a||!c){return false}var g=a.node;var h=c.node;if(!(g&&g.isTarget&&k)){return false}if(k=="append"&&g.allowChildren===false){return false}if((k=="above"||k=="below")&&(g.parentNode&&g.parentNode.allowChildren===false)){return false}if(h&&(g==h||h.contains(g))){return false}var b=this.dragOverData;b.tree=this.tree;b.target=g;b.data=c;b.point=k;b.source=i;b.rawEvent=d;b.dropNode=h;b.cancel=false;var j=this.tree.fireEvent("nodedragover",b);return b.cancel===false&&j!==false},getDropPoint:function(h,g,l){var m=g.node;if(m.isRoot){return m.allowChildren!==false?"append":false}var c=g.ddel;var o=Ext.lib.Dom.getY(c),j=o+c.offsetHeight;var i=Ext.lib.Event.getPageY(h);var k=m.allowChildren===false||m.isLeaf();if(this.appendOnly||m.parentNode.allowChildren===false){return k?false:"append"}var d=false;if(!this.allowParentInsert){d=m.hasChildNodes()&&m.isExpanded()}var a=(j-o)/(k?2:3);if(i>=o&&i<(o+a)){return"above"}else{if(!d&&(k||i>=j-a&&i<=j)){return"below"}else{return"append"}}},onNodeEnter:function(d,a,c,b){this.cancelExpand()},onContainerOver:function(a,c,b){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,c,b)){return this.dropAllowed}return this.dropNotAllowed},onNodeOver:function(b,i,h,g){var k=this.getDropPoint(h,b,i);var c=b.node;if(!this.expandProcId&&k=="append"&&c.hasChildNodes()&&!b.node.isExpanded()){this.queueExpand(c)}else{if(k!="append"){this.cancelExpand()}}var d=this.dropNotAllowed;if(this.isValidDropPoint(b,k,i,h,g)){if(k){var a=b.ddel;var j;if(k=="above"){d=b.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";j="x-tree-drag-insert-above"}else{if(k=="below"){d=b.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";j="x-tree-drag-insert-below"}else{d="x-tree-drop-ok-append";j="x-tree-drag-append"}}if(this.lastInsertClass!=j){Ext.fly(a).replaceClass(this.lastInsertClass,j);this.lastInsertClass=j}}}return d},onNodeOut:function(d,a,c,b){this.cancelExpand();this.removeDropIndicators(d)},onNodeDrop:function(i,b,h,d){var a=this.getDropPoint(h,i,b);var g=i.node;g.ui.startDrop();if(!this.isValidDropPoint(i,a,b,h,d)){g.ui.endDrop();return false}var c=d.node||(b.getTreeNode?b.getTreeNode(d,g,a,h):null);return this.processDrop(g,d,a,b,h,c)},onContainerDrop:function(a,g,c){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,g,c)){var d=this.tree.getRootNode();d.ui.startDrop();var b=c.node||(a.getTreeNode?a.getTreeNode(c,d,"append",g):null);return this.processDrop(d,c,"append",a,g,b)}return false},processDrop:function(j,h,b,a,i,d){var g={tree:this.tree,target:j,data:h,point:b,source:a,rawEvent:i,dropNode:d,cancel:!d,dropStatus:false};var c=this.tree.fireEvent("beforenodedrop",g);if(c===false||g.cancel===true||!g.dropNode){j.ui.endDrop();return g.dropStatus}j=g.target;if(b=="append"&&!j.isExpanded()){j.expand(false,null,function(){this.completeDrop(g)}.createDelegate(this))}else{this.completeDrop(g)}return true},completeDrop:function(h){var d=h.dropNode,e=h.point,c=h.target;if(!Ext.isArray(d)){d=[d]}var g;for(var b=0,a=d.length;bd.offsetLeft){e.scrollLeft=d.offsetLeft}var a=Math.min(this.maxWidth,(e.clientWidth>20?e.clientWidth:e.offsetWidth)-Math.max(0,d.offsetLeft-e.scrollLeft)-5);this.setSize(a,"")},triggerEdit:function(a,c){this.completeEdit();if(a.attributes.editable!==false){this.editNode=a;if(this.tree.autoScroll){Ext.fly(a.ui.getEl()).scrollIntoView(this.tree.body)}var b=a.text||"";if(!Ext.isGecko&&Ext.isEmpty(a.text)){a.setText(" ")}this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[a.ui.textNode,b]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(a,b){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(a)){b.stopEvent();return this.triggerEdit(a)}},onNodeDblClick:function(a,b){clearTimeout(this.autoEditTimer)},updateNode:function(a,b){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(b)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui)}},onSpecialKey:function(c,b){var a=b.getKey();if(a==b.ESC){b.stopEvent();this.cancelEdit()}else{if(a==b.ENTER&&!b.hasModifier()){b.stopEvent();this.completeEdit()}}},onDestroy:function(){clearTimeout(this.autoEditTimer);Ext.tree.TreeEditor.superclass.onDestroy.call(this);var a=this.tree;a.un("beforeclick",this.beforeNodeClick,this);a.un("dblclick",this.onNodeDblClick,this)}});var swfobject=function(){var E="undefined",s="object",T="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",r="application/x-shockwave-flash",S="SWFObjectExprInst",y="onreadystatechange",P=window,k=document,u=navigator,U=false,V=[i],p=[],O=[],J=[],m,R,F,C,K=false,a=false,o,H,n=true,N=function(){var ab=typeof k.getElementById!=E&&typeof k.getElementsByTagName!=E&&typeof k.createElement!=E,ai=u.userAgent.toLowerCase(),Z=u.platform.toLowerCase(),af=Z?(/win/).test(Z):/win/.test(ai),ad=Z?(/mac/).test(Z):/mac/.test(ai),ag=/webkit/.test(ai)?parseFloat(ai.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,Y=!+"\v1",ah=[0,0,0],ac=null;if(typeof u.plugins!=E&&typeof u.plugins[T]==s){ac=u.plugins[T].description;if(ac&&!(typeof u.mimeTypes!=E&&u.mimeTypes[r]&&!u.mimeTypes[r].enabledPlugin)){U=true;Y=false;ac=ac.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ah[0]=parseInt(ac.replace(/^(.*)\..*$/,"$1"),10);ah[1]=parseInt(ac.replace(/^.*\.(.*)\s.*$/,"$1"),10);ah[2]=/[a-zA-Z]/.test(ac)?parseInt(ac.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof P.ActiveXObject!=E){try{var ae=new ActiveXObject(X);if(ae){ac=ae.GetVariable("$version");if(ac){Y=true;ac=ac.split(" ")[1].split(",");ah=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}}catch(aa){}}}return{w3:ab,pv:ah,wk:ag,ie:Y,win:af,mac:ad}}(),l=function(){if(!N.w3){return}if((typeof k.readyState!=E&&k.readyState=="complete")||(typeof k.readyState==E&&(k.getElementsByTagName("body")[0]||k.body))){g()}if(!K){if(typeof k.addEventListener!=E){k.addEventListener("DOMContentLoaded",g,false)}if(N.ie&&N.win){k.attachEvent(y,function(){if(k.readyState=="complete"){k.detachEvent(y,arguments.callee);g()}});if(P==top){(function(){if(K){return}try{k.documentElement.doScroll("left")}catch(Y){setTimeout(arguments.callee,0);return}g()})()}}if(N.wk){(function(){if(K){return}if(!(/loaded|complete/).test(k.readyState)){setTimeout(arguments.callee,0);return}g()})()}t(g)}}();function g(){if(K){return}try{var aa=k.getElementsByTagName("body")[0].appendChild(D("span"));aa.parentNode.removeChild(aa)}catch(ab){return}K=true;var Y=V.length;for(var Z=0;Z0){for(var ag=0;ag0){var af=c(Z);if(af){if(G(p[ag].swfVersion)&&!(N.wk&&N.wk<312)){x(Z,true);if(ac){ab.success=true;ab.ref=A(Z);ac(ab)}}else{if(p[ag].expressInstall&&B()){var aj={};aj.data=p[ag].expressInstall;aj.width=af.getAttribute("width")||"0";aj.height=af.getAttribute("height")||"0";if(af.getAttribute("class")){aj.styleclass=af.getAttribute("class")}if(af.getAttribute("align")){aj.align=af.getAttribute("align")}var ai={};var Y=af.getElementsByTagName("param");var ad=Y.length;for(var ae=0;ae'}}ab.outerHTML='"+ag+"";O[O.length]=aj.id;Y=c(aj.id)}else{var aa=D(s);aa.setAttribute("type",r);for(var ad in aj){if(aj[ad]!=Object.prototype[ad]){if(ad.toLowerCase()=="styleclass"){aa.setAttribute("class",aj[ad])}else{if(ad.toLowerCase()!="classid"){aa.setAttribute(ad,aj[ad])}}}}for(var ac in ah){if(ah[ac]!=Object.prototype[ac]&&ac.toLowerCase()!="movie"){e(aa,ac,ah[ac])}}ab.parentNode.replaceChild(aa,ab);Y=aa}}return Y}function e(aa,Y,Z){var ab=D("param");ab.setAttribute("name",Y);ab.setAttribute("value",Z);aa.appendChild(ab)}function z(Z){var Y=c(Z);if(Y&&Y.nodeName=="OBJECT"){if(N.ie&&N.win){Y.style.display="none";(function(){if(Y.readyState==4){b(Z)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.removeChild(Y)}}}function b(aa){var Z=c(aa);if(Z){for(var Y in Z){if(typeof Z[Y]=="function"){Z[Y]=null}}Z.parentNode.removeChild(Z)}}function c(aa){var Y=null;try{Y=k.getElementById(aa)}catch(Z){}return Y}function D(Y){return k.createElement(Y)}function j(aa,Y,Z){aa.attachEvent(Y,Z);J[J.length]=[aa,Y,Z]}function G(aa){var Z=N.pv,Y=aa.split(".");Y[0]=parseInt(Y[0],10);Y[1]=parseInt(Y[1],10)||0;Y[2]=parseInt(Y[2],10)||0;return(Z[0]>Y[0]||(Z[0]==Y[0]&&Z[1]>Y[1])||(Z[0]==Y[0]&&Z[1]==Y[1]&&Z[2]>=Y[2]))?true:false}function w(ad,Z,ae,ac){if(N.ie&&N.mac){return}var ab=k.getElementsByTagName("head")[0];if(!ab){return}var Y=(ae&&typeof ae=="string")?ae:"screen";if(ac){o=null;H=null}if(!o||H!=Y){var aa=D("style");aa.setAttribute("type","text/css");aa.setAttribute("media",Y);o=ab.appendChild(aa);if(N.ie&&N.win&&typeof k.styleSheets!=E&&k.styleSheets.length>0){o=k.styleSheets[k.styleSheets.length-1]}H=Y}if(N.ie&&N.win){if(o&&typeof o.addRule==s){o.addRule(ad,Z)}}else{if(o&&typeof k.createTextNode!=E){o.appendChild(k.createTextNode(ad+" {"+Z+"}"))}}}function x(aa,Y){if(!n){return}var Z=Y?"visible":"hidden";if(K&&c(aa)){c(aa).style.visibility=Z}else{w("#"+aa,"visibility:"+Z)}}function M(Z){var aa=/[\\\"<>\.;]/;var Y=aa.exec(Z)!=null;return Y&&typeof encodeURIComponent!=E?encodeURIComponent(Z):Z}var d=function(){if(N.ie&&N.win){window.attachEvent("onunload",function(){var ad=J.length;for(var ac=0;ac0){for(h=0;h-1&&e.position=="left"){e.position="bottom"}return e},onDestroy:function(){Ext.chart.CartesianChart.superclass.onDestroy.call(this);Ext.each(this.labelFn,function(a){this.removeFnProxy(a)},this)}});Ext.reg("cartesianchart",Ext.chart.CartesianChart);Ext.chart.LineChart=Ext.extend(Ext.chart.CartesianChart,{type:"line"});Ext.reg("linechart",Ext.chart.LineChart);Ext.chart.ColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"column"});Ext.reg("columnchart",Ext.chart.ColumnChart);Ext.chart.StackedColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackcolumn"});Ext.reg("stackedcolumnchart",Ext.chart.StackedColumnChart);Ext.chart.BarChart=Ext.extend(Ext.chart.CartesianChart,{type:"bar"});Ext.reg("barchart",Ext.chart.BarChart);Ext.chart.StackedBarChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackbar"});Ext.reg("stackedbarchart",Ext.chart.StackedBarChart);Ext.chart.Axis=function(a){Ext.apply(this,a)};Ext.chart.Axis.prototype={type:null,orientation:"horizontal",reverse:false,labelFunction:null,hideOverlappingLabels:true,labelSpacing:2};Ext.chart.NumericAxis=Ext.extend(Ext.chart.Axis,{type:"numeric",minimum:NaN,maximum:NaN,majorUnit:NaN,minorUnit:NaN,snapToUnits:true,alwaysShowZero:true,scale:"linear",roundMajorUnit:true,calculateByLabelSize:true,position:"left",adjustMaximumByMajorUnit:true,adjustMinimumByMajorUnit:true});Ext.chart.TimeAxis=Ext.extend(Ext.chart.Axis,{type:"time",minimum:null,maximum:null,majorUnit:NaN,majorTimeUnit:null,minorUnit:NaN,minorTimeUnit:null,snapToUnits:true,stackingEnabled:false,calculateByLabelSize:true});Ext.chart.CategoryAxis=Ext.extend(Ext.chart.Axis,{type:"category",categoryNames:null,calculateCategoryCount:false});Ext.chart.Series=function(a){Ext.apply(this,a)};Ext.chart.Series.prototype={type:null,displayName:null};Ext.chart.CartesianSeries=Ext.extend(Ext.chart.Series,{xField:null,yField:null,showInLegend:true,axis:"primary"});Ext.chart.ColumnSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"column"});Ext.chart.LineSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"line"});Ext.chart.BarSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"bar"});Ext.chart.PieSeries=Ext.extend(Ext.chart.Series,{type:"pie",dataField:null,categoryField:null});Ext.menu.Menu=Ext.extend(Ext.Container,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,enableScrolling:true,maxHeight:null,scrollIncrement:24,showSeparator:true,defaultOffsets:[0,0],plain:false,floating:true,zIndex:15000,hidden:true,layout:"menu",hideMode:"offsets",scrollerHeight:8,autoLayout:true,defaultType:"menuitem",bufferResize:false,initComponent:function(){if(Ext.isArray(this.initialConfig)){Ext.apply(this,{items:this.initialConfig})}this.addEvents("click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);if(this.floating){Ext.EventManager.onWindowResize(this.hide,this)}else{if(this.initialConfig.hidden!==false){this.hidden=false}this.internalDefaults={hideOnClick:false}}Ext.menu.Menu.superclass.initComponent.call(this);if(this.autoLayout){var a=this.doLayout.createDelegate(this,[]);this.on({add:a,remove:a})}},getLayoutTarget:function(){return this.ul},onRender:function(b,a){if(!b){b=Ext.getBody()}var c={id:this.getId(),cls:"x-menu "+((this.floating)?"x-menu-floating x-layer ":"")+(this.cls||"")+(this.plain?" x-menu-plain":"")+(this.showSeparator?"":" x-menu-nosep"),style:this.style,cn:[{tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"},{tag:"ul",cls:"x-menu-list"}]};if(this.floating){this.el=new Ext.Layer({shadow:this.shadow,dh:c,constrain:false,parentEl:b,zindex:this.zIndex})}else{this.el=b.createChild(c)}Ext.menu.Menu.superclass.onRender.call(this,b,a);if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this)}this.focusEl=this.el.child("a.x-menu-focus");this.ul=this.el.child("ul.x-menu-list");this.mon(this.ul,{scope:this,click:this.onClick,mouseover:this.onMouseOver,mouseout:this.onMouseOut});if(this.enableScrolling){this.mon(this.el,{scope:this,delegate:".x-menu-scroller",click:this.onScroll,mouseover:this.deactivateActive})}},findTargetItem:function(b){var a=b.getTarget(".x-menu-list-item",this.ul,true);if(a&&a.menuItemId){return this.items.get(a.menuItemId)}},onClick:function(b){var a=this.findTargetItem(b);if(a){if(a.isFormField){this.setActiveItem(a)}else{if(a instanceof Ext.menu.BaseItem){if(a.menu&&this.ignoreParentClicks){a.expandMenu();b.preventDefault()}else{if(a.onClick){a.onClick(b);this.fireEvent("click",this,a,b)}}}}}},setActiveItem:function(a,b){if(a!=this.activeItem){this.deactivateActive();if((this.activeItem=a).isFormField){a.focus()}else{a.activate(b)}}else{if(b){a.expandMenu()}}},deactivateActive:function(){var b=this.activeItem;if(b){if(b.isFormField){if(b.collapse){b.collapse()}}else{b.deactivate()}delete this.activeItem}},tryActivate:function(g,e){var b=this.items;for(var c=g,a=b.length;c>=0&&c=a.scrollHeight){this.onScrollerOut(null,b)}},onScrollerIn:function(d,b){var a=this.ul.dom,c=Ext.fly(b).is(".x-menu-scroller-top");if(c?a.scrollTop>0:a.scrollTop+this.activeMaxc){b=c;a=i-h}else{if(bb&&b>0){this.activeMax=b-this.scrollerHeight*2-this.el.getFrameWidth("tb")-Ext.num(this.el.shadowOffset,0);this.ul.setHeight(this.activeMax);this.createScrollers();this.el.select(".x-menu-scroller").setDisplayed("")}else{this.ul.setHeight(d);this.el.select(".x-menu-scroller").setDisplayed("none")}this.ul.dom.scrollTop=0;return a},createScrollers:function(){if(!this.scroller){this.scroller={pos:0,top:this.el.insertFirst({tag:"div",cls:"x-menu-scroller x-menu-scroller-top",html:" "}),bottom:this.el.createChild({tag:"div",cls:"x-menu-scroller x-menu-scroller-bottom",html:" "})};this.scroller.top.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.topRepeater=new Ext.util.ClickRepeater(this.scroller.top,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.top],false)}});this.scroller.bottom.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.bottomRepeater=new Ext.util.ClickRepeater(this.scroller.bottom,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.bottom],false)}})}},onLayout:function(){if(this.isVisible()){if(this.enableScrolling){this.constrainScroll(this.el.getTop())}if(this.floating){this.el.sync()}}},focus:function(){if(!this.hidden){this.doFocus.defer(50,this)}},doFocus:function(){if(!this.hidden){this.focusEl.focus()}},hide:function(a){if(!this.isDestroyed){this.deepHide=a;Ext.menu.Menu.superclass.hide.call(this);delete this.deepHide}},onHide:function(){Ext.menu.Menu.superclass.onHide.call(this);this.deactivateActive();if(this.el&&this.floating){this.el.hide()}var a=this.parentMenu;if(this.deepHide===true&&a){if(a.floating){a.hide(true)}else{a.deactivateActive()}}},lookupComponent:function(a){if(Ext.isString(a)){a=(a=="separator"||a=="-")?new Ext.menu.Separator():new Ext.menu.TextItem(a);this.applyDefaults(a)}else{if(Ext.isObject(a)){a=this.getMenuItem(a)}else{if(a.tagName||a.el){a=new Ext.BoxComponent({el:a})}}}return a},applyDefaults:function(b){if(!Ext.isString(b)){b=Ext.menu.Menu.superclass.applyDefaults.call(this,b);var a=this.internalDefaults;if(a){if(b.events){Ext.applyIf(b.initialConfig,a);Ext.apply(b,a)}else{Ext.applyIf(b,a)}}}return b},getMenuItem:function(a){a.ownerCt=this;if(!a.isXType){if(!a.xtype&&Ext.isBoolean(a.checked)){return new Ext.menu.CheckItem(a)}return Ext.create(a,this.defaultType)}return a},addSeparator:function(){return this.add(new Ext.menu.Separator())},addElement:function(a){return this.add(new Ext.menu.BaseItem({el:a}))},addItem:function(a){return this.add(a)},addMenuItem:function(a){return this.add(this.getMenuItem(a))},addText:function(a){return this.add(new Ext.menu.TextItem(a))},onDestroy:function(){Ext.EventManager.removeResizeListener(this.hide,this);var a=this.parentMenu;if(a&&a.activeChild==this){delete a.activeChild}delete this.parentMenu;Ext.menu.Menu.superclass.onDestroy.call(this);Ext.menu.MenuMgr.unregister(this);if(this.keyNav){this.keyNav.disable()}var b=this.scroller;if(b){Ext.destroy(b.topRepeater,b.bottomRepeater,b.top,b.bottom)}Ext.destroy(this.el,this.focusEl,this.ul)}});Ext.reg("menu",Ext.menu.Menu);Ext.menu.MenuNav=Ext.extend(Ext.KeyNav,function(){function a(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)-1,-1)){c.tryActivate(c.items.length-1,-1)}}function b(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)+1,1)){c.tryActivate(0,1)}}return{constructor:function(c){Ext.menu.MenuNav.superclass.constructor.call(this,c.el);this.scope=this.menu=c},doRelay:function(g,d){var c=g.getKey();if(this.menu.activeItem&&this.menu.activeItem.isFormField&&c!=g.TAB){return false}if(!this.menu.activeItem&&g.isNavKeyPress()&&c!=g.SPACE&&c!=g.RETURN){this.menu.tryActivate(0,1);return false}return d.call(this.scope||this,g,this.menu)},tab:function(d,c){d.stopEvent();if(d.shiftKey){a(d,c)}else{b(d,c)}},up:a,down:b,right:function(d,c){if(c.activeItem){c.activeItem.expandMenu(true)}},left:function(d,c){c.hide();if(c.parentMenu&&c.parentMenu.activeItem){c.parentMenu.activeItem.activate()}},enter:function(d,c){if(c.activeItem){d.stopPropagation();c.activeItem.onClick(d);c.fireEvent("click",this,c.activeItem);return true}}}}());Ext.menu.MenuMgr=function(){var h,e,b,d={},a=false,l=new Date();function n(){h={};e=new Ext.util.MixedCollection();b=Ext.getDoc().addKeyListener(27,j);b.disable()}function j(){if(e&&e.length>0){var o=e.clone();o.each(function(p){p.hide()});return true}return false}function g(o){e.remove(o);if(e.length<1){b.disable();Ext.getDoc().un("mousedown",m);a=false}}function k(o){var p=e.last();l=new Date();e.add(o);if(!a){b.enable();Ext.getDoc().on("mousedown",m);a=true}if(o.parentMenu){o.getEl().setZIndex(parseInt(o.parentMenu.getEl().getStyle("z-index"),10)+3);o.parentMenu.activeChild=o}else{if(p&&!p.isDestroyed&&p.isVisible()){o.getEl().setZIndex(parseInt(p.getEl().getStyle("z-index"),10)+3)}}}function c(o){if(o.activeChild){o.activeChild.hide()}if(o.autoHideTimer){clearTimeout(o.autoHideTimer);delete o.autoHideTimer}}function i(o){var p=o.parentMenu;if(!p&&!o.allowOtherMenus){j()}else{if(p&&p.activeChild){p.activeChild.hide()}}}function m(o){if(l.getElapsed()>50&&e.length>0&&!o.getTarget(".x-menu")){j()}}return{hideAll:function(){return j()},register:function(o){if(!h){n()}h[o.id]=o;o.on({beforehide:c,hide:g,beforeshow:i,show:k})},get:function(o){if(typeof o=="string"){if(!h){return null}return h[o]}else{if(o.events){return o}else{if(typeof o.length=="number"){return new Ext.menu.Menu({items:o})}else{return Ext.create(o,"menu")}}}},unregister:function(o){delete h[o.id];o.un("beforehide",c);o.un("hide",g);o.un("beforeshow",i);o.un("show",k)},registerCheckable:function(o){var p=o.group;if(p){if(!d[p]){d[p]=[]}d[p].push(o)}},unregisterCheckable:function(o){var p=o.group;if(p){d[p].remove(o)}},onCheckChange:function(q,r){if(q.group&&r){var t=d[q.group],p=0,o=t.length,s;for(;p',' target="{hrefTarget}"',"",">",'{altText}','{text}',"")}var c=this.getTemplateArgs();this.el=b?this.itemTpl.insertBefore(b,c,true):this.itemTpl.append(d,c,true);this.iconEl=this.el.child("img.x-menu-item-icon");this.textEl=this.el.child(".x-menu-item-text");if(!this.href){this.mon(this.el,"click",Ext.emptyFn,null,{preventDefault:true})}Ext.menu.Item.superclass.onRender.call(this,d,b)},getTemplateArgs:function(){return{id:this.id,cls:this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:""),href:this.href||"#",hrefTarget:this.hrefTarget,icon:this.icon||Ext.BLANK_IMAGE_URL,iconCls:this.iconCls||"",text:this.itemText||this.text||" ",altText:this.altText||""}},setText:function(a){this.text=a||" ";if(this.rendered){this.textEl.update(this.text);this.parentMenu.layout.doAutoSize()}},setIconClass:function(a){var b=this.iconCls;this.iconCls=a;if(this.rendered){this.iconEl.replaceClass(b,this.iconCls)}},beforeDestroy:function(){clearTimeout(this.showTimer);clearTimeout(this.hideTimer);if(this.menu){delete this.menu.ownerCt;this.menu.destroy()}Ext.menu.Item.superclass.beforeDestroy.call(this)},handleClick:function(a){if(!this.href){a.stopEvent()}Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(a){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(a){this.expandMenu()}}return true},shouldDeactivate:function(a){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,a)){if(this.menu&&this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(a.getPoint())}return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(a){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[a])}else{if(this.menu.isVisible()&&a){this.menu.tryActivate(0,1)}}}},deferExpand:function(a){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(a){this.menu.tryActivate(0,1)}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this)}},deferHide:function(){delete this.hideTimer;if(this.menu.over){this.parentMenu.setActiveItem(this,false)}else{this.menu.hide()}}});Ext.reg("menuitem",Ext.menu.Item);Ext.menu.CheckItem=Ext.extend(Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",initComponent:function(){Ext.menu.CheckItem.superclass.initComponent.call(this);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope)}Ext.menu.MenuMgr.registerCheckable(this)},onRender:function(a){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass)}if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(b,a){var c=a===true;if(this.checked!=b&&(c||this.fireEvent("beforecheckchange",this,b)!==false)){Ext.menu.MenuMgr.onCheckChange(this,b);if(this.container){this.container[b?"addClass":"removeClass"]("x-menu-item-checked")}this.checked=b;if(!c){this.fireEvent("checkchange",this,b)}}},handleClick:function(a){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked)}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}});Ext.reg("menucheckitem",Ext.menu.CheckItem);Ext.menu.DateMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,pickerId:null,cls:"x-date-menu",initComponent:function(){this.on("beforeshow",this.onBeforeShow,this);if(this.strict=(Ext.isIE7&&Ext.isStrict)){this.on("show",this.onShow,this,{single:true,delay:20})}Ext.apply(this,{plain:true,showSeparator:false,items:this.picker=new Ext.DatePicker(Ext.applyIf({internalRender:this.strict||!Ext.isIE9m,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig))});this.picker.purgeListeners();Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("show",this.picker.focus,this.picker);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}},menuHide:function(){if(this.hideOnClick){this.hide(true)}},onBeforeShow:function(){if(this.picker){this.picker.hideMonthPicker(true)}},onShow:function(){var a=this.picker.getEl();a.setWidth(a.getWidth())}});Ext.reg("datemenu",Ext.menu.DateMenu);Ext.menu.ColorMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,cls:"x-color-menu",paletteId:null,initComponent:function(){Ext.apply(this,{plain:true,showSeparator:false,items:this.palette=new Ext.ColorPalette(Ext.applyIf({id:this.paletteId},this.initialConfig))});this.palette.purgeListeners();Ext.menu.ColorMenu.superclass.initComponent.call(this);this.relayEvents(this.palette,["select"]);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}},menuHide:function(){if(this.hideOnClick){this.hide(true)}}});Ext.reg("colormenu",Ext.menu.ColorMenu);Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,submitValue:true,isFormField:true,msgDisplay:"",hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:this.name||this.id||""},onRender:function(c,a){if(!this.el){var b=this.getAutoCreate();if(!b.name){b.name=this.name||this.id}if(this.inputType){b.type=this.inputType}this.autoEl=b}Ext.form.Field.superclass.onRender.call(this,c,a);if(this.submitValue===false){this.el.dom.removeAttribute("name")}var d=this.el.dom.type;if(d){if(d=="password"){d="text"}this.el.addClass("x-form-"+d)}if(this.readOnly){this.setReadOnly(true)}if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabIndex",this.tabIndex)}this.el.addClass([this.fieldClass,this.cls])},getItemCt:function(){return this.itemCt},initValue:function(){if(this.value!==undefined){this.setValue(this.value)}else{if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value)}}this.originalValue=this.getValue()},isDirty:function(){if(this.disabled||!this.rendered){return false}return String(this.getValue())!==String(this.originalValue)},setReadOnly:function(a){if(this.rendered){this.el.dom.readOnly=a}this.readOnly=a},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue()},fireKey:function(a){if(a.isSpecialKey()){this.fireEvent("specialkey",this,a)}},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.mon(this.el,Ext.EventManager.getKeyEvent(),this.fireKey,this);this.mon(this.el,"focus",this.onFocus,this);this.mon(this.el,"blur",this.onBlur,this,this.inEditor?{buffer:10}:null)},preFocus:Ext.emptyFn,onFocus:function(){this.preFocus();if(this.focusClass){this.el.addClass(this.focusClass)}if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(this.focusClass){this.el.removeClass(this.focusClass)}this.hasFocus=false;if(this.validationEvent!==false&&(this.validateOnBlur||this.validationEvent=="blur")){this.validate()}var a=this.getValue();if(String(a)!==String(this.startValue)){this.fireEvent("change",this,a,this.startValue)}this.fireEvent("blur",this);this.postBlur()},postBlur:Ext.emptyFn,isValid:function(a){if(this.disabled){return true}var c=this.preventMark;this.preventMark=a===true;var b=this.validateValue(this.processValue(this.getRawValue()),a);this.preventMark=c;return b},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(a){return a},validateValue:function(b){var a=this.getErrors(b)[0];if(a==undefined){return true}else{this.markInvalid(a);return false}},getErrors:function(){return[]},getActiveError:function(){return this.activeError||""},markInvalid:function(c){if(this.rendered&&!this.preventMark){c=c||this.invalidText;var a=this.getMessageHandler();if(a){a.mark(this,c)}else{if(this.msgTarget){this.el.addClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML=c;b.style.display=this.msgDisplay}}}}this.setActiveError(c)},clearInvalid:function(){if(this.rendered&&!this.preventMark){this.el.removeClass(this.invalidClass);var a=this.getMessageHandler();if(a){a.clear(this)}else{if(this.msgTarget){this.el.removeClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML="";b.style.display="none"}}}}this.unsetActiveError()},setActiveError:function(b,a){this.activeError=b;if(a!==true){this.fireEvent("invalid",this,b)}},unsetActiveError:function(a){delete this.activeError;if(a!==true){this.fireEvent("valid",this)}},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget]},getErrorCt:function(){return this.el.findParent(".x-form-element",5,true)||this.el.findParent(".x-form-field-wrap",5,true)},alignErrorEl:function(){this.errorEl.setWidth(this.getErrorCt().getWidth(true)-20)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},getRawValue:function(){var a=this.rendered?this.el.getValue():Ext.value(this.value,"");if(a===this.emptyText){a=""}return a},getValue:function(){if(!this.rendered){return this.value}var a=this.el.getValue();if(a===this.emptyText||a===undefined){a=""}return a},setRawValue:function(a){return this.rendered?(this.el.dom.value=(Ext.isEmpty(a)?"":a)):""},setValue:function(a){this.value=a;if(this.rendered){this.el.dom.value=(Ext.isEmpty(a)?"":a);this.validate()}return this},append:function(a){this.setValue([this.getValue(),a].join(""))}});Ext.form.MessageTargets={qtip:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.qtip=b;a.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}},clear:function(a){a.el.removeClass(a.invalidClass);a.el.dom.qtip=""}},title:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.title=b},clear:function(a){a.el.dom.title=""}},under:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorEl){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorEl=a.createChild({cls:"x-form-invalid-msg"});b.on("resize",b.alignErrorEl,b);b.on("destroy",function(){Ext.destroy(this.errorEl)},b)}b.alignErrorEl();b.errorEl.update(c);Ext.form.Field.msgFx[b.msgFx].show(b.errorEl,b)},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorEl){Ext.form.Field.msgFx[a.msgFx].hide(a.errorEl,a)}else{a.el.dom.title=""}}},side:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorIcon){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorIcon=a.createChild({cls:"x-form-invalid-icon"});if(b.ownerCt){b.ownerCt.on("afterlayout",b.alignErrorIcon,b);b.ownerCt.on("expand",b.alignErrorIcon,b)}b.on("resize",b.alignErrorIcon,b);b.on("destroy",function(){Ext.destroy(this.errorIcon)},b)}b.alignErrorIcon();b.errorIcon.dom.qtip=c;b.errorIcon.dom.qclass="x-form-invalid-tip";b.errorIcon.show()},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorIcon){a.errorIcon.dom.qtip="";a.errorIcon.hide()}else{a.el.dom.title=""}}}};Ext.form.Field.msgFx={normal:{show:function(a,b){a.setDisplayed("block")},hide:function(a,b){a.setDisplayed(false).update("")}},slide:{show:function(a,b){a.slideIn("t",{stopFx:true})},hide:function(a,b){a.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(a,b){a.fixDisplay();a.alignTo(b.el,"tl-tr");a.slideIn("l",{stopFx:true})},hide:function(a,b){a.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field);Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.mon(this.el,"keyup",this.filterValidation,this)}else{if(this.validationEvent!==false&&this.validationEvent!="blur"){this.mon(this.el,this.validationEvent,this.validate,this,{buffer:this.validationDelay})}}if(this.selectOnFocus||this.emptyText){this.mon(this.el,"mousedown",this.onMouseDown,this);if(this.emptyText){this.applyEmptyText()}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.mon(this.el,"keypress",this.filterKeys,this)}if(this.grow){this.mon(this.el,"keyup",this.onKeyUpBuffered,this,{buffer:50});this.mon(this.el,"click",this.autoSize,this)}if(this.enableKeyEvents){this.mon(this.el,{scope:this,keyup:this.onKeyUp,keydown:this.onKeyDown,keypress:this.onKeyPress})}},onMouseDown:function(a){if(!this.hasFocus){this.mon(this.el,"mouseup",Ext.emptyFn,this,{single:true,preventDefault:true})}},processValue:function(a){if(this.stripCharsRe){var b=a.replace(this.stripCharsRe,"");if(b!==a){this.setRawValue(b);return b}}return a},filterValidation:function(a){if(!a.isNavKeyPress()){this.validationTask.delay(this.validationDelay)}},onDisable:function(){Ext.form.TextField.superclass.onDisable.call(this);if(Ext.isIE){this.el.dom.unselectable="on"}},onEnable:function(){Ext.form.TextField.superclass.onEnable.call(this);if(Ext.isIE){this.el.dom.unselectable=""}},onKeyUpBuffered:function(a){if(this.doAutoSize(a)){this.autoSize()}},doAutoSize:function(a){return !a.isNavKeyPress()},onKeyUp:function(a){this.fireEvent("keyup",this,a)},onKeyDown:function(a){this.fireEvent("keydown",this,a)},onKeyPress:function(a){this.fireEvent("keypress",this,a)},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1&&!this.hasFocus){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){var a=this.el,b;if(this.emptyText){if(a.dom.value==this.emptyText){this.setRawValue("");b=true}a.removeClass(this.emptyClass)}if(this.selectOnFocus||b){a.dom.select()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(b){if(b.ctrlKey){return}var a=b.getKey();if(Ext.isGecko&&(b.isNavKeyPress()||a==b.BACKSPACE||(a==b.DELETE&&b.button==-1))){return}var c=String.fromCharCode(b.getCharCode());if(!Ext.isGecko&&b.isSpecialKey()&&!c){return}if(!this.maskRe.test(c)){b.stopEvent()}},setValue:function(a){if(this.emptyText&&this.el&&!Ext.isEmpty(a)){this.el.removeClass(this.emptyClass)}Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize();return this},getErrors:function(a){var d=Ext.form.TextField.superclass.getErrors.apply(this,arguments);a=Ext.isDefined(a)?a:this.processValue(this.getRawValue());if(Ext.isFunction(this.validator)){var c=this.validator(a);if(c!==true){d.push(c)}}if(a.length<1||a===this.emptyText){if(this.allowBlank){return d}else{d.push(this.blankText)}}if(!this.allowBlank&&(a.length<1||a===this.emptyText)){d.push(this.blankText)}if(a.lengththis.maxLength){d.push(String.format(this.maxLengthText,this.maxLength))}if(this.vtype){var b=Ext.form.VTypes;if(!b[this.vtype](a,this)){d.push(this.vtypeText||b[this.vtype+"Text"])}}if(this.regex&&!this.regex.test(a)){d.push(this.regexText)}return d},selectText:function(h,a){var c=this.getRawValue();var e=false;if(c.length>0){h=h===undefined?0:h;a=a===undefined?c.length:a;var g=this.el.dom;if(g.setSelectionRange){g.setSelectionRange(h,a)}else{if(g.createTextRange){var b=g.createTextRange();b.moveStart("character",h);b.moveEnd("character",a-c.length);b.select()}}e=Ext.isGecko||Ext.isOpera}else{e=true}if(e){this.focus()}},autoSize:function(){if(!this.grow||!this.rendered){return}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var c=this.el;var b=c.dom.value;var e=document.createElement("div");e.appendChild(document.createTextNode(b));b=e.innerHTML;Ext.removeNode(e);e=null;b+=" ";var a=Math.min(this.growMax,Math.max(this.metrics.getWidth(b)+10,this.growMin));this.el.setWidth(a);this.fireEvent("autosize",this,a)},onDestroy:function(){if(this.validationTask){this.validationTask.cancel();this.validationTask=null}Ext.form.TextField.superclass.onDestroy.call(this)}});Ext.reg("textfield",Ext.form.TextField);Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,editable:true,readOnly:false,wrapFocusClass:"x-trigger-wrap-focus",autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,actionMode:"wrap",defaultTriggerWidth:17,onResize:function(a,c){Ext.form.TriggerField.superclass.onResize.call(this,a,c);var b=this.getTriggerWidth();if(Ext.isNumber(a)){this.el.setWidth(a-b)}this.wrap.setWidth(this.el.getWidth()+b)},getTriggerWidth:function(){var a=this.trigger.getWidth();if(!this.hideTrigger&&!this.readOnly&&a===0){a=this.defaultTriggerWidth}return a},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},onRender:function(b,a){this.doc=Ext.isIE?Ext.getBody():Ext.getDoc();Ext.form.TriggerField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-field-trigger-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,alt:"",cls:"x-form-trigger "+this.triggerClass});this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}this.resizeEl=this.positionEl=this.wrap},getWidth:function(){return(this.el.getWidth()+this.trigger.getWidth())},updateEditState:function(){if(this.rendered){if(this.readOnly){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this);this.trigger.setDisplayed(false)}else{if(!this.editable){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mon(this.el,"click",this.onTriggerClick,this)}else{this.el.dom.readOnly=false;this.el.removeClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this)}this.trigger.setDisplayed(!this.hideTrigger)}this.onResize(this.width||this.wrap.getWidth())}},setHideTrigger:function(a){if(a!=this.hideTrigger){this.hideTrigger=a;this.updateEditState()}},setEditable:function(a){if(a!=this.editable){this.editable=a;this.updateEditState()}},setReadOnly:function(a){if(a!=this.readOnly){this.readOnly=a;this.updateEditState()}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);this.updateEditState()},initTrigger:function(){this.mon(this.trigger,"click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){Ext.destroy(this.trigger,this.wrap);if(this.mimicing){this.doc.un("mousedown",this.mimicBlur,this)}delete this.doc;Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass(this.wrapFocusClass);this.mimicing=true;this.doc.on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.on("specialkey",this.checkTab,this)}}},checkTab:function(a,b){if(b.getKey()==b.TAB){this.triggerBlur()}},onBlur:Ext.emptyFn,mimicBlur:function(a){if(!this.isDestroyed&&!this.wrap.contains(a.target)&&this.validateBlur(a)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;this.doc.un("mousedown",this.mimicBlur,this);if(this.monitorTab&&this.el){this.un("specialkey",this.checkTab,this)}Ext.form.TriggerField.superclass.onBlur.call(this);if(this.wrap){this.wrap.removeClass(this.wrapFocusClass)}},beforeBlur:Ext.emptyFn,validateBlur:function(a){return true},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,alt:"",cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,alt:"",cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(a){return this.triggers[a]},afterRender:function(){Ext.form.TwinTriggerField.superclass.afterRender.call(this);var c=this.triggers,b=0,a=c.length;for(;b")}}d.innerHTML=a;b=Math.min(this.growMax,Math.max(d.offsetHeight,this.growMin));if(b!=this.lastHeight){this.lastHeight=b;this.el.setHeight(b);this.fireEvent("autosize",this,b)}}});Ext.reg("textarea",Ext.form.TextArea);Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",autoStripChars:false,initEvents:function(){var a=this.baseChars+"";if(this.allowDecimals){a+=this.decimalSeparator}if(this.allowNegative){a+="-"}a=Ext.escapeRe(a);this.maskRe=new RegExp("["+a+"]");if(this.autoStripChars){this.stripCharsRe=new RegExp("[^"+a+"]","gi")}Ext.form.NumberField.superclass.initEvents.call(this)},getErrors:function(b){var c=Ext.form.NumberField.superclass.getErrors.apply(this,arguments);b=Ext.isDefined(b)?b:this.processValue(this.getRawValue());if(b.length<1){return c}b=String(b).replace(this.decimalSeparator,".");if(isNaN(b)){c.push(String.format(this.nanText,b))}var a=this.parseValue(b);if(athis.maxValue){c.push(String.format(this.maxText,this.maxValue))}return c},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(a){a=Ext.isNumber(a)?a:parseFloat(String(a).replace(this.decimalSeparator,"."));a=this.fixPrecision(a);a=isNaN(a)?"":String(a).replace(".",this.decimalSeparator);return Ext.form.NumberField.superclass.setValue.call(this,a)},setMinValue:function(a){this.minValue=Ext.num(a,Number.NEGATIVE_INFINITY)},setMaxValue:function(a){this.maxValue=Ext.num(a,Number.MAX_VALUE)},parseValue:function(a){a=parseFloat(String(a).replace(this.decimalSeparator,"."));return isNaN(a)?"":a},fixPrecision:function(b){var a=isNaN(b);if(!this.allowDecimals||this.decimalPrecision==-1||a||!b){return a?"":b}return parseFloat(parseFloat(b).toFixed(this.decimalPrecision))},beforeBlur:function(){var a=this.parseValue(this.getRawValue());if(!Ext.isEmpty(a)){this.setValue(a)}}});Ext.reg("numberfield",Ext.form.NumberField);Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:true,startDay:0,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initTime:"12",initTimeFormat:"H",safeParse:function(b,c){if(Date.formatContainsHourInfo(c)){return Date.parseDate(b,c)}else{var a=Date.parseDate(b+" "+this.initTime,c+" "+this.initTimeFormat);if(a){return a.clearTime()}}},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);this.addEvents("select");if(Ext.isString(this.minValue)){this.minValue=this.parseDate(this.minValue)}if(Ext.isString(this.maxValue)){this.maxValue=this.parseDate(this.maxValue)}this.disabledDatesRE=null;this.initDisabledDays()},initEvents:function(){Ext.form.DateField.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{down:function(a){this.onTriggerClick()},scope:this,forceKeyDown:true})},initDisabledDays:function(){if(this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a){c+="|"}},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){this.disabledDates=a;this.initDisabledDays();if(this.menu){this.menu.picker.setDisabledDates(this.disabledDatesRE)}},setDisabledDays:function(a){this.disabledDays=a;if(this.menu){this.menu.picker.setDisabledDays(a)}},setMinValue:function(a){this.minValue=(Ext.isString(a)?this.parseDate(a):a);if(this.menu){this.menu.picker.setMinDate(this.minValue)}},setMaxValue:function(a){this.maxValue=(Ext.isString(a)?this.parseDate(a):a);if(this.menu){this.menu.picker.setMaxDate(this.maxValue)}},getErrors:function(e){var h=Ext.form.DateField.superclass.getErrors.apply(this,arguments);e=this.formatDate(e||this.processValue(this.getRawValue()));if(e.length<1){return h}var c=e;e=this.parseDate(e);if(!e){h.push(String.format(this.invalidText,c,this.format));return h}var g=e.getTime();if(this.minValue&&gthis.maxValue.clearTime().getTime()){h.push(String.format(this.maxText,this.formatDate(this.maxValue)))}if(this.disabledDays){var a=e.getDay();for(var b=0;b
    {'+this.displayField+"}
    "}this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+a+"-item",emptyText:this.listEmptyText,deferEmptyText:false});this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this});this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.mon(this.resizer,"resize",function(g,d,e){this.maxHeight=e-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=d;this.innerList.setWidth(d-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},getListParent:function(){return document.body},getStore:function(){return this.store},bindStore:function(a,b){if(this.store&&!b){if(this.store!==a&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.collapse,this)}if(!a){this.store=null;if(this.view){this.view.bindStore(null)}if(this.pageTb){this.pageTb.bindStore(null)}}}if(a){if(!b){this.lastQuery=null;if(this.pageTb){this.pageTb.bindStore(a)}}this.store=Ext.StoreMgr.lookup(a);this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.collapse});if(this.view){this.view.bindStore(a)}}},reset:function(){if(this.clearFilterOnReset&&this.mode=="local"){this.store.clearFilter()}Ext.form.ComboBox.superclass.reset.call(this)},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{up:function(a){this.inKeyMode=true;this.selectPrev()},down:function(a){if(!this.isExpanded()){this.onTriggerClick()}else{this.inKeyMode=true;this.selectNext()}},enter:function(a){this.onViewClick()},esc:function(a){this.collapse()},tab:function(a){if(this.forceSelection===true){this.collapse()}else{this.onViewClick(false)}return true},scope:this,doRelay:function(c,b,a){if(a=="down"||this.scope.isExpanded()){var d=Ext.KeyNav.prototype.doRelay.apply(this,arguments);if((((Ext.isIE9&&Ext.isStrict)||Ext.isIE10p)||!Ext.isIE)&&Ext.EventManager.useKeydown){this.scope.fireKey(c)}return d}return true},forceKeyDown:true,defaultEventAction:"stopEvent"});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(!this.enableKeyEvents){this.mon(this.el,"keyup",this.onKeyUp,this)}},onDestroy:function(){if(this.dqTask){this.dqTask.cancel();this.dqTask=null}this.bindStore(null);Ext.destroy(this.resizer,this.view,this.pageTb,this.list);Ext.destroyMembers(this,"hiddenField");Ext.form.ComboBox.superclass.onDestroy.call(this)},fireKey:function(a){if(!this.isExpanded()){Ext.form.ComboBox.superclass.fireKey.call(this,a)}},onResize:function(a,b){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(!isNaN(a)&&this.isVisible()&&this.list){this.doResize(a)}else{this.bufferSize=a}},doResize:function(a){if(!Ext.isDefined(this.listWidth)){var b=Math.max(a,this.minListWidth);this.list.setWidth(b);this.innerList.setWidth(b-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true}},onBeforeLoad:function(){if(!this.hasFocus){return}this.innerList.update(this.loadingText?'
    '+this.loadingText+"
    ":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus){return}if(this.store.getCount()>0||this.listEmptyText){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select()}if(this.autoSelect!==false&&!this.selectByValue(this.value,true)){this.select(0,true)}}else{if(this.autoSelect!==false){this.selectNext()}if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay)}}}else{this.collapse()}},onTypeAhead:function(){if(this.store.getCount()>0){var b=this.store.getAt(0);var c=b.data[this.displayField];var a=c.length;var d=this.getRawValue().length;if(d!=a){this.setRawValue(c);this.selectText(d,c.length)}}},assertValue:function(){var b=this.getRawValue(),a;if(this.valueField&&Ext.isDefined(this.value)){a=this.findRecord(this.valueField,this.value)}if(!a||a.get(this.displayField)!=b){a=this.findRecord(this.displayField,b)}if(!a&&this.forceSelection){if(b.length>0&&b!=this.emptyText){this.el.dom.value=Ext.value(this.lastSelectionText,"");this.applyEmptyText()}else{this.clearValue()}}else{if(a&&this.valueField){if(this.value==b){return}b=a.get(this.valueField||this.displayField)}this.setValue(b)}},onSelect:function(a,b){if(this.fireEvent("beforeselect",this,a,b)!==false){this.setValue(a.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,a,b)}},getName:function(){var a=this.hiddenField;return a&&a.name?a.name:this.hiddenName||Ext.form.ComboBox.superclass.getName.call(this)},getValue:function(){if(this.valueField){return Ext.isDefined(this.value)?this.value:""}else{return Ext.form.ComboBox.superclass.getValue.call(this)}},clearValue:function(){if(this.hiddenField){this.hiddenField.value=""}this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(a){var c=a;if(this.valueField){var b=this.findRecord(this.valueField,a);if(b){c=b.data[this.displayField]}else{if(Ext.isDefined(this.valueNotFoundText)){c=this.valueNotFoundText}}}this.lastSelectionText=c;if(this.hiddenField){this.hiddenField.value=Ext.value(a,"")}Ext.form.ComboBox.superclass.setValue.call(this,c);this.value=a;return this},findRecord:function(c,b){var a;if(this.store.getCount()>0){this.store.each(function(d){if(d.data[c]==b){a=d;return false}})}return a},onViewMove:function(b,a){this.inKeyMode=false},onViewOver:function(d,b){if(this.inKeyMode){return}var c=this.view.findItemFromChild(b);if(c){var a=this.view.indexOf(c);this.select(a,false)}},onViewClick:function(b){var a=this.view.getSelectedIndexes()[0],c=this.store,d=c.getAt(a);if(d){this.onSelect(d,a)}else{this.collapse()}if(b!==false){this.el.focus()}},restrictHeight:function(){this.innerList.dom.style.height="";var b=this.innerList.dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,g=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,g,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.endUpdate()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(a,c){if(!Ext.isEmpty(a,true)){var b=this.findRecord(this.valueField||this.displayField,a);if(b){this.select(this.store.indexOf(b),c);return true}}return false},select:function(a,c){this.selectedIndex=a;this.view.select(a);if(c!==false){var b=this.view.getNode(a);if(b){this.innerList.scrollChildIntoView(b,false)}}},selectNext:function(){var a=this.store.getCount();if(a>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex!==0){this.select(this.selectedIndex-1)}}}},onKeyUp:function(b){var a=b.getKey();if(this.editable!==false&&this.readOnly!==true&&(a==b.BACKSPACE||!b.isSpecialKey())){this.lastKey=a;this.dqTask.delay(this.queryDelay)}Ext.form.ComboBox.superclass.onKeyUp.call(this,b)},validateBlur:function(){return !this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},beforeBlur:function(){this.assertValue()},postBlur:function(){Ext.form.ComboBox.superclass.postBlur.call(this);this.collapse();this.inKeyMode=false},doQuery:function(c,b){c=Ext.isEmpty(c)?"":c;var a={query:c,forceAll:b,combo:this,cancel:false};if(this.fireEvent("beforequery",a)===false||a.cancel){return false}c=a.query;b=a.forceAll;if(b===true||(c.length>=this.minChars)){if(this.lastQuery!==c){this.lastQuery=c;if(this.mode=="local"){this.selectedIndex=-1;if(b){this.store.clearFilter()}else{this.store.filter(this.displayField,c)}this.onLoad()}else{this.store.baseParams[this.queryParam]=c;this.store.load({params:this.getParams(c)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}}},getParams:function(a){var b={},c=this.store.paramNames;if(this.pageSize){b[c.start]=0;b[c.limit]=this.pageSize}return b},collapse:function(){if(!this.isExpanded()){return}this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(a){if(!this.isDestroyed&&!a.within(this.wrap)&&!a.within(this.list)){this.collapse()}},expand:function(){if(this.isExpanded()||!this.hasFocus){return}if(this.title||this.pageSize){this.assetHeight=0;if(this.title){this.assetHeight+=this.header.getHeight()}if(this.pageSize){this.assetHeight+=this.footer.getHeight()}}if(this.bufferSize){this.doResize(this.bufferSize);delete this.bufferSize}this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.setZIndex(this.getZIndex());this.list.show();if(Ext.isGecko2){this.innerList.setOverflow("auto")}this.mon(Ext.getDoc(),{scope:this,mousewheel:this.collapseIf,mousedown:this.collapseIf});this.fireEvent("expand",this)},onTriggerClick:function(){if(this.readOnly||this.disabled){return}if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true)}else{this.doQuery(this.getRawValue())}this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox);Ext.form.Checkbox=Ext.extend(Ext.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,boxLabel:" ",defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},actionMode:"wrap",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel){this.el.alignTo(this.wrap,"c-c")}},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.mon(this.el,{scope:this,click:this.onClick,change:this.onClick})},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,onRender:function(b,a){Ext.form.Checkbox.superclass.onRender.call(this,b,a);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}if(this.checked){this.setValue(true)}else{this.checked=this.el.dom.checked}if(Ext.isIEQuirks){this.wrap.repaint()}this.resizeEl=this.positionEl=this.wrap},onDestroy:function(){Ext.destroy(this.wrap);Ext.form.Checkbox.superclass.onDestroy.call(this)},initValue:function(){this.originalValue=this.getValue()},getValue:function(){if(this.rendered){return this.el.dom.checked}return this.checked},onClick:function(){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.checked)}},setValue:function(a){var c=this.checked,b=this.inputValue;if(a===false){this.checked=false}else{this.checked=(a===true||a==="true"||a=="1"||(b?a==b:String(a).toLowerCase()=="on"))}if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}if(c!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}}return this}});Ext.reg("checkbox",Ext.form.Checkbox);Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",initComponent:function(){this.addEvents("change");this.on("change",this.validate,this);Ext.form.CheckboxGroup.superclass.initComponent.call(this)},onRender:function(j,g){if(!this.el){var p={autoEl:{id:this.id},cls:this.groupCls,layout:"column",renderTo:j,bufferResize:false};var a={xtype:"container",defaultType:this.defaultType,layout:"form",defaults:{hideLabel:true,anchor:"100%"}};if(this.items[0].items){Ext.apply(p,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var e=0,m=this.items.length;e0&&e%r==0){o++}if(this.items[e].fieldLabel){this.items[e].hideLabel=false}n[o].items.push(this.items[e])}}else{for(var e=0,m=this.items.length;e-1){b.setValue(true)}})},getBox:function(b){var a=null;this.eachItem(function(c){if(b==c||c.dataIndex==b||c.id==b||c.getName()==b){a=c;return false}});return a},getValue:function(){var a=[];this.eachItem(function(b){if(b.checked){a.push(b)}});return a},eachItem:function(b,a){if(this.items&&this.items.each){this.items.each(b,a||this)}},getRawValue:Ext.emptyFn,setRawValue:Ext.emptyFn});Ext.reg("checkboxgroup",Ext.form.CheckboxGroup);Ext.form.CompositeField=Ext.extend(Ext.form.Field,{defaultMargins:"0 5 0 0",skipLastItemMargin:true,isComposite:true,combineErrors:true,labelConnector:", ",initComponent:function(){var g=[],b=this.items,e;for(var d=0,c=b.length;d")},sortErrors:function(){var a=this.items;this.fieldErrors.sort("ASC",function(g,d){var c=function(b){return function(i){return i.getName()==b}};var h=a.findIndexBy(c(g.field)),e=a.findIndexBy(c(d.field));return h1){var a=this.getBox(c);if(a){a.setValue(b);if(a.checked){this.eachItem(function(d){if(d!==a){d.setValue(false)}})}}}else{this.setValueForItem(c)}},setValueForItem:function(a){a=String(a).split(",")[0];this.eachItem(function(b){b.setValue(a==b.inputValue)})},fireChecked:function(){if(!this.checkTask){this.checkTask=new Ext.util.DelayedTask(this.bufferChecked,this)}this.checkTask.delay(10)},bufferChecked:function(){var a=null;this.eachItem(function(b){if(b.checked){a=b;return false}});this.fireEvent("change",this,a)},onDestroy:function(){if(this.checkTask){this.checkTask.cancel();this.checkTask=null}Ext.form.RadioGroup.superclass.onDestroy.call(this)}});Ext.reg("radiogroup",Ext.form.RadioGroup);Ext.form.Hidden=Ext.extend(Ext.form.Field,{inputType:"hidden",shouldLayout:false,onRender:function(){Ext.form.Hidden.superclass.onRender.apply(this,arguments)},initEvents:function(){this.originalValue=this.getValue()},setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg("hidden",Ext.form.Hidden);Ext.form.BasicForm=Ext.extend(Ext.util.Observable,{constructor:function(b,a){Ext.apply(this,a);if(Ext.isString(this.paramOrder)){this.paramOrder=this.paramOrder.split(/[\s,|]/)}this.items=new Ext.util.MixedCollection(false,function(c){return c.getItemId()});this.addEvents("beforeaction","actionfailed","actioncomplete");if(b){this.initEl(b)}Ext.form.BasicForm.superclass.constructor.call(this)},timeout:30,paramOrder:undefined,paramsAsHash:false,waitTitle:"Please Wait...",activeAction:null,trackResetOnLoad:false,initEl:function(a){this.el=Ext.get(a);this.id=this.el.id||Ext.id();if(!this.standardSubmit){this.el.on("submit",this.onSubmit,this)}this.el.addClass("x-form")},getEl:function(){return this.el},onSubmit:function(a){a.stopEvent()},destroy:function(a){if(a!==true){this.items.each(function(b){Ext.destroy(b)});Ext.destroy(this.el)}this.items.clear();this.purgeListeners()},isValid:function(){var a=true;this.items.each(function(b){if(!b.validate()){a=false}});return a},isDirty:function(){var a=false;this.items.each(function(b){if(b.isDirty()){a=true;return false}});return a},doAction:function(b,a){if(Ext.isString(b)){b=new Ext.form.Action.ACTION_TYPES[b](this,a)}if(this.fireEvent("beforeaction",this,b)!==false){this.beforeAction(b);b.run.defer(100,b)}return this},submit:function(b){b=b||{};if(this.standardSubmit){var a=b.clientValidation===false||this.isValid();if(a){var c=this.el.dom;if(this.url&&Ext.isEmpty(c.action)){c.action=this.url}c.submit()}return a}var d=String.format("{0}submit",this.api?"direct":"");this.doAction(d,b);return this},load:function(a){var b=String.format("{0}load",this.api?"direct":"");this.doAction(b,a);return this},updateRecord:function(b){b.beginEdit();var a=b.fields,d,c;a.each(function(e){d=this.findField(e.name);if(d){c=d.getValue();if(Ext.type(c)!==false&&c.getGroupValue){c=c.getGroupValue()}else{if(d.eachItem){c=[];d.eachItem(function(g){c.push(g.getValue())})}}b.set(e.name,c)}},this);b.endEdit();return this},loadRecord:function(a){this.setValues(a.data);return this},beforeAction:function(a){this.items.each(function(c){if(c.isFormField&&c.syncValue){c.syncValue()}});var b=a.options;if(b.waitMsg){if(this.waitMsgTarget===true){this.el.mask(b.waitMsg,"x-mask-loading")}else{if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(b.waitMsg,"x-mask-loading")}else{Ext.MessageBox.wait(b.waitMsg,b.waitTitle||this.waitTitle)}}}},afterAction:function(a,c){this.activeAction=null;var b=a.options;if(b.waitMsg){if(this.waitMsgTarget===true){this.el.unmask()}else{if(this.waitMsgTarget){this.waitMsgTarget.unmask()}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide()}}}if(c){if(b.reset){this.reset()}Ext.callback(b.success,b.scope,[this,a]);this.fireEvent("actioncomplete",this,a)}else{Ext.callback(b.failure,b.scope,[this,a]);this.fireEvent("actionfailed",this,a)}},findField:function(c){var b=this.items.get(c);if(!Ext.isObject(b)){var a=function(d){if(d.isFormField){if(d.dataIndex==c||d.id==c||d.getName()==c){b=d;return false}else{if(d.isComposite){return d.items.each(a)}else{if(d instanceof Ext.form.CheckboxGroup&&d.rendered){return d.eachItem(a)}}}}};this.items.each(a)}return b||null},markInvalid:function(h){if(Ext.isArray(h)){for(var c=0,a=h.length;c':">"),c,"")}return d.join("")},createToolbar:function(e){var c=[];var a=Ext.QuickTips&&Ext.QuickTips.isEnabled();function d(j,h,i){return{itemId:j,cls:"x-btn-icon",iconCls:"x-edit-"+j,enableToggle:h!==false,scope:e,handler:i||e.relayBtnCmd,clickEvent:"mousedown",tooltip:a?e.buttonTips[j]||undefined:undefined,overflowText:e.buttonTips[j].title||undefined,tabIndex:-1}}if(this.enableFont&&!Ext.isSafari2){var g=new Ext.Toolbar.Item({autoEl:{tag:"select",cls:"x-font-select",html:this.createFontOptions()}});c.push(g,"-")}if(this.enableFormat){c.push(d("bold"),d("italic"),d("underline"))}if(this.enableFontSize){c.push("-",d("increasefontsize",false,this.adjustFont),d("decreasefontsize",false,this.adjustFont))}if(this.enableColors){c.push("-",{itemId:"forecolor",cls:"x-btn-icon",iconCls:"x-edit-forecolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.forecolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,listeners:{scope:this,select:function(i,h){this.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}},clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon",iconCls:"x-edit-backcolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.backcolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,listeners:{scope:this,select:function(i,h){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",h);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}}},clickEvent:"mousedown"})})}if(this.enableAlignments){c.push("-",d("justifyleft"),d("justifycenter"),d("justifyright"))}if(!Ext.isSafari2){if(this.enableLinks){c.push("-",d("createlink",false,this.createLink))}if(this.enableLists){c.push("-",d("insertorderedlist"),d("insertunorderedlist"))}if(this.enableSourceEdit){c.push("-",d("sourceedit",true,function(h){this.toggleSourceEdit(!this.sourceEditMode)}))}}var b=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild,items:c});if(g){this.fontSelect=g.el;this.mon(this.fontSelect,"change",function(){var h=this.fontSelect.dom.value;this.relayCmd("fontname",h);this.deferFocus()},this)}this.mon(b.el,"click",function(h){h.preventDefault()});this.tb=b;this.tb.doLayout()},onDisable:function(){this.wrap.mask();Ext.form.HtmlEditor.superclass.onDisable.call(this)},onEnable:function(){this.wrap.unmask();Ext.form.HtmlEditor.superclass.onEnable.call(this)},setReadOnly:function(b){Ext.form.HtmlEditor.superclass.setReadOnly.call(this,b);if(this.initialized){if(Ext.isIE){this.getEditorBody().contentEditable=!b}else{this.setDesignMode(!b)}var a=this.getEditorBody();if(a){a.style.cursor=this.readOnly?"default":"text"}this.disableItems(b)}},getDocMarkup:function(){var a=Ext.fly(this.iframe).getHeight()-this.iframePad*2;return String.format('',this.iframePad,a)},getEditorBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){return Ext.isIE?this.getWin().document:(this.iframe.contentDocument||this.getWin().document)},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(b,a){Ext.form.HtmlEditor.superclass.onRender.call(this,b,a);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE){this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;")}this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.disableItems(true);this.tb.doLayout();this.createIFrame();if(!this.width){var c=this.el.getSize();this.setSize(c.width,this.height||c.height)}this.resizeEl=this.positionEl=this.wrap},createIFrame:function(){var a=document.createElement("iframe");a.name=Ext.id();a.frameBorder="0";a.style.overflow="auto";a.src=Ext.SSL_SECURE_URL;this.wrap.dom.appendChild(a);this.iframe=a;this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})},initFrame:function(){Ext.TaskMgr.stop(this.monitorTask);var a=this.getDoc();this.win=this.getWin();a.open();a.write(this.getDocMarkup());a.close();this.readyTask={run:function(){var b=this.getDoc();if(b.body||b.readyState=="complete"){Ext.TaskMgr.stop(this.readyTask);this.setDesignMode(true);this.initEditor.defer(10,this)}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(this.readyTask)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var a=this.getDoc();if(!a){return}if(!a.editorInitialized||this.getDesignMode()!="on"){this.initFrame()}}},setDesignMode:function(b){var a=this.getDoc();if(a){if(this.readOnly){b=false}a.designMode=(/on|true/i).test(String(b).toLowerCase())?"on":"off"}},getDesignMode:function(){var a=this.getDoc();if(!a){return""}return String(a.designMode).toLowerCase()},disableItems:function(a){if(this.fontSelect){this.fontSelect.dom.disabled=a}this.tb.items.each(function(b){if(b.getItemId()!="sourceedit"){b.setDisabled(a)}})},onResize:function(b,c){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(Ext.isNumber(b)){var e=b-this.wrap.getFrameWidth("lr");this.el.setWidth(e);this.tb.setWidth(e);this.iframe.style.width=Math.max(e,0)+"px"}if(Ext.isNumber(c)){var a=c-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(a);this.iframe.style.height=Math.max(a,0)+"px";var d=this.getEditorBody();if(d){d.style.height=Math.max((a-(this.iframePad*2)),0)+"px"}}}},toggleSourceEdit:function(b){var d,a;if(b===undefined){b=!this.sourceEditMode}this.sourceEditMode=b===true;var c=this.tb.getComponent("sourceedit");if(c.pressed!==this.sourceEditMode){c.toggle(this.sourceEditMode);if(!c.xtbHidden){return}}if(this.sourceEditMode){this.previousSize=this.getSize();d=Ext.get(this.iframe).getHeight();this.disableItems(true);this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus();this.el.dom.style.height=d+"px"}else{a=parseInt(this.el.dom.style.height,10);if(this.initialized){this.disableItems(this.readOnly)}this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus();this.setSize(this.previousSize);delete this.previousSize;this.iframe.style.height=a+"px"}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var a=prompt(this.createLinkText,this.defaultLinkValue);if(a&&a!="http://"){this.relayCmd("createlink",a)}},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(a){Ext.form.HtmlEditor.superclass.setValue.call(this,a);this.pushValue();return this},cleanHtml:function(a){a=String(a);if(Ext.isWebKit){a=a.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}if(a.charCodeAt(0)==this.defaultValue.replace(/\D/g,"")){a=a.substring(1)}return a},syncValue:function(){if(this.initialized){var d=this.getEditorBody();var c=d.innerHTML;if(Ext.isWebKit){var b=d.getAttribute("style");var a=b.match(/text-align:(.*?);/i);if(a&&a[1]){c='
    '+c+"
    "}}c=this.cleanHtml(c);if(this.fireEvent("beforesync",this,c)!==false){this.el.dom.value=c;this.fireEvent("sync",this,c)}}},getValue:function(){this[this.sourceEditMode?"pushValue":"syncValue"]();return Ext.form.HtmlEditor.superclass.getValue.call(this)},pushValue:function(){if(this.initialized){var a=this.el.dom.value;if(!this.activated&&a.length<1){a=this.defaultValue}if(this.fireEvent("beforepush",this,a)!==false){this.getEditorBody().innerHTML=a;if(Ext.isGecko){this.setDesignMode(false);this.setDesignMode(true)}this.fireEvent("push",this,a)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus()}else{this.el.focus()}},initEditor:function(){try{var c=this.getEditorBody(),a=this.el.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),g,b;a["background-attachment"]="fixed";c.bgProperties="fixed";Ext.DomHelper.applyStyles(c,a);g=this.getDoc();if(g){try{Ext.EventManager.removeAll(g)}catch(d){}}b=this.onEditorEvent.createDelegate(this);Ext.EventManager.on(g,{mousedown:b,dblclick:b,click:b,keyup:b,buffer:100});if(Ext.isGecko){Ext.EventManager.on(g,"keypress",this.applyCommand,this)}if(Ext.isIE||Ext.isWebKit||Ext.isOpera){Ext.EventManager.on(g,"keydown",this.fixKeys,this)}g.editorInitialized=true;this.initialized=true;this.pushValue();this.setReadOnly(this.readOnly);this.fireEvent("initialize",this)}catch(d){}},beforeDestroy:function(){if(this.monitorTask){Ext.TaskMgr.stop(this.monitorTask)}if(this.readyTask){Ext.TaskMgr.stop(this.readyTask)}if(this.rendered){Ext.destroy(this.tb);var b=this.getDoc();Ext.EventManager.removeFromSpecialCache(b);if(b){try{Ext.EventManager.removeAll(b);for(var c in b){delete b[c]}}catch(a){}}if(this.wrap){this.wrap.dom.innerHTML="";this.wrap.remove()}}Ext.form.HtmlEditor.superclass.beforeDestroy.call(this)},onFirstFocus:function(){this.activated=true;this.disableItems(this.readOnly);if(Ext.isGecko){this.win.focus();var a=this.win.getSelection();if(!a.focusNode||a.focusNode.nodeType!=3){var b=a.getRangeAt(0);b.selectNodeContents(this.getEditorBody());b.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(c){}}this.fireEvent("activate",this)},adjustFont:function(b){var d=b.getItemId()=="increasefontsize"?1:-1,c=this.getDoc(),a=parseInt(c.queryCommandValue("FontSize")||2,10);if((Ext.isSafari&&!Ext.isSafari2)||Ext.isChrome||Ext.isAir){if(a<=10){a=1+d}else{if(a<=13){a=2+d}else{if(a<=16){a=3+d}else{if(a<=18){a=4+d}else{if(a<=24){a=5+d}else{a=6+d}}}}}a=a.constrain(1,6)}else{if(Ext.isSafari){d*=2}a=Math.max(1,a+d)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",a)},onEditorEvent:function(a){this.updateToolbar()},updateToolbar:function(){if(this.readOnly){return}if(!this.activated){this.onFirstFocus();return}var b=this.tb.items.map,c=this.getDoc();if(this.enableFont&&!Ext.isSafari2){var a=(c.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(a!=this.fontSelect.dom.value){this.fontSelect.dom.value=a}}if(this.enableFormat){b.bold.toggle(c.queryCommandState("bold"));b.italic.toggle(c.queryCommandState("italic"));b.underline.toggle(c.queryCommandState("underline"))}if(this.enableAlignments){b.justifyleft.toggle(c.queryCommandState("justifyleft"));b.justifycenter.toggle(c.queryCommandState("justifycenter"));b.justifyright.toggle(c.queryCommandState("justifyright"))}if(!Ext.isSafari2&&this.enableLists){b.insertorderedlist.toggle(c.queryCommandState("insertorderedlist"));b.insertunorderedlist.toggle(c.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(a){this.relayCmd(a.getItemId())},relayCmd:function(b,a){(function(){this.focus();this.execCmd(b,a);this.updateToolbar()}).defer(10,this)},execCmd:function(b,a){var c=this.getDoc();c.execCommand(b,false,a===undefined?null:a);this.syncValue()},applyCommand:function(b){if(b.ctrlKey){var d=b.getCharCode(),a;if(d>0){d=String.fromCharCode(d);switch(d){case"b":a="bold";break;case"i":a="italic";break;case"u":a="underline";break}if(a){this.win.focus();this.execCmd(a);this.deferFocus();b.preventDefault()}}}},insertAtCursor:function(c){if(!this.activated){return}if(Ext.isIE){this.win.focus();var b=this.getDoc(),a=b.selection.createRange();if(a){a.pasteHTML(c);this.syncValue();this.deferFocus()}}else{this.win.focus();this.execCmd("InsertHTML",c);this.deferFocus()}},fixKeys:function(){if(Ext.isIE){return function(g){var a=g.getKey(),d=this.getDoc(),b;if(a==g.TAB){g.stopEvent();b=d.selection.createRange();if(b){b.collapse(true);b.pasteHTML("    ");this.deferFocus()}}else{if(a==g.ENTER){b=d.selection.createRange();if(b){var c=b.parentElement();if(!c||c.tagName.toLowerCase()!="li"){g.stopEvent();b.pasteHTML("
    ");b.collapse(false);b.select()}}}}}}else{if(Ext.isOpera){return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.win.focus();this.execCmd("InsertHTML","    ");this.deferFocus()}}}else{if(Ext.isWebKit){return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}else{if(a==b.ENTER){b.stopEvent();this.execCmd("InsertHtml","

    ");this.deferFocus()}}}}}}}(),getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor);Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:undefined,maxValue:undefined,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initDate:"1/1/2008",initDateFormat:"j/n/Y",initComponent:function(){if(Ext.isDefined(this.minValue)){this.setMinValue(this.minValue,true)}if(Ext.isDefined(this.maxValue)){this.setMaxValue(this.maxValue,true)}if(!this.store){this.generateStore(true)}Ext.form.TimeField.superclass.initComponent.call(this)},setMinValue:function(b,a){this.setLimit(b,true,a);return this},setMaxValue:function(b,a){this.setLimit(b,false,a);return this},generateStore:function(b){var c=this.minValue||new Date(this.initDate).clearTime(),a=this.maxValue||new Date(this.initDate).clearTime().add("mi",(24*60)-1),d=[];while(c<=a){d.push(c.dateFormat(this.format));c=c.add("mi",this.increment)}this.bindStore(d,b)},setLimit:function(b,g,a){var e;if(Ext.isString(b)){e=this.parseDate(b)}else{if(Ext.isDate(b)){e=b}}if(e){var c=new Date(this.initDate).clearTime();c.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());this[g?"minValue":"maxValue"]=c;if(!a){this.generateStore()}}},getValue:function(){var a=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(a))||""},setValue:function(a){return Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)))},validateValue:Ext.form.DateField.prototype.validateValue,formatDate:Ext.form.DateField.prototype.formatDate,parseDate:function(h){if(!h||Ext.isDate(h)){return h}var j=this.initDate+" ",g=this.initDateFormat+" ",b=Date.parseDate(j+h,g+this.format),c=this.altFormats;if(!b&&c){if(!this.altFormatsArray){this.altFormatsArray=c.split("|")}for(var e=0,d=this.altFormatsArray,a=d.length;e=0){if(!d){c=g-1}d=false;while(c>=0){if(e.call(j||this,k,c,i)===true){return[k,c]}c--}k--}}else{if(c>=g){k++;d=false}while(k','
    ','
    ','
    ','
    {header}
    ',"
    ",'
    ',"
    ",'
    ','
    {body}
    ','',"
    ","
    ",'
     
    ','
     
    ',""),headerTpl:new Ext.Template('',"",'{cells}',"","
    "),bodyTpl:new Ext.Template("{rows}"),cellTpl:new Ext.Template('','
    {value}
    ',""),initTemplates:function(){var c=this.templates||{},d,b,g=new Ext.Template('','
    ',this.grid.enableHdMenu?'':"","{value}",'',"
    ",""),a=['','','
    {body}
    ',"",""].join(""),e=['',"","{cells}",this.enableRowBody?a:"","","
    "].join("");Ext.applyIf(c,{hcell:g,cell:this.cellTpl,body:this.bodyTpl,header:this.headerTpl,master:this.masterTpl,row:new Ext.Template('
    '+e+"
    "),rowInner:new Ext.Template(e)});for(b in c){d=c[b];if(d&&Ext.isFunction(d.compile)&&!d.compiled){d.disableFormats=true;d.compile()}}this.templates=c;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(a){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body)}this._flyweight.dom=a;return this._flyweight},getEditorParent:function(){return this.scroller.dom},initElements:function(){var b=Ext.Element,d=Ext.get(this.grid.getGridEl().dom.firstChild),e=new b(d.child("div.x-grid3-viewport")),c=new b(e.child("div.x-grid3-header")),a=new b(e.child("div.x-grid3-scroller"));if(this.grid.hideHeaders){c.setDisplayed(false)}if(this.forceFit){a.setStyle("overflow-x","hidden")}Ext.apply(this,{el:d,mainWrap:e,scroller:a,mainHd:c,innerHd:c.child("div.x-grid3-header-inner").dom,mainBody:new b(b.fly(a).child("div.x-grid3-body")),focusEl:new b(b.fly(a).child("a")),resizeMarker:new b(d.child("div.x-grid3-resize-marker")),resizeProxy:new b(d.child("div.x-grid3-resize-proxy"))});this.focusEl.swallowEvent("click",true)},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(a){if(!a){return false}return this.fly(a).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(d,c){var b=this.findCell(d),a;if(b){a=this.fly(b).hasClass(c);if(!c||a){return this.getCellIndex(b)}}return false},getCellIndex:function(b){if(b){var a=b.className.match(this.colRe);if(a&&a[1]){return this.cm.getIndexById(a[1])}}return false},findHeaderCell:function(b){var a=this.findCell(b);return a&&this.fly(a).hasClass(this.hdCls)?a:null},findHeaderIndex:function(a){return this.findCellIndex(a,this.hdCls)},findRow:function(a){if(!a){return false}return this.fly(a).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(a){var b=this.findRow(a);return b?b.rowIndex:false},findRowBody:function(a){if(!a){return false}return this.fly(a).findParent(this.rowBodySelector,this.rowBodySelectorDepth)},getRow:function(a){return this.getRows()[a]},getCell:function(b,a){return Ext.fly(this.getRow(b)).query(this.cellSelector)[a]},getHeaderCell:function(a){return this.mainHd.dom.getElementsByTagName("td")[a]},addRowClass:function(b,a){var c=this.getRow(b);if(c){this.fly(c).addClass(a)}},removeRowClass:function(c,a){var b=this.getRow(c);if(b){this.fly(b).removeClass(a)}},removeRow:function(a){Ext.removeNode(this.getRow(a));this.syncFocusEl(a)},removeRows:function(c,a){var b=this.mainBody.dom,d;for(d=c;d<=a;d++){Ext.removeNode(b.childNodes[c])}this.syncFocusEl(c)},getScrollState:function(){var a=this.scroller.dom;return{left:a.scrollLeft,top:a.scrollTop}},restoreScroll:function(a){var b=this.scroller.dom;b.scrollLeft=a.left;b.scrollTop=a.top},scrollToTop:function(){var a=this.scroller.dom;a.scrollTop=0;a.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var a=this.scroller.dom;this.grid.fireEvent("bodyscroll",a.scrollLeft,a.scrollTop)},syncHeaderScroll:function(){var a=this.innerHd,b=this.scroller.dom.scrollLeft;a.scrollLeft=b;a.scrollLeft=b},updateSortIcon:function(d,c){var a=this.sortClasses,b=a[c=="DESC"?1:0],e=this.mainHd.select("td").removeClass(a);e.item(d).addClass(b)},updateAllColumnWidths:function(){var e=this.getTotalWidth(),k=this.cm.getColumnCount(),m=this.getRows(),g=m.length,b=[],l,a,h,d,c;for(d=0;d=this.ds.getCount()){return null}d=(d!==undefined?d:0);var c=this.getRow(h),b=this.cm,e=b.getColumnCount(),a;if(!(g===false&&d===0)){while(dm){n.scrollTop=q-a}}if(e!==false){var l=parseInt(h.offsetLeft,10),j=l+h.offsetWidth,i=parseInt(n.scrollLeft,10),b=i+n.clientWidth;if(lb){n.scrollLeft=j-n.clientWidth}}}return this.getResolvedXY(r)},insertRows:function(a,i,e,h){var d=a.getCount()-1;if(!h&&i===0&&e>=d){this.fireEvent("beforerowsinserted",this,i,e);this.refresh();this.fireEvent("rowsinserted",this,i,e)}else{if(!h){this.fireEvent("beforerowsinserted",this,i,e)}var b=this.renderRows(i,e),g=this.getRow(i);if(g){if(i===0){Ext.fly(this.getRow(0)).removeClass(this.firstRowCls)}Ext.DomHelper.insertHtml("beforeBegin",g,b)}else{var c=this.getRow(d-1);if(c){Ext.fly(c).removeClass(this.lastRowCls)}Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,b)}if(!h){this.processRows(i);this.fireEvent("rowsinserted",this,i,e)}else{if(i===0||i>=d){Ext.fly(this.getRow(i)).addClass(i===0?this.firstRowCls:this.lastRowCls)}}}this.syncFocusEl(i)},deleteRows:function(a,c,b){if(a.getRowCount()<1){this.refresh()}else{this.fireEvent("beforerowsdeleted",this,c,b);this.removeRows(c,b);this.processRows(c);this.fireEvent("rowsdeleted",this,c,b)}},getColumnStyle:function(b,d){var a=this.cm,g=a.config,c=d?"":g[b].css||"",e=g[b].align;c+=String.format("width: {0};",this.getColumnWidth(b));if(a.isHidden(b)){c+="display: none; "}if(e){c+=String.format("text-align: {0};",e)}return c},getColumnWidth:function(b){var c=this.cm.getColumnWidth(b),a=this.borderWidth;if(Ext.isNumber(c)){if(Ext.isBorderBox){return c+"px"}else{return Math.max(c-a,0)+"px"}}else{return c}},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(g,j,h){var a=this.grid,l=this.cm,s=l.getTotalWidth(false),q=this.getGridInnerWidth(),r=q-s,c=[],o=0,n=0,u,d,p;if(q<20||r===0){return false}var e=l.getColumnCount(true),m=l.getColumnCount(false),b=e-(Ext.isNumber(h)?1:0);if(b===0){b=1;h=undefined}for(p=0;pq){var t=(b==e)?o:h,k=Math.max(1,l.getColumnWidth(t)-(s-q));l.setColumnWidth(t,k,true)}if(g!==true){this.updateAllColumnWidths()}return true},autoExpand:function(k){var a=this.grid,i=this.cm,e=this.getGridInnerWidth(),c=i.getTotalWidth(false),g=a.autoExpandColumn;if(!this.userResized&&g){if(e!=c){var j=i.getIndexById(g),b=i.getColumnWidth(j),h=e-c+b,d=Math.min(Math.max(h,a.autoExpandMin),a.autoExpandMax);if(b!=d){i.setColumnWidth(j,d,true);if(k!==true){this.updateColumnWidth(j,d)}}}}},getGridInnerWidth:function(){return this.grid.getGridEl().getWidth(true)-this.getScrollOffset()},getColumnData:function(){var e=[],c=this.cm,g=c.getColumnCount(),a=this.ds.fields,d,b;for(d=0;d'+this.emptyText+"")}},updateHeaderSortState:function(){var b=this.ds.getSortState();if(!b){return}if(!this.sortState||(this.sortState.field!=b.field||this.sortState.direction!=b.direction)){this.grid.fireEvent("sortchange",this.grid,b)}this.sortState=b;var c=this.cm.findColumnIndex(b.field);if(c!=-1){var a=b.direction;this.updateSortIcon(c,a)}},clearHeaderSortState:function(){if(!this.sortState){return}this.grid.fireEvent("sortchange",this.grid,null);this.mainHd.select("td").removeClass(this.sortClasses);delete this.sortState},destroy:function(){var j=this,a=j.grid,d=a.getGridEl(),i=j.dragZone,g=j.splitZone,h=j.columnDrag,e=j.columnDrop,k=j.scrollToTopTask,c,b;if(k&&k.cancel){k.cancel()}Ext.destroyMembers(j,"colMenu","hmenu");j.initData(null,null);j.purgeListeners();Ext.fly(j.innerHd).un("click",j.handleHdDown,j);if(a.enableColumnMove){c=h.dragData;b=h.proxy;Ext.destroy(h.el,b.ghost,b.el,e.el,e.proxyTop,e.proxyBottom,c.ddel,c.header);if(b.anim){Ext.destroy(b.anim)}delete b.ghost;delete c.ddel;delete c.header;h.destroy();delete Ext.dd.DDM.locationCache[h.id];delete h._domRef;delete e.proxyTop;delete e.proxyBottom;e.destroy();delete Ext.dd.DDM.locationCache["gridHeader"+d.id];delete e._domRef;delete Ext.dd.DDM.ids[e.ddGroup]}if(g){g.destroy();delete g._domRef;delete Ext.dd.DDM.ids["gridSplitters"+d.id]}Ext.fly(j.innerHd).removeAllListeners();Ext.removeNode(j.innerHd);delete j.innerHd;Ext.destroy(j.el,j.mainWrap,j.mainHd,j.scroller,j.mainBody,j.focusEl,j.resizeMarker,j.resizeProxy,j.activeHdBtn,j._flyweight,i,g);delete a.container;if(i){i.destroy()}Ext.dd.DDM.currentTarget=null;delete Ext.dd.DDM.locationCache[d.id];Ext.EventManager.removeResizeListener(j.onWindowResize,j)},onDenyColumnHide:function(){},render:function(){if(this.autoFill){var a=this.grid.ownerCt;if(a&&a.getLayout()){a.on("afterlayout",function(){this.fitColumns(true,true);this.updateHeaders();this.updateHeaderSortState()},this,{single:true})}}else{if(this.forceFit){this.fitColumns(true,false)}else{if(this.grid.autoExpandColumn){this.autoExpand(true)}}}this.grid.getGridEl().dom.innerHTML=this.renderUI();this.afterRenderUI()},initData:function(a,e){var b=this;if(b.ds){var d=b.ds;d.un("add",b.onAdd,b);d.un("load",b.onLoad,b);d.un("clear",b.onClear,b);d.un("remove",b.onRemove,b);d.un("update",b.onUpdate,b);d.un("datachanged",b.onDataChange,b);if(d!==a&&d.autoDestroy){d.destroy()}}if(a){a.on({scope:b,load:b.onLoad,add:b.onAdd,remove:b.onRemove,update:b.onUpdate,clear:b.onClear,datachanged:b.onDataChange})}if(b.cm){var c=b.cm;c.un("configchange",b.onColConfigChange,b);c.un("widthchange",b.onColWidthChange,b);c.un("headerchange",b.onHeaderChange,b);c.un("hiddenchange",b.onHiddenChange,b);c.un("columnmoved",b.onColumnMove,b)}if(e){delete b.lastViewWidth;e.on({scope:b,configchange:b.onColConfigChange,widthchange:b.onColWidthChange,headerchange:b.onHeaderChange,hiddenchange:b.onHiddenChange,columnmoved:b.onColumnMove})}b.ds=a;b.cm=e},onDataChange:function(){this.refresh(true);this.updateHeaderSortState();this.syncFocusEl(0)},onClear:function(){this.refresh();this.syncFocusEl(0)},onUpdate:function(b,a){this.refreshRow(a)},onAdd:function(b,a,c){this.insertRows(b,c,c+(a.length-1))},onRemove:function(b,a,c,d){if(d!==true){this.fireEvent("beforerowremoved",this,c,a)}this.removeRow(c);if(d!==true){this.processRows(c);this.applyEmptyText();this.fireEvent("rowremoved",this,c,a)}},onLoad:function(){if(Ext.isGecko){if(!this.scrollToTopTask){this.scrollToTopTask=new Ext.util.DelayedTask(this.scrollToTop,this)}this.scrollToTopTask.delay(1)}else{this.scrollToTop()}},onColWidthChange:function(a,b,c){this.updateColumnWidth(b,c)},onHeaderChange:function(a,b,c){this.updateHeaders()},onHiddenChange:function(a,b,c){this.updateColumnHidden(b,c)},onColumnMove:function(a,c,b){this.indexMap=null;this.refresh(true);this.restoreScroll(this.getScrollState());this.afterMove(b);this.grid.fireEvent("columnmove",c,b)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(a){a.on("headerclick",this.onHeaderClick,this)},initEvents:Ext.emptyFn,onHeaderClick:function(b,a){if(this.headersDisabled||!this.cm.isSortable(a)){return}b.stopEditing(true);b.store.sort(this.cm.getDataIndex(a))},onRowOver:function(b,a){var c=this.findRowIndex(a);if(c!==false){this.addRowClass(c,this.rowOverCls)}},onRowOut:function(b,a){var c=this.findRowIndex(a);if(c!==false&&!b.within(this.getRow(c),true)){this.removeRowClass(c,this.rowOverCls)}},onRowSelect:function(a){this.addRowClass(a,this.selectedRowClass)},onRowDeselect:function(a){this.removeRowClass(a,this.selectedRowClass)},onCellSelect:function(c,b){var a=this.getCell(c,b);if(a){this.fly(a).addClass("x-grid3-cell-selected")}},onCellDeselect:function(c,b){var a=this.getCell(c,b);if(a){this.fly(a).removeClass("x-grid3-cell-selected")}},handleWheel:function(a){a.stopPropagation()},onColumnSplitterMoved:function(a,b){this.userResized=true;this.grid.colModel.setColumnWidth(a,b,true);if(this.forceFit){this.fitColumns(true,false,a);this.updateAllColumnWidths()}else{this.updateColumnWidth(a,b);this.syncHeaderScroll()}this.grid.fireEvent("columnresize",a,b)},beforeColMenuShow:function(){var b=this.cm,d=b.getColumnCount(),a=this.colMenu,c;a.removeAll();for(c=0;c0){if(!this.cm.isHidden(a-1)){return a}a--}return undefined},handleHdOver:function(c,b){var d=this.findHeaderCell(b);if(d&&!this.headersDisabled){var a=this.fly(d);this.activeHdRef=b;this.activeHdIndex=this.getCellIndex(d);this.activeHdRegion=a.getRegion();if(!this.isMenuDisabled(this.activeHdIndex,a)){a.addClass("x-grid3-hd-over");this.activeHdBtn=a.child(".x-grid3-hd-btn");if(this.activeHdBtn){this.activeHdBtn.dom.style.height=(d.firstChild.offsetHeight-1)+"px"}}}},handleHdOut:function(b,a){var c=this.findHeaderCell(a);if(c&&(!Ext.isIE9m||!b.within(c,true))){this.activeHdRef=null;this.fly(c).removeClass("x-grid3-hd-over");c.style.cursor=""}},isMenuDisabled:function(a,b){return this.cm.isMenuDisabled(a)},hasRows:function(){var a=this.mainBody.dom.firstChild;return a&&a.nodeType==1&&a.className!="x-grid-empty"},isHideableColumn:function(a){return !a.hidden},bind:function(a,b){this.initData(a,b)}});Ext.grid.GridView.SplitDragZone=Ext.extend(Ext.dd.DDProxy,{constructor:function(a,b){this.grid=a;this.view=a.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,b,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5},b4StartDrag:function(a,e){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var d=this.view.mainWrap.getHeight();this.marker.setHeight(d);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),"tl-tl",[-2,0]);this.proxy.setHeight(d);var b=this.cm.getColumnWidth(this.cellIndex),c=Math.max(b-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(c,1000);this.setYConstraint(0,0);this.minX=a-c;this.maxX=a+1000;this.startPos=a;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,a,e)},allowHeaderDrag:function(a){return true},handleMouseDown:function(a){var h=this.view.findHeaderCell(a.getTarget());if(h&&this.allowHeaderDrag(a)){var k=this.view.fly(h).getXY(),c=k[0],i=a.getXY(),b=i[0],g=h.offsetWidth,d=false;if((b-c)<=this.hw){d=-1}else{if((c+g)-b<=this.hw){d=0}}if(d!==false){this.cm=this.grid.colModel;var j=this.view.getCellIndex(h);if(d==-1){if(j+d<0){return}while(this.cm.isHidden(j+d)){--d;if(j+d<0){return}}}this.cellIndex=j+d;this.split=h.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex)){Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}}else{if(this.view.columnDrag){this.view.columnDrag.callHandleMouseDown(a)}}}},endDrag:function(g){this.marker.hide();var a=this.view,c=Math.max(this.minX,g.getPageX()),d=c-this.startPos,b=this.dragHeadersDisabled;a.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+d);setTimeout(function(){a.headersDisabled=b},50)},autoOffset:function(){this.setDelta(0,0)}});Ext.grid.PivotGridView=Ext.extend(Ext.grid.GridView,{colHeaderCellCls:"grid-hd-group-cell",title:"",getColumnHeaders:function(){return this.grid.topAxis.buildHeaders()},getRowHeaders:function(){return this.grid.leftAxis.buildHeaders()},renderRows:function(a,t){var b=this.grid,o=b.extractData(),p=o.length,g=this.templates,s=b.renderer,h=typeof s=="function",w=this.getCellCls,n=typeof w=="function",d=g.cell,x=g.row,k=[],q={},c="width:"+this.getGridInnerWidth()+"px;",l,r,e,v,m;a=a||0;t=Ext.isDefined(t)?t:p-1;for(v=0;v','
    ','
    ','
    {title}
    ','
    ','
    ',"
    ",'
    ',"
    ",'
    ','
    ','
    {body}
    ','',"
    ","
    ",'
     
    ','
     
    ',""),initTemplates:function(){Ext.grid.PivotGridView.superclass.initTemplates.apply(this,arguments);var a=this.templates||{};if(!a.gcell){a.gcell=new Ext.XTemplate('','
    ',this.grid.enableHdMenu?'':"","{value}","
    ","")}this.templates=a;this.hrowRe=new RegExp("ux-grid-hd-group-row-(\\d+)","")},initElements:function(){Ext.grid.PivotGridView.superclass.initElements.apply(this,arguments);this.rowHeadersEl=new Ext.Element(this.scroller.child("div.x-grid3-row-headers"));this.headerTitleEl=new Ext.Element(this.mainHd.child("div.x-grid3-header-title"))},getGridInnerWidth:function(){var a=Ext.grid.PivotGridView.superclass.getGridInnerWidth.apply(this,arguments);return a-this.getTotalRowHeaderWidth()},getTotalRowHeaderWidth:function(){var d=this.getRowHeaders(),c=d.length,b=0,a;for(a=0;a0&&d>0){h=h||o.data[a[g-1].dataIndex]!=l[d-1].data[a[g-1].dataIndex]}if(h){s.push({header:q,span:p,start:b});b+=p;p=0}if(k){s.push({header:n,span:p+1,start:b});b+=p;p=0}q=n;p++}c.push({items:s,width:e.width||this.defaultHeaderWidth});q=undefined}return c}});Ext.grid.HeaderDragZone=Ext.extend(Ext.dd.DragZone,{maxDragWidth:120,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,c);if(b){this.setHandleElId(Ext.id(c));this.setOuterHandleElId(Ext.id(b))}this.scroll=false},getDragData:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findHeaderCell(a);if(b){return{ddel:b.firstChild,header:b}}return false},onInitDrag:function(a){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var b=this.dragData.ddel.cloneNode(true);b.id=Ext.id();b.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(b);return true},afterValidDrop:function(){this.completeDrop()},afterInvalidDrop:function(){this.completeDrop()},completeDrop:function(){var a=this.view,b=this.dragHeadersDisabled;setTimeout(function(){a.headersDisabled=b},50)}});Ext.grid.HeaderDropZone=Ext.extend(Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:" "},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:" "},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden")};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,a.getGridEl().dom)},getTargetFromEvent:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findCellIndex(a);if(b!==false){return this.view.getHeaderCell(b)}},nextVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.nextSibling;while(c){if(!a.isHidden(b.getCellIndex(c))){return c}c=c.nextSibling}return null},prevVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.prevSibling;while(c){if(!a.isHidden(b.getCellIndex(c))){return c}c=c.prevSibling}return null},positionIndicator:function(d,k,j){var a=Ext.lib.Event.getPageX(j),g=Ext.lib.Dom.getRegion(k.firstChild),c,i,b=g.top+this.proxyOffsets[1];if((g.right-a)<=(g.right-g.left)/2){c=g.right+this.view.borderWidth;i="after"}else{c=g.left;i="before"}if(this.grid.colModel.isFixed(this.view.getCellIndex(k))){return false}c+=this.proxyOffsets[0];this.proxyTop.setLeftTop(c,b);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset=this.view.mainHd.getHeight()}this.proxyBottom.setLeftTop(c,b+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return i},onNodeEnter:function(d,a,c,b){if(b.header!=d){this.positionIndicator(b.header,d,c)}},onNodeOver:function(g,b,d,c){var a=false;if(c.header!=g){a=this.positionIndicator(c.header,g,d)}if(!a){this.proxyTop.hide();this.proxyBottom.hide()}return a?this.dropAllowed:this.dropNotAllowed},onNodeOut:function(d,a,c,b){this.proxyTop.hide();this.proxyBottom.hide()},onNodeDrop:function(b,m,g,c){var d=c.header;if(d!=b){var k=this.grid.colModel,j=Ext.lib.Event.getPageX(g),a=Ext.lib.Dom.getRegion(b.firstChild),o=(a.right-j)<=((a.right-a.left)/2)?"after":"before",i=this.view.getCellIndex(d),l=this.view.getCellIndex(b);if(o=="after"){l++}if(i=0&&this.config[a].resizable!==false&&this.config[a].fixed!==true},setHidden:function(a,b){var d=this.config[a];if(d.hidden!==b){d.hidden=b;this.totalWidth=null;this.fireEvent("hiddenchange",this,a,b)}},setEditor:function(a,b){this.config[a].setEditor(b)},destroy:function(){var b=this.config.length,a=0;for(;a0},isSelected:function(a){var b=Ext.isNumber(a)?this.grid.store.getAt(a):a;return(b&&this.selections.key(b.id)?true:false)},isIdSelected:function(a){return(this.selections.key(a)?true:false)},handleMouseDown:function(d,i,h){if(h.button!==0||this.isLocked()){return}var a=this.grid.getView();if(h.shiftKey&&!this.singleSelect&&this.last!==false){var c=this.last;this.selectRange(c,i,h.ctrlKey);this.last=c;a.focusRow(i)}else{var b=this.isSelected(i);if(h.ctrlKey&&b){this.deselectRow(i)}else{if(!b||this.getCount()>1){this.selectRow(i,h.ctrlKey||h.shiftKey);a.focusRow(i)}}}},selectRows:function(c,d){if(!d){this.clearSelections()}for(var b=0,a=c.length;b=a;c--){this.selectRow(c,true)}}},deselectRange:function(c,b,a){if(this.isLocked()){return}for(var d=c;d<=b;d++){this.deselectRow(d,a)}},selectRow:function(b,d,a){if(this.isLocked()||(b<0||b>=this.grid.store.getCount())||(d&&this.isSelected(b))){return}var c=this.grid.store.getAt(b);if(c&&this.fireEvent("beforerowselect",this,b,d,c)!==false){if(!d||this.singleSelect){this.clearSelections()}this.selections.add(c);this.last=this.lastActive=b;if(!a){this.grid.getView().onRowSelect(b)}if(!this.silent){this.fireEvent("rowselect",this,b,c);this.fireEvent("selectionchange",this)}}},deselectRow:function(b,a){if(this.isLocked()){return}if(this.last==b){this.last=false}if(this.lastActive==b){this.lastActive=false}var c=this.grid.store.getAt(b);if(c){this.selections.remove(c);if(!a){this.grid.getView().onRowDeselect(b)}this.fireEvent("rowdeselect",this,b,c);this.fireEvent("selectionchange",this)}},acceptsNav:function(c,b,a){return !a.isHidden(b)&&a.isCellEditable(b,c)},onEditorKey:function(n,l){var d=l.getKey(),h,i=this.grid,p=i.lastEdit,j=i.activeEditor,b=l.shiftKey,o,p,a,m;if(d==l.TAB){l.stopEvent();j.completeEdit();if(b){h=i.walkCells(j.row,j.col-1,-1,this.acceptsNav,this)}else{h=i.walkCells(j.row,j.col+1,1,this.acceptsNav,this)}}else{if(d==l.ENTER){if(this.moveEditorOnEnter!==false){if(b){h=i.walkCells(p.row-1,p.col,-1,this.acceptsNav,this)}else{h=i.walkCells(p.row+1,p.col,1,this.acceptsNav,this)}}}}if(h){a=h[0];m=h[1];this.onEditorSelect(a,p.row);if(i.isEditor&&i.editing){o=i.activeEditor;if(o&&o.field.triggerBlur){o.field.triggerBlur()}}i.startEditing(a,m)}},onEditorSelect:function(b,a){if(a!=b){this.selectRow(b)}},destroy:function(){Ext.destroy(this.rowNav);this.rowNav=null;Ext.grid.RowSelectionModel.superclass.destroy.call(this)}});Ext.grid.Column=Ext.extend(Ext.util.Observable,{isColumn:true,constructor:function(b){Ext.apply(this,b);if(Ext.isString(this.renderer)){this.renderer=Ext.util.Format[this.renderer]}else{if(Ext.isObject(this.renderer)){this.scope=this.renderer.scope;this.renderer=this.renderer.fn}}if(!this.scope){this.scope=this}var a=this.editor;delete this.editor;this.setEditor(a);this.addEvents("click","contextmenu","dblclick","mousedown");Ext.grid.Column.superclass.constructor.call(this)},processEvent:function(b,d,c,g,a){return this.fireEvent(b,this,c,g,d)},destroy:function(){if(this.setEditor){this.setEditor(null)}this.purgeListeners()},renderer:function(a){return a},getEditor:function(a){return this.editable!==false?this.editor:null},setEditor:function(b){var a=this.editor;if(a){if(a.gridEditor){a.gridEditor.destroy();delete a.gridEditor}else{a.destroy()}}this.editor=null;if(b){if(!b.isXType){b=Ext.create(b,"textfield")}this.editor=b}},getCellEditor:function(b){var a=this.getEditor(b);if(a){if(!a.startEdit){if(!a.gridEditor){a.gridEditor=new Ext.grid.GridEditor(a)}a=a.gridEditor}}return a}});Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{trueText:"true",falseText:"false",undefinedText:" ",constructor:function(a){Ext.grid.BooleanColumn.superclass.constructor.call(this,a);var c=this.trueText,d=this.falseText,b=this.undefinedText;this.renderer=function(e){if(e===undefined){return b}if(!e||e==="false"){return d}return c}}});Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:"0,000.00",constructor:function(a){Ext.grid.NumberColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.numberRenderer(this.format)}});Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:"m/d/Y",constructor:function(a){Ext.grid.DateColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.dateRenderer(this.format)}});Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(a){Ext.grid.TemplateColumn.superclass.constructor.call(this,a);var b=(!Ext.isPrimitive(this.tpl)&&this.tpl.compile)?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(d,e,c){return b.apply(c.data)};this.tpl=b}});Ext.grid.ActionColumn=Ext.extend(Ext.grid.Column,{header:" ",actionIdRe:/x-action-col-(\d+)/,altText:"",constructor:function(b){var g=this,c=b.items||(g.items=[g]),a=c.length,d,e;Ext.grid.ActionColumn.superclass.constructor.call(g,b);g.renderer=function(h,i){h=Ext.isFunction(b.renderer)?b.renderer.apply(this,arguments)||"":"";i.css+=" x-action-col-cell";for(d=0;d"}return h}},destroy:function(){delete this.items;delete this.renderer;return Ext.grid.ActionColumn.superclass.destroy.apply(this,arguments)},processEvent:function(c,i,d,j,b){var a=i.getTarget().className.match(this.actionIdRe),h,g;if(a&&(h=this.items[parseInt(a[1],10)])){if(c=="click"){(g=h.handler||this.handler)&&g.call(h.scope||this.scope||this,d,j,b,h,i)}else{if((c=="mousedown")&&(h.stopSelection!==false)){return false}}}return Ext.grid.ActionColumn.superclass.processEvent.apply(this,arguments)}});Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn,actioncolumn:Ext.grid.ActionColumn};Ext.grid.RowNumberer=Ext.extend(Object,{header:"",width:23,sortable:false,constructor:function(a){Ext.apply(this,a);if(this.rowspan){this.renderer=this.renderer.createDelegate(this)}},fixed:true,hideable:false,menuDisabled:true,dataIndex:"",id:"numberer",rowspan:undefined,renderer:function(b,c,a,d){if(this.rowspan){c.cellAttr='rowspan="'+this.rowspan+'"'}return d+1}});Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:'
     
    ',width:20,sortable:false,menuDisabled:true,fixed:true,hideable:false,dataIndex:"",id:"checker",isColumn:true,constructor:function(){Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this,arguments);if(this.checkOnly){this.handleMouseDown=Ext.emptyFn}},initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){Ext.fly(this.grid.getView().innerHd).on("mousedown",this.onHdMouseDown,this)},this)},processEvent:function(b,d,c,g,a){if(b=="mousedown"){this.onMouseDown(d,d.getTarget());return false}else{return Ext.grid.Column.prototype.processEvent.apply(this,arguments)}},onMouseDown:function(c,b){if(c.button===0&&b.className=="x-grid3-row-checker"){c.stopEvent();var d=c.getTarget(".x-grid3-row");if(d){var a=d.rowIndex;if(this.isSelected(a)){this.deselectRow(a)}else{this.selectRow(a,true);this.grid.getView().focusRow(a)}}}},onHdMouseDown:function(c,a){if(a.className=="x-grid3-hd-checker"){c.stopEvent();var b=Ext.fly(a.parentNode);var d=b.hasClass("x-grid3-hd-checker-on");if(d){b.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{b.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(b,c,a){return'
     
    '},onEditorSelect:function(b,a){if(a!=b&&!this.checkOnly){this.selectRow(b)}}});Ext.grid.CellSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{constructor:function(a){Ext.apply(this,a);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)},initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.on(Ext.EventManager.getKeyEvent(),this.handleKeyDown,this);this.grid.getView().on({scope:this,refresh:this.onViewChange,rowupdated:this.onRowUpdated,beforerowremoved:this.clearSelections,beforerowsinserted:this.clearSelections});if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this)}},beforeEdit:function(a){this.select(a.row,a.column,false,true,a.record)},onRowUpdated:function(a,b,c){if(this.selection&&this.selection.record==c){a.onCellSelect(b,this.selection.cell[1])}},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(b){var a=this.selection;if(a){if(b!==true){this.grid.view.onCellDeselect(a.cell[0],a.cell[1])}this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(b,d,a,c){if(c.button!==0||this.isLocked()){return}this.select(d,a)},select:function(g,c,b,e,d){if(this.fireEvent("beforecellselect",this,g,c)!==false){this.clearSelections();d=d||this.grid.store.getAt(g);this.selection={record:d,cell:[g,c]};if(!b){var a=this.grid.getView();a.onCellSelect(g,c);if(e!==true){a.focusCell(g,c)}}this.fireEvent("cellselect",this,g,c);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(c,b,a){return !a.isHidden(b)},onEditorKey:function(b,a){if(a.getKey()==a.TAB){this.handleKeyDown(a)}},handleKeyDown:function(j){if(!j.isNavKeyPress()){return}var d=j.getKey(),i=this.grid,p=this.selection,b=this,m=function(g,c,e){return i.walkCells(g,c,e,i.isEditor&&i.editing?b.acceptsNav:b.isSelectable,b)},o,h,a,l,n;switch(d){case j.ESC:case j.PAGE_UP:case j.PAGE_DOWN:break;default:j.stopEvent();break}if(!p){o=m(0,0,1);if(o){this.select(o[0],o[1])}return}o=p.cell;a=o[0];l=o[1];switch(d){case j.TAB:if(j.shiftKey){h=m(a,l-1,-1)}else{h=m(a,l+1,1)}break;case j.DOWN:h=m(a+1,l,1);break;case j.UP:h=m(a-1,l,-1);break;case j.RIGHT:h=m(a,l+1,1);break;case j.LEFT:h=m(a,l-1,-1);break;case j.ENTER:if(i.isEditor&&!i.editing){i.startEditing(a,l);return}break}if(h){a=h[0];l=h[1];this.select(a,l);if(i.isEditor&&i.editing){n=i.activeEditor;if(n&&n.field.triggerBlur){n.field.triggerBlur()}i.startEditing(a,l)}}},acceptsNav:function(c,b,a){return !a.isHidden(b)&&a.isCellEditable(b,c)}});Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,forceValidation:false,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel()}this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.getGridEl().on("mousewheel",this.stopEditing.createDelegate(this,[true]),this);this.on("columnresize",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this)}else{var a=this.getView();if(this.clicksToEdit=="auto"&&a.mainBody){a.mainBody.on("mousedown",this.onAutoEditClick,this)}this.on("celldblclick",this.onCellDblClick,this)}},onResize:function(){Ext.grid.EditorGridPanel.superclass.onResize.apply(this,arguments);var a=this.activeEditor;if(this.editing&&a){a.realign(true)}},onCellDblClick:function(b,c,a){this.startEditing(c,a)},onAutoEditClick:function(c,b){if(c.button!==0){return}var g=this.view.findRowIndex(b),a=this.view.findCellIndex(b);if(g!==false&&a!==false){this.stopEditing();if(this.selModel.getSelectedCell){var d=this.selModel.getSelectedCell();if(d&&d[0]===g&&d[1]===a){this.startEditing(g,a)}}else{if(this.selModel.isSelected(g)){this.startEditing(g,a)}}}},onEditComplete:function(b,d,a){this.editing=false;this.lastActiveEditor=this.activeEditor;this.activeEditor=null;var c=b.record,h=this.colModel.getDataIndex(b.col);d=this.postEditValue(d,a,c,h);if(this.forceValidation===true||String(d)!==String(a)){var g={grid:this,record:c,field:h,originalValue:a,value:d,row:b.row,column:b.col,cancel:false};if(this.fireEvent("validateedit",g)!==false&&!g.cancel&&String(d)!==String(a)){c.set(h,g.value);delete g.cancel;this.fireEvent("afteredit",g)}}this.view.focusCell(b.row,b.col)},startEditing:function(i,c){this.stopEditing();if(this.colModel.isCellEditable(c,i)){this.view.ensureVisible(i,c,true);var d=this.store.getAt(i),h=this.colModel.getDataIndex(c),g={grid:this,record:d,field:h,value:d.data[h],row:i,column:c,cancel:false};if(this.fireEvent("beforeedit",g)!==false&&!g.cancel){this.editing=true;var b=this.colModel.getCellEditor(c,i);if(!b){return}if(!b.rendered){b.parentEl=this.view.getEditorParent(b);b.on({scope:this,render:{fn:function(e){e.field.focus(false,true)},single:true,scope:this},specialkey:function(k,j){this.getSelectionModel().onEditorKey(k,j)},complete:this.onEditComplete,canceledit:this.stopEditing.createDelegate(this,[true])})}Ext.apply(b,{row:i,col:c,record:d});this.lastEdit={row:i,col:c};this.activeEditor=b;if(b.field.isXType("checkbox")){b.allowBlur=false;this.setupCheckbox(b.field)}b.selectSameEditor=(this.activeEditor==this.lastActiveEditor);var a=this.preEditValue(d,h);b.startEdit(this.view.getCell(i,c).firstChild,Ext.isDefined(a)?a:"");(function(){delete b.selectSameEditor}).defer(50)}}},setupCheckbox:function(c){var b=this,a=function(){c.el.on("click",b.onCheckClick,b,{single:true})};if(c.rendered){a()}else{c.on("render",a,null,{single:true})}},onCheckClick:function(){var a=this.activeEditor;a.allowBlur=true;a.field.focus(false,10)},preEditValue:function(a,c){var b=a.data[c];return this.autoEncode&&Ext.isString(b)?Ext.util.Format.htmlDecode(b):b},postEditValue:function(c,a,b,d){return this.autoEncode&&Ext.isString(c)?Ext.util.Format.htmlEncode(c):c},stopEditing:function(b){if(this.editing){var a=this.lastActiveEditor=this.activeEditor;if(a){a[b===true?"cancelEdit":"completeEdit"]();this.view.focusCell(a.row,a.col)}this.activeEditor=null}this.editing=false}});Ext.reg("editorgrid",Ext.grid.EditorGridPanel);Ext.grid.GridEditor=function(b,a){Ext.grid.GridEditor.superclass.constructor.call(this,b,a);b.monitorTab=false};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:false});Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=Ext.extend(Ext.util.Observable,{constructor:function(a,b){this.grid=a;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(b){this.setSource(b)}Ext.grid.PropertyStore.superclass.constructor.call(this)},setSource:function(c){this.source=c;this.store.removeAll();var b=[];for(var a in c){if(this.isEditableValue(c[a])){b.push(new Ext.grid.PropertyRecord({name:a,value:c[a]},a))}}this.store.loadRecords({records:b},{},true)},onUpdate:function(e,a,d){if(d==Ext.data.Record.EDIT){var b=a.data.value;var c=a.modified.value;if(this.grid.fireEvent("beforepropertychange",this.source,a.id,b,c)!==false){this.source[a.id]=b;a.commit();this.grid.fireEvent("propertychange",this.source,a.id,b,c)}else{a.reject()}}},getProperty:function(a){return this.store.getAt(a)},isEditableValue:function(a){return Ext.isPrimitive(a)||Ext.isDate(a)},setValue:function(d,c,a){var b=this.getRec(d);if(b){b.set("value",c);this.source[d]=c}else{if(a){this.source[d]=c;b=new Ext.grid.PropertyRecord({name:d,value:c},d);this.store.add(b)}}},remove:function(b){var a=this.getRec(b);if(a){this.store.remove(a);delete this.source[b]}},getRec:function(a){return this.store.getById(a)},getSource:function(){return this.source}});Ext.grid.PropertyColumnModel=Ext.extend(Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",constructor:function(c,b){var d=Ext.grid,e=Ext.form;this.grid=c;d.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:true,dataIndex:"name",id:"name",menuDisabled:true},{header:this.valueText,width:50,resizable:false,dataIndex:"value",id:"value",menuDisabled:true}]);this.store=b;var a=new e.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:this.trueText},{tag:"option",value:"false",html:this.falseText}]},getValue:function(){return this.el.dom.value=="true"}});this.editors={date:new d.GridEditor(new e.DateField({selectOnFocus:true})),string:new d.GridEditor(new e.TextField({selectOnFocus:true})),number:new d.GridEditor(new e.NumberField({selectOnFocus:true,style:"text-align:left;"})),"boolean":new d.GridEditor(a,{autoSize:"both"})};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this)},renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return this[a?"trueText":"falseText"]},isCellEditable:function(a,b){return a==1},getRenderer:function(a){return a==1?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(a){return this.getPropertyName(a)},renderCell:function(d,b,c){var a=this.grid.customRenderers[c.get("name")];if(a){return a.apply(this,arguments)}var e=d;if(Ext.isDate(d)){e=this.renderDate(d)}else{if(typeof d=="boolean"){e=this.renderBool(d)}}return Ext.util.Format.htmlEncode(e)},getPropertyName:function(b){var a=this.grid.propertyNames;return a&&a[b]?a[b]:b},getCellEditor:function(a,e){var b=this.store.getProperty(e),d=b.data.name,c=b.data.value;if(this.grid.customEditors[d]){return this.grid.customEditors[d]}if(Ext.isDate(c)){return this.editors.date}else{if(typeof c=="number"){return this.editors.number}else{if(typeof c=="boolean"){return this.editors["boolean"]}else{return this.editors.string}}}},destroy:function(){Ext.grid.PropertyColumnModel.superclass.destroy.call(this);this.destroyEditors(this.editors);this.destroyEditors(this.grid.customEditors)},destroyEditors:function(b){for(var a in b){Ext.destroy(b[a])}}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customRenderers=this.customRenderers||{};this.customEditors=this.customEditors||{};this.lastEditRow=null;var b=new Ext.grid.PropertyStore(this);this.propStore=b;var a=new Ext.grid.PropertyColumnModel(this,b);b.store.sort("name","ASC");this.addEvents("beforepropertychange","propertychange");this.cm=a;this.ds=b.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.mon(this.selModel,"beforecellselect",function(e,d,c){if(c===0){this.startEditing.defer(200,this,[d,1]);return false}},this)},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass("x-props-grid")},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source){this.setSource(this.source)}},setSource:function(a){this.propStore.setSource(a)},getSource:function(){return this.propStore.getSource()},setProperty:function(c,b,a){this.propStore.setValue(c,b,a)},removeProperty:function(a){this.propStore.remove(a)}});Ext.reg("propertygrid",Ext.grid.PropertyGrid);Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{groupByText:"Group By This Field",showGroupsText:"Show in Groups",hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText:"(None)",ignoreAdd:false,groupTextTpl:"{text}",groupMode:"value",cancelEditOnToggle:true,initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state={};var a=this.grid.getSelectionModel();a.on(a.selectRow?"beforerowselect":"beforecellselect",this.onBeforeRowSelect,this);if(!this.startGroup){this.startGroup=new Ext.XTemplate('
    ','
    ',this.groupTextTpl,"
    ",'
    ')}this.startGroup.compile();if(!this.endGroup){this.endGroup="
    "}},findGroup:function(a){return Ext.fly(a).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(d,a,b){if(this.canGroup()&&!this.ignoreAdd){var c=this.getScrollState();this.fireEvent("beforerowsinserted",d,b,b+(a.length-1));this.refresh();this.restoreScroll(c);this.fireEvent("rowsinserted",d,b,b+(a.length-1))}else{if(!this.canGroup()){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)}}},onRemove:function(e,a,b,d){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var c=document.getElementById(a._groupId);if(c&&c.childNodes[1].childNodes.length<1){Ext.removeNode(c)}this.applyEmptyText()},refreshRow:function(a){if(this.ds.getCount()==1){this.refresh()}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var c,a=this.hmenu.items,b=this.cm.config[this.hdCtxIndex].groupable===false;if((c=a.get("groupBy"))){c.setDisabled(b)}if((c=a.get("showGroups"))){c.setDisabled(b);c.setChecked(this.canGroup(),true)}},renderUI:function(){var a=Ext.grid.GroupingView.superclass.renderUI.call(this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{itemId:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups){this.hmenu.add({itemId:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this})}this.hmenu.on("beforeshow",this.beforeMenuShow,this)}return a},processEvent:function(b,i){Ext.grid.GroupingView.superclass.processEvent.call(this,b,i);var h=i.getTarget(".x-grid-group-hd",this.mainBody);if(h){var g=this.getGroupField(),d=this.getPrefix(g),a=h.id.substring(d.length),c=new RegExp("gp-"+Ext.escapeRe(g)+"--hd");a=a.substr(0,a.length-3);if(a||c.test(h.id)){this.grid.fireEvent("group"+b,this.grid,g,a,i)}if(b=="mousedown"&&i.button==0){this.toggleGroup(h.parentNode)}}},onGroupByClick:function(){var a=this.grid;this.enableGrouping=true;a.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));a.fireEvent("groupchange",a,a.store.getGroupState());this.beforeMenuShow();this.refresh()},onShowGroupsClick:function(a,b){this.enableGrouping=b;if(b){this.onGroupByClick()}else{this.grid.store.clearGrouping();this.grid.fireEvent("groupchange",this,null)}},toggleRowIndex:function(c,a){if(!this.canGroup()){return}var b=this.getRow(c);if(b){this.toggleGroup(this.findGroup(b),a)}},toggleGroup:function(c,b){var a=Ext.get(c),d=Ext.util.Format.htmlEncode(a.id);b=Ext.isDefined(b)?b:a.hasClass("x-grid-group-collapsed");if(this.state[d]!==b){if(this.cancelEditOnToggle!==false){this.grid.stopEditing(true)}this.state[d]=b;a[b?"removeClass":"addClass"]("x-grid-group-collapsed")}},toggleAllGroups:function(c){var b=this.getGroups();for(var d=0,a=b.length;d",v="",y=E+"",b=""+v;function n(t,e,i,s){var n=r.insertHtml(s,Ext.getDom(t),h(e));return i?Ext.get(n,!0):n}function h(t){var e,i,s,n,r="";if("string"==typeof t)r=t;else if(Ext.isArray(t))for(var o=0;o")}return r}function C(t,e,i,s){d.innerHTML=[e,i,s].join("");for(var n,r=-1,o=d;++r",s,""):"tbody"==t&&(e==x||e==p)||"tr"==t&&(e==m||e==g)?C(3,y,s,b):C(2,E,s,v),i.insertBefore(n,r),n}(e.tagName.toLowerCase(),t,e,i)))return l;if(h[p]=["AfterBegin","firstChild"],h[x]=["BeforeEnd","lastChild"],s=h[t])return e.insertAdjacentHTML(s[0],i),e[s[1]];throw'Illegal insertion point -> "'+t+'"'},insertBefore:function(t,e,i){return n(t,e,i,m)},insertAfter:function(t,e,i){return n(t,e,i,g)},insertFirst:function(t,e,i){return n(t,e,i,p)},append:function(t,e,i){return n(t,e,i,x)},overwrite:function(t,e,i){return(t=Ext.getDom(t)).innerHTML=h(e),i?Ext.get(t.firstChild):t.firstChild},createHtml:h}}(),Ext.Template=function(t){var e,i=arguments,s=[];if(Ext.isArray(t))t=t.join("");else if(1+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w\-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,isIE=!!window.ActiveXObject,key=30803;function child(t,e){for(var i=0,s=t.firstChild;s;){if(1==s.nodeType&&++i==e)return s;s=s.nextSibling}}function next(t){for(;(t=t.nextSibling)&&1!=t.nodeType;);return t}function prev(t){for(;(t=t.previousSibling)&&1!=t.nodeType;);return t}function children(t){for(var e,i=t.firstChild,s=-1;i;)e=i.nextSibling,3!=i.nodeType||nonSpace.test(i.nodeValue)?i.nodeIndex=++s:t.removeChild(i),i=e;return this}function byClassName(t,e){if(!e)return t;for(var i,s=[],n=-1,r=0;i=t[r];r++)-1!=(" "+i.className+" ").indexOf(e)&&(s[++n]=i);return s}function attrValue(t,e){return t.tagName||void 0===t.length||(t=t[0]),t&&("for"==e?t.htmlFor:"class"==e||"className"==e?t.className:t.getAttribute(e)||t[e])}function getNodes(t,e,i){var s,n=[],r=-1;if(!t)return n;if(i=i||"*",void 0!==t.getElementsByTagName&&(t=[t]),e){if("/"==e||">"==e)for(var o,a=i.toUpperCase(),l=0;u=t[l];l++){o=u.childNodes;for(var h,d=0;h=o[d];d++)h.nodeName!=a&&h.nodeName!=i&&"*"!=i||(n[++r]=h)}else if("+"==e)for(a=i.toUpperCase(),l=0;c=t[l];l++){for(;(c=c.nextSibling)&&1!=c.nodeType;);!c||c.nodeName!=a&&c.nodeName!=i&&"*"!=i||(n[++r]=c)}else if("~"==e)for(var c,a=i.toUpperCase(),l=0;c=t[l];l++)for(;c=c.nextSibling;)c.nodeName!=a&&c.nodeName!=i&&"*"!=i||(n[++r]=c)}else for(var u,l=0;u=t[l];l++){s=u.getElementsByTagName(i);for(var f,d=0;f=s[d];d++)n[++r]=f}return n}function concat(t,e){if(e.slice)return t.concat(e);for(var i=0,s=e.length;i\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w\-]+)\s?(?:(=|.=)\s?(["']?)(.*?)\4)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{5}", "{3}", "{1}");'},{re:/^#([\w\-]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w\-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(t,e){return t==e},"!=":function(t,e){return t!=e},"^=":function(t,e){return t&&t.substr(0,e.length)==e},"$=":function(t,e){return t&&t.substr(t.length-e.length)==e},"*=":function(t,e){return t&&-1!==t.indexOf(e)},"%=":function(t,e){return t%e==0},"|=":function(t,e){return t&&(t==e||t.substr(0,e.length+1)==e+"-")},"~=":function(t,e){return t&&-1!=(" "+t+" ").indexOf(" "+e+" ")}},pseudos:{"first-child":function(t){for(var e,i,s=[],n=-1,r=0;i=e=t[r];r++){for(;(e=e.previousSibling)&&1!=e.nodeType;);e||(s[++n]=i)}return s},"last-child":function(t){for(var e,i,s=[],n=-1,r=0;i=e=t[r];r++){for(;(e=e.nextSibling)&&1!=e.nodeType;);e||(s[++n]=i)}return s},"nth-child":function(t,e){for(var i,s=[],n=-1,r=nthRe.exec(("even"==e?"2n":"odd"==e&&"2n+1")||!nthRe2.test(e)&&"n+"+e||e),o=+(r[1]||1),a=+r[2],l=0;i=t[l];l++){var h=i.parentNode;if(batch!=h._batch){for(var d=0,c=h.firstChild;c;c=c.nextSibling)1==c.nodeType&&(c.nodeIndex=++d);h._batch=batch}1==o?0!=a&&i.nodeIndex!=a||(s[++n]=i):(i.nodeIndex+a)%o==0&&(s[++n]=i)}return s},"only-child":function(t){for(var e,i=[],s=-1,n=0;e=t[n];n++)prev(e)||next(e)||(i[++s]=e);return i},empty:function(t){for(var e,i=[],s=-1,n=0;e=t[n];n++){for(var r,o=e.childNodes,a=0,l=!0;r=o[a];)if(++a,1==r.nodeType||3==r.nodeType){l=!1;break}l&&(i[++s]=e)}return i},contains:function(t,e){for(var i,s=[],n=-1,r=0;i=t[r];r++)-1!=(i.textContent||i.innerText||"").indexOf(e)&&(s[++n]=i);return s},nodeValue:function(t,e){for(var i,s=[],n=-1,r=0;i=t[r];r++)i.firstChild&&i.firstChild.nodeValue==e&&(s[++n]=i);return s},checked:function(t){for(var e,i=[],s=-1,n=0;e=t[n];n++)1==e.checked&&(i[++s]=e);return i},not:function(t,e){return Ext.DomQuery.filter(t,e,!0)},any:function(t,e){for(var i,s,n=e.split("|"),r=[],o=-1,a=0;s=t[a];a++)for(var l=0;i=n[l];l++)if(Ext.DomQuery.is(s,i)){r[++o]=s;break}return r},odd:function(t){return this["nth-child"](t,"odd")},even:function(t){return this["nth-child"](t,"even")},nth:function(t,e){return t[e-1]||[]},first:function(t){return t[0]||[]},last:function(t){return t[t.length-1]||[]},has:function(t,e){for(var i,s=Ext.DomQuery.select,n=[],r=-1,o=0;i=t[o];o++)0 "+t,this.dom);return e?i:l(i)},parent:function(t,e){return this.matchNode(i,i,t,e)},next:function(t,e){return this.matchNode(s,s,t,e)},prev:function(t,e){return this.matchNode(n,n,t,e)},first:function(t,e){return this.matchNode(s,"firstChild",t,e)},last:function(t,e){return this.matchNode(n,"lastChild",t,e)},matchNode:function(t,e,i,s){for(var n=this.dom[e];n;){if(1==n.nodeType&&(!i||a.is(n,i)))return s?n:l(n);n=n[t]}return null}}}()),Ext.Element.addMethods(function(){var i=Ext.getDom,s=Ext.get,n=Ext.DomHelper;return{appendChild:function(t){return s(t).appendTo(this)},appendTo:function(t){return i(t).appendChild(this.dom),this},insertBefore:function(t){return(t=i(t)).parentNode.insertBefore(this.dom,t),this},insertAfter:function(t){return(t=i(t)).parentNode.insertBefore(this.dom,t.nextSibling),this},insertFirst:function(t,e){return(t=t||{}).nodeType||t.dom||"string"==typeof t?(t=i(t),this.dom.insertBefore(t,this.dom.firstChild),e?t:s(t)):this.createChild(t,this.dom.firstChild,e)},replace:function(t){return t=s(t),this.insertBefore(t),t.remove(),this},replaceWith:function(t){var e=this;return t.nodeType||t.dom||"string"==typeof t?(t=i(t),e.dom.parentNode.insertBefore(t,e.dom)):t=n.insertBefore(e.dom,t),delete Ext.elCache[e.id],Ext.removeNode(e.dom),e.id=Ext.id(e.dom=t),Ext.Element.addToCache(e.isFlyweight?new Ext.Element(e.dom):e),e},createChild:function(t,e,i){return t=t||{tag:"div"},e?n.insertBefore(e,t,!0!==i):n[this.dom.firstChild?"append":"overwrite"](this.dom,t,!0!==i)},wrap:function(t,e){var i=n.insertBefore(this.dom,t||{tag:"div"},!e);return i.dom?i.dom.appendChild(this.dom):i.appendChild(this.dom),i},insertHtml:function(t,e,i){var s=n.insertHtml(t,this.dom,e);return i?Ext.get(s):s}}}()),Ext.Element.addMethods(function(){var o=Ext.supports,e={},i=/(-[a-z])/gi,a=document.defaultView,l=/alpha\(opacity=(.*)\)/i,h=/^\s+|\s+$/g,d=(Ext.Element,/\s+/),c=/\w/g,t="padding",s="margin",n="border",r="-left",u="-right",f="-top",p="-bottom",g="-width",m=Math,x="hidden",E="isClipped",v="overflow",y="overflow-x",b="overflow-y",C="originalClip",w={l:n+r+g,r:n+u+g,t:n+f+g,b:n+p+g},T={l:t+r,r:t+u,t:t+f,b:t+p},S={l:s+r,r:s+u,t:s+f,b:s+p},D=Ext.Element.data;function k(t,e){return e.charAt(1).toUpperCase()}function M(t){return e[t]||(e[t]="float"==t?o.cssFloat?"cssFloat":"styleFloat":t.replace(i,k))}return{adjustWidth:function(t){var e="number"==typeof t;return e&&this.autoBoxAdjust&&!this.isBorderBox()&&(t-=this.getBorderWidth("lr")+this.getPadding("lr")),e&&t<0?0:t},adjustHeight:function(t){var e="number"==typeof t;return e&&this.autoBoxAdjust&&!this.isBorderBox()&&(t-=this.getBorderWidth("tb")+this.getPadding("tb")),e&&t<0?0:t},addClass:function(t){var e,i,s,n=[];if(Ext.isArray(t)){for(e=0,i=t.length;et.clientHeight||t.scrollWidth>t.clientWidth},scrollTo:function(t,e){return this.dom["scroll"+(/top/i.test(t)?"Top":"Left")]=e,this},getScroll:function(){var t,e,i=this.dom,s=document,n=s.body,r=s.documentElement,o=i==s||i==n?(e=Ext.isIE&&Ext.isStrict?(t=r.scrollLeft,r.scrollTop):(t=window.pageXOffset,window.pageYOffset),{left:t||(n?n.scrollLeft:0),top:e||(n?n.scrollTop:0)}):{left:i.scrollLeft,top:i.scrollTop};return o}}),Ext.Element.VISIBILITY=1,Ext.Element.DISPLAY=2,Ext.Element.OFFSETS=3,Ext.Element.ASCLASS=4,Ext.Element.visibilityCls="x-hide-nosize",Ext.Element.addMethods(function(){function e(t){var e=c(t,i);return void 0===e&&c(t,i,e=""),e}function r(t){var e=c(t,n);return void 0===e&&c(t,n,e=1),e}var o=Ext.Element,a="visibility",l="display",h="hidden",s="none",i="originalDisplay",n="visibilityMode",d="isVisible",c=o.data;return{originalDisplay:"",visibilityMode:1,setVisibilityMode:function(t){return c(this.dom,n,t),this},animate:function(t,e,i,s,n){return this.anim(t,{duration:e,callback:i,easing:s},n),this},anim:function(t,e,i,s,n,r){i=i||"run",e=e||{};var o=this,a=Ext.lib.Anim[i](o.dom,t,e.duration||s||.35,e.easing||n||"easeOut",function(){r&&r.call(o),e.callback&&e.callback.call(e.scope||o,o,e)},o);return e.anim=a},preanim:function(t,e){return!!t[e]&&("object"==typeof t[e]?t[e]:{duration:t[e+1],callback:t[e+2],easing:t[e+3]})},isVisible:function(){var t=this,e=t.dom,i=c(e,d);return"boolean"==typeof i||(i=!(t.isStyle(a,h)||t.isStyle(l,s)||r(e)==o.ASCLASS&&t.hasClass(t.visibilityCls||o.visibilityCls)),c(e,d,i)),i},setVisible:function(t,e){var i=this,s=i.dom,n=r(s);if("string"==typeof e){switch(e){case l:n=o.DISPLAY;break;case a:n=o.VISIBILITY;break;case"offsets":n=o.OFFSETS;break;case"nosize":case"asclass":n=o.ASCLASS}i.setVisibilityMode(n),e=!1}if(e&&i.anim)t&&(i.setOpacity(.01),i.setVisible(!0)),i.anim({opacity:{to:t?1:0}},i.preanim(arguments,1),null,.35,"easeIn",function(){t||i.setVisible(!1).setOpacity(1)});else if(n==o.ASCLASS)i[t?"removeClass":"addClass"](i.visibilityCls||o.visibilityCls);else{if(n==o.DISPLAY)return i.setDisplayed(t);n==o.OFFSETS?t?(i.applyStyles(i.hideModeStyles||{position:"",top:"",left:""}),delete i.hideModeStyles):(i.hideModeStyles={position:i.getStyle("position"),top:i.getStyle("top"),left:i.getStyle("left")},i.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})):(i.fixDisplay(),s.style.visibility=t?"visible":h)}return c(s,d,t),i},hasMetrics:function(){var t=this.dom;return this.isVisible()||r(t)==o.VISIBILITY},toggle:function(t){return this.setVisible(!this.isVisible(),this.preanim(arguments,0)),this},setDisplayed:function(t){return"boolean"==typeof t&&(t=t?e(this.dom):s),this.setStyle(l,t),this},fixDisplay:function(){var t=this;t.isStyle(l,s)&&(t.setStyle(a,h),t.setStyle(l,e(this.dom)),t.isStyle(l,s)&&t.setStyle(l,"block"))},hide:function(t){return"string"==typeof t?this.setVisible(!1,t):this.setVisible(!1,this.preanim(arguments,0)),this},show:function(t){return"string"==typeof t?this.setVisible(!0,t):this.setVisible(!0,this.preanim(arguments,0)),this}}}()),function(){function u(t){return t||{}}function f(t){return e.dom=t,e.id=Ext.id(t),e}function n(t){return i[t]||(i[t]=[]),i[t]}function s(t,e){i[t]=e}var p=null,g="left",m="bottom",x="top",E="right",d="height",c="width",v="points",y="absolute",b="visible",C="motion",w="easeOut",e=new Ext.Element.Flyweight,i={};Ext.enableFx=!0,Ext.Fx={switchStatements:function(t,e,i){return e.apply(this,i[t])},slideIn:function(t,e){e=u(e);var i,s,n,r,o,a,l,h,d=this.dom,c=d.style;return t=t||"t",this.queueFx(e,function(){i=f(d).getXY(),f(d).fixDisplay(),s=f(d).getFxRestore(),(n={x:i[0],y:i[1],0:i[0],1:i[1],width:d.offsetWidth,height:d.offsetHeight}).right=n.x+n.width,n.bottom=n.y+n.height,f(d).setWidth(n.width).setHeight(n.height),r=f(d).fxWrap(s.pos,e,"hidden"),c.visibility=b,c.position=y,a={to:[n.x,n.y]},l={to:n.width},h={to:n.height},o=f(d).switchStatements(t.toLowerCase(),function(t,e,i,s,n,r,o,a,l,h,d){var c={};return f(t).setWidth(i).setHeight(s),f(t)[n]&&f(t)[n](r),e[o]=e[a]="0",l&&(c.width=l),h&&(c.height=h),d&&(c.points=d),c},{t:[r,c,n.width,0,p,p,g,m,p,h,p],l:[r,c,0,n.height,p,p,E,x,l,p,p],r:[r,c,n.width,n.height,"setX",n.right,g,x,p,p,a],b:[r,c,n.width,n.height,"setY",n.bottom,g,x,p,h,a],tl:[r,c,0,0,p,p,E,m,l,h,a],bl:[r,c,0,0,"setY",n.y+n.height,E,x,l,h,a],br:[r,c,0,0,"setXY",[n.right,n.bottom],g,x,l,h,a],tr:[r,c,0,0,"setX",n.x+n.width,g,m,l,h,a]}),c.visibility=b,f(r).show(),arguments.callee.anim=f(r).fxanim(o,e,C,.5,w,function(){f(d).fxUnwrap(r,s.pos,e),c.width=s.width,c.height=s.height,f(d).afterFx(e)})}),this},slideOut:function(t,e){e=u(e);var i,s,n,r,o=this.dom,a=o.style,l=this.getXY(),h={to:0};return t=t||"t",this.queueFx(e,function(){s=f(o).getFxRestore(),(n={x:l[0],y:l[1],0:l[0],1:l[1],width:o.offsetWidth,height:o.offsetHeight}).right=n.x+n.width,n.bottom=n.y+n.height,f(o).setWidth(n.width).setHeight(n.height),i=f(o).fxWrap(s.pos,e,b),a.visibility=b,a.position=y,f(i).setWidth(n.width).setHeight(n.height),r=f(o).switchStatements(t.toLowerCase(),function(t,e,i,s,n,r,o,a,l){var h={};return t[e]=t[i]="0",h[s]=n,r&&(h[r]=o),a&&(h[a]=l),h},{t:[a,g,m,d,h],l:[a,E,x,c,h],r:[a,g,x,c,h,v,{to:[n.right,n.y]}],b:[a,g,x,d,h,v,{to:[n.x,n.bottom]}],tl:[a,E,m,c,h,d,h],bl:[a,E,x,c,h,d,h,v,{to:[n.x,n.bottom]}],br:[a,g,x,c,h,d,h,v,{to:[n.x+n.width,n.bottom]}],tr:[a,g,m,c,h,d,h,v,{to:[n.right,n.y]}]}),arguments.callee.anim=f(i).fxanim(r,e,C,.5,w,function(){e.useDisplay?f(o).setDisplayed(!1):f(o).hide(),f(o).fxUnwrap(i,s.pos,e),a.width=s.width,a.height=s.height,f(o).afterFx(e)})}),this},puff:function(t){t=u(t);var e,i,s,n=this.dom,r=n.style;return this.queueFx(t,function(){e=f(n).getWidth(),i=f(n).getHeight(),f(n).clearOpacity(),f(n).show(),s=f(n).getFxRestore(),arguments.callee.anim=f(n).fxanim({width:{to:f(n).adjustWidth(2*e)},height:{to:f(n).adjustHeight(2*i)},points:{by:[.5*-e,.5*-i]},opacity:{to:0},fontSize:{to:200,unit:"%"}},t,C,.5,w,function(){t.useDisplay?f(n).setDisplayed(!1):f(n).hide(),f(n).clearOpacity(),f(n).setPositioning(s.pos),r.width=s.width,r.height=s.height,r.fontSize="",f(n).afterFx(t)})}),this},switchOff:function(e){e=u(e);var i,s=this.dom,n=s.style;return this.queueFx(e,function(){function t(){e.useDisplay?f(s).setDisplayed(!1):f(s).hide(),f(s).clearOpacity(),f(s).setPositioning(i.pos),n.width=i.width,n.height=i.height,f(s).afterFx(e)}f(s).clearOpacity(),f(s).clip(),i=f(s).getFxRestore(),f(s).fxanim({opacity:{to:.3}},p,p,.1,p,function(){f(s).clearOpacity(),function(){f(s).fxanim({height:{to:1},points:{by:[0,.5*f(s).getHeight()]}},e,C,.3,"easeIn",t)}.defer(100)})}),this},highlight:function(t,e){e=u(e);var i,s=this.dom,n=e.attr||"backgroundColor",r={};return this.queueFx(e,function(){f(s).clearOpacity(),f(s).show(),i=s.style[n],r[n]={from:t||"ffff9c",to:e.endColor||f(s).getColor(n)||"ffffff"},arguments.callee.anim=f(s).fxanim(r,e,"color",1,"easeIn",function(){s.style[n]=i,f(s).afterFx(e)})}),this},frame:function(n,r,o){o=u(o);var a,l,h=this.dom;return this.queueFx(o,function(){6==(n=n||"#C3DAF9").length&&(n="#"+n),r=r||1,f(h).show();var t=f(h).getXY(),e={x:t[0],y:t[1],0:t[0],1:t[1],width:h.offsetWidth,height:h.offsetHeight},i=function(){return(a=f(document.body||document.documentElement).createChild({style:{position:y,"z-index":35e3,border:"0px solid "+n}})).queueFx({},s)};function s(){var t=Ext.isBorderBox?2:1;l=a.anim({top:{from:e.y,to:e.y-20},left:{from:e.x,to:e.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:e.height,to:e.height+20*t},width:{from:e.width,to:e.width+20*t}},{duration:o.duration||1,callback:function(){a.remove(),0<--r?i():f(h).afterFx(o)}}),arguments.callee.anim={isAnimated:!0,stop:function(){l.stop()}}}arguments.callee.anim={isAnimated:!0,stop:function(){r=0,a.stopFx()}},i()}),this},pause:function(t){var e,i=this.dom;return this.queueFx({},function(){e=setTimeout(function(){f(i).afterFx({})},1e3*t),arguments.callee.anim={isAnimated:!0,stop:function(){clearTimeout(e),f(i).afterFx({})}}}),this},fadeIn:function(t){t=u(t);var e=this.dom,i=t.endOpacity||1;return this.queueFx(t,function(){f(e).setOpacity(0),f(e).fixDisplay(),e.style.visibility=b,arguments.callee.anim=f(e).fxanim({opacity:{to:i}},t,p,.5,w,function(){1==i&&f(e).clearOpacity(),f(e).afterFx(t)})}),this},fadeOut:function(t){t=u(t);var e=this.dom,i=e.style,s=t.endOpacity||0;return this.queueFx(t,function(){arguments.callee.anim=f(e).fxanim({opacity:{to:s}},t,p,.5,w,function(){0==s&&(Ext.Element.data(e,"visibilityMode")==Ext.Element.DISPLAY||t.useDisplay?i.display="none":i.visibility="hidden",f(e).clearOpacity()),f(e).afterFx(t)})}),this},scale:function(t,e,i){return this.shift(Ext.apply({},i,{width:t,height:e})),this},shift:function(e){e=u(e);var i=this.dom,s={};return this.queueFx(e,function(){for(var t in e)null!=e[t]&&(s[t]={to:e[t]});s.width&&(s.width.to=f(i).adjustWidth(e.width)),s.height&&(s.height.to=f(i).adjustWidth(e.height)),(s.x||s.y||s.xy)&&(s.points=s.xy||{to:[s.x?s.x.to:f(i).getX(),s.y?s.y.to:f(i).getY()]}),arguments.callee.anim=f(i).fxanim(s,e,C,.35,w,function(){f(i).afterFx(e)})}),this},ghost:function(t,e){e=u(e);var i,s,n,r=this.dom,o=r.style,a={opacity:{to:0},points:{}},l=a.points;return t=t||"b",this.queueFx(e,function(){i=f(r).getFxRestore(),s=f(r).getWidth(),n=f(r).getHeight(),l.by=f(r).switchStatements(t.toLowerCase(),function(t,e){return[t,e]},{t:[0,-n],l:[-s,0],r:[s,0],b:[0,n],tl:[-s,-n],bl:[-s,n],br:[s,n],tr:[s,-n]}),arguments.callee.anim=f(r).fxanim(a,e,C,.5,w,function(){e.useDisplay?f(r).setDisplayed(!1):f(r).hide(),f(r).clearOpacity(),f(r).setPositioning(i.pos),o.width=i.width,o.height=i.height,f(r).afterFx(e)})}),this},syncFx:function(){return this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:!1,concurrent:!0,stopFx:!1}),this},sequenceFx:function(){return this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:!1,concurrent:!1,stopFx:!1}),this},nextFx:function(){var t=n(this.dom.id)[0];t&&t.call(this)},hasActiveFx:function(){return n(this.dom.id)[0]},stopFx:function(t){var e,i=this.dom.id;return!this.hasActiveFx()||(e=n(i)[0])&&e.anim&&(e.anim.isAnimated?(s(i,[e]),e.anim.stop(void 0===t||t)):s(i,[])),this},beforeFx:function(t){return!(this.hasActiveFx()&&!t.concurrent)||!!t.stopFx&&(this.stopFx(),!0)},hasFxBlock:function(){var t=n(this.dom.id);return t&&t[0]&&t[0].block},queueFx:function(t,e){var i,s=f(this.dom);return s.hasFxBlock()||(Ext.applyIf(t,s.fxDefaults),t.concurrent?e.call(s):(i=s.beforeFx(t),e.block=t.block,n(s.dom.id).push(e),i&&s.nextFx())),s},fxWrap:function(t,e,i){var s,n,r,o=this.dom;return e.wrap&&(s=Ext.getDom(e.wrap))||(e.fixPosition&&(n=f(o).getXY()),(r=document.createElement("div")).style.visibility=i,s=o.parentNode.insertBefore(r,o),f(s).setPositioning(t),f(s).isStyle("position","static")&&f(s).position("relative"),f(o).clearPositioning("auto"),f(s).clip(),s.appendChild(o),n&&f(s).setXY(n)),s},fxUnwrap:function(t,e,i){var s=this.dom;f(s).clearPositioning(),f(s).setPositioning(e),i.wrap||(f(t).dom.parentNode.insertBefore(s,t),f(t).remove())},getFxRestore:function(){var t=this.dom.style;return{pos:this.getPositioning(),width:t.width,height:t.height}},afterFx:function(t){var e=this.dom,i=e.id;t.afterStyle&&f(e).setStyle(t.afterStyle),t.afterCls&&f(e).addClass(t.afterCls),1==t.remove&&f(e).remove(),t.callback&&t.callback.call(t.scope,f(e)),t.concurrent||(n(i).shift(),f(e).nextFx())},fxanim:function(t,e,i,s,n,r){i=i||"run",e=e||{};var o=Ext.lib.Anim[i](this.dom,t,e.duration||s||.35,e.easing||n||w,r,this);return e.anim=o}},Ext.Fx.resize=Ext.Fx.scale,Ext.Element.addMethods(Ext.Fx)}(),Ext.CompositeElementLite=function(t,e){this.elements=[],this.add(t,e),this.el=new Ext.Element.Flyweight},Ext.CompositeElementLite.prototype={isComposite:!0,getElement:function(t){var e=this.el;return e.dom=t,e.id=t.id,e},transformElement:function(t){return Ext.getDom(t)},getCount:function(){return this.elements.length},add:function(t,e){var i=this.elements;if(!t)return this;"string"==typeof t?t=Ext.Element.selectorFunction(t,e):t.isComposite?t=t.elements:Ext.isIterable(t)||(t=[t]);for(var s=0,n=t.length;s'+e.indicatorText+""),t.indicatorText&&(Ext.getDom(e.el).innerHTML=t.indicatorText),e.success=(Ext.isFunction(e.success)?e.success:function(){}).createInterceptor(function(t){Ext.getDom(e.el).innerHTML=t.responseText}));var i,s,n,r,o=e.params,a=e.url||t.url,l={success:t.handleResponse,failure:t.handleFailure,scope:t,argument:{options:e},timeout:Ext.num(e.timeout,t.timeout)};if(Ext.isFunction(o)&&(o=o.call(e.scope||u,e)),o=Ext.urlEncode(t.extraParams,Ext.isObject(o)?Ext.urlEncode(o):o),Ext.isFunction(a)&&(a=a.call(e.scope||u,e)),s=Ext.getDom(e.form)){if(a=a||s.action,e.isUpload||/multipart\/form-data/i.test(s.getAttribute("enctype")))return t.doFormUpload.call(t,e,o,a);n=Ext.lib.Ajax.serializeForm(s),o=o?o+"&"+n:n}return("GET"===(i=e.method||t.method||(o||e.xmlData||e.jsonData?"POST":"GET"))&&t.disableCaching&&!1!==e.disableCaching||!0===e.disableCaching)&&(r=e.disableCachingParam||t.disableCachingParam,a=Ext.urlAppend(a,r+"="+(new Date).getTime())),e.headers=Ext.applyIf(e.headers||{},t.defaultHeaders||{}),!0!==e.autoAbort&&!t.autoAbort||t.abort(),("GET"==i||e.xmlData||e.jsonData)&&o&&(a=Ext.urlAppend(a,o),o=""),t.transId=Ext.lib.Ajax.request(i,a,l,o,e)}return e.callback?e.callback.apply(e.scope,[e,void 0,void 0]):null},isLoading:function(t){return t?Ext.lib.Ajax.isCallInProgress(t):!!this.transId},abort:function(t){(t||this.isLoading())&&Ext.lib.Ajax.abort(t||this.transId)},handleResponse:function(t){this.transId=!1;var e=t.argument.options;t.argument=e?e.argument:null,this.fireEvent(c,this,t,e),e.success&&e.success.call(e.scope,t,e),e.callback&&e.callback.call(e.scope,e,!0,t)},handleFailure:function(t,e){this.transId=!1;var i=t.argument.options;t.argument=i?i.argument:null,this.fireEvent(s,this,t,i,e),i.failure&&i.failure.call(i.scope,t,i),i.callback&&i.callback.call(i.scope,i,!1,t)},doFormUpload:function(r,t,e){var i,o=Ext.id(),s=document,a=s.createElement("iframe"),n=Ext.getDom(r.form),l=[],h="multipart/form-data",d={target:n.target,method:n.method,encoding:n.encoding,enctype:n.enctype,action:n.action};Ext.fly(a).set({id:o,name:o,cls:"x-hidden",src:Ext.SSL_SECURE_URL}),s.body.appendChild(a),Ext.isIE&&(document.frames[o].name=o),Ext.fly(n).set({target:o,method:"POST",enctype:h,encoding:h,action:e||d.action}),Ext.iterate(Ext.urlDecode(t,!1),function(t,e){i=s.createElement("input"),Ext.fly(i).set({type:"hidden",value:e,name:t}),n.appendChild(i),l.push(i)}),Ext.EventManager.on(a,"load",function t(){var e,i,s={responseText:"",responseXML:null,argument:r.argument};try{(e=a.contentWindow.document||a.contentDocument||u.frames[o].document)&&(e.body&&(/textarea/i.test((i=e.body.firstChild||{}).tagName)?s.responseText=i.value:s.responseText=e.body.innerHTML),s.responseXML=e.XMLDocument||e)}catch(t){}function n(t,e,i){Ext.isFunction(t)&&t.apply(e,i)}Ext.EventManager.removeListener(a,"load",t,this),this.fireEvent(c,this,s,r),n(r.success,r.scope,[s,r]),n(r.callback,r.scope,[r,!0,s]),this.debugUploads||setTimeout(function(){Ext.removeNode(a)},100)},this),n.submit(),Ext.fly(n).set(d),Ext.each(l,function(t){Ext.removeNode(t)})}})}(),Ext.Ajax=new Ext.data.Connection({autoAbort:!1,serializeForm:function(t){return Ext.lib.Ajax.serializeForm(t)}}),Ext.util.JSON=new function(){var useHasOwn=!!{}.hasOwnProperty,isNative=(Wu=null,function(){return null===Wu&&(Wu=Ext.USE_NATIVE_JSON&&window.JSON&&"[object JSON]"==JSON.toString()),Wu}),pad=function(t){return t<10?"0"+t:t},doDecode=function(json){return json?eval("("+json+")"):""},doEncode=function(t){if(Ext.isDefined(t)&&null!==t){if(Ext.isArray(t))return encodeArray(t);if(Ext.isDate(t))return Ext.util.JSON.encodeDate(t);if(Ext.isString(t))return encodeString(t);if("number"==typeof t)return isFinite(t)?String(t):"null";if(Ext.isBoolean(t))return String(t);var e,i,s,n=["{"];for(i in t)if(!t.getElementsByTagName&&(!useHasOwn||t.hasOwnProperty(i)))switch(typeof(s=t[i])){case"undefined":case"function":case"unknown":break;default:e&&n.push(","),n.push(doEncode(i),":",null===s?"null":doEncode(s)),e=!0}return n.push("}"),n.join("")}return"null"},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},encodeString=function(t){return/["\\\x00-\x1f]/.test(t)?'"'+t.replace(/([\x00-\x1f\\"])/g,function(t,e){var i=m[e];return i||(i=e.charCodeAt(),"\\u00"+Math.floor(i/16).toString(16)+(i%16).toString(16))})+'"':'"'+t+'"'},encodeArray=function(t){for(var e,i,s=["["],n=t.length,r=0;r
    ',s.body.appendChild(i),e=i.lastChild,(t=s.defaultView)&&("0px"!=t.getComputedStyle(i.firstChild.firstChild,null).marginRight&&(n.correctRightMargin=!1),"transparent"!=t.getComputedStyle(e,null).backgroundColor&&(n.correctTransparentColor=!1)),n.cssFloat=!!e.style.cssFloat,s.body.removeChild(i)}var n=Ext.apply(Ext.supports,{correctRightMargin:!0,correctTransparentColor:!0,cssFloat:!0});Ext.isReady?t():Ext.onReady(t)}(),Ext.EventObject=function(){var i=Ext.lib.Event,s=/(dbl)?click/,e={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},n=Ext.isIE?{1:0,4:1,2:2}:{0:0,1:1,2:2};return Ext.EventObjectImpl=function(t){t&&this.setEvent(t.browserEvent||t)},Ext.EventObjectImpl.prototype={setEvent:function(t){var e=this;return t==e||t&&t.browserEvent?t:((e.browserEvent=t)?(e.button=t.button?n[t.button]:t.which?t.which-1:-1,s.test(t.type)&&-1==e.button&&(e.button=0),e.type=t.type,e.shiftKey=t.shiftKey,e.ctrlKey=t.ctrlKey||t.metaKey||!1,e.altKey=t.altKey,e.keyCode=t.keyCode,e.charCode=t.charCode,e.target=i.getTarget(t),e.xy=i.getXY(t)):(e.button=-1,e.shiftKey=!1,e.ctrlKey=!1,e.altKey=!1,e.keyCode=0,e.charCode=0,e.target=null,e.xy=[0,0]),e)},stopEvent:function(){this.browserEvent&&("mousedown"==this.browserEvent.type&&Ext.EventManager.stoppedMouseDownEvent.fire(this),i.stopEvent(this.browserEvent))},preventDefault:function(){this.browserEvent&&i.preventDefault(this.browserEvent)},stopPropagation:function(){this.browserEvent&&("mousedown"==this.browserEvent.type&&Ext.EventManager.stoppedMouseDownEvent.fire(this),i.stopPropagation(this.browserEvent))},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(t){return Ext.isSafari&&e[t]||t},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getXY:function(){return this.xy},getTarget:function(t,e,i){return t?Ext.fly(this.target).findParent(t,e,i):i?Ext.get(this.target):this.target},getRelatedTarget:function(){return this.browserEvent?i.getRelatedTarget(this.browserEvent):null},getWheelDelta:function(){var t=this.browserEvent,e=0;return t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e},within:function(t,e,i){if(t){var s=this[e?"getRelatedTarget":"getTarget"]();return s&&(!!i&&s==Ext.getDom(t)||Ext.fly(t).contains(s))}return!1}},new Ext.EventObjectImpl}(),Ext.Loader=Ext.apply({},{load:function(e,t,i,s){function n(t){r.appendChild(h.buildScriptTag(e[t],d))}var i=i||this,r=document.getElementsByTagName("head")[0],o=document.createDocumentFragment(),a=e.length,l=0,h=this,d=function(){a==++l&&"function"==typeof t?t.call(i):!0===s&&n(l)};!0===s?n.call(this,0):(Ext.each(e,function(t,e){o.appendChild(this.buildScriptTag(t,d))},this),r.appendChild(o))},buildScriptTag:function(t,e){var i=document.createElement("script");return i.type="text/javascript",i.src=t,i.readyState?i.onreadystatechange=function(){"loaded"!=i.readyState&&"complete"!=i.readyState||(i.onreadystatechange=null,e())}:i.onload=e,i}}),Ext.ns("Ext.grid","Ext.list","Ext.dd","Ext.tree","Ext.form","Ext.menu","Ext.state","Ext.layout.boxOverflow","Ext.app","Ext.ux","Ext.direct","Ext.slider"),Ext.apply(Ext,function(){var t=Ext,r=null;return{emptyFn:function(){},BLANK_IMAGE_URL:Ext.isIE6||Ext.isIE7||Ext.isAir?"http://www.extjs.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",extendX:function(t,e){return Ext.extend(t,e(t.prototype))},getDoc:function(){return Ext.get(document)},num:function(t,e){return t=Number(Ext.isEmpty(t)||Ext.isArray(t)||"boolean"==typeof t||"string"==typeof t&&0==t.trim().length?NaN:t),isNaN(t)?e:t},value:function(t,e,i){return Ext.isEmpty(t,i)?e:t},escapeRe:function(t){return t.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},sequence:function(t,e,i,s){t[e]=t[e].createSequence(i,s)},addBehaviors:function(t){if(Ext.isReady){var e,i,s,n={};for(i in t)(e=i.split("@"))[1]&&(n[s=e[0]]||(n[s]=Ext.select(s)),n[s].on(e[1],t[i]));n=null}else Ext.onReady(function(){Ext.addBehaviors(t)})},getScrollBarWidth:function(t){return Ext.isReady?(!0!==t&&null!==r||(s=(i=(e=Ext.getBody().createChild('
    ')).child("div",!0)).offsetWidth,e.setStyle("overflow",Ext.isWebKit||Ext.isGecko?"auto":"scroll"),n=i.offsetWidth,e.remove(),r=s-n+2),r):0;var e,i,s,n},combine:function(){for(var t=arguments,e=t.length,i=[],s=0;s=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom},getArea:function(){return(this.bottom-this.top)*(this.right-this.left)},intersect:function(t){var e=Math.max(this.top,t.top),i=Math.min(this.right,t.right),s=Math.min(this.bottom,t.bottom),n=Math.max(this.left,t.left);if(e<=s&&n<=i)return new Ext.lib.Region(e,i,s,n)},union:function(t){var e=Math.min(this.top,t.top),i=Math.max(this.right,t.right),s=Math.max(this.bottom,t.bottom),n=Math.min(this.left,t.left);return new Ext.lib.Region(e,i,s,n)},constrainTo:function(t){var e=this;return e.top=e.top.constrain(t.top,t.bottom),e.bottom=e.bottom.constrain(t.top,t.bottom),e.left=e.left.constrain(t.left,t.right),e.right=e.right.constrain(t.left,t.right),e},adjust:function(t,e,i,s){var n=this;return n.top+=t,n.left+=e,n.right+=s,n.bottom+=i,n}},Ext.lib.Region.getRegion=function(t){var e=Ext.lib.Dom.getXY(t),i=e[1],s=e[0]+t.offsetWidth,n=e[1]+t.offsetHeight,r=e[0];return new Ext.lib.Region(i,s,n,r)},Ext.lib.Point=function(t,e){Ext.isArray(t)&&(e=t[1],t=t[0]);var i=this;i.x=i.right=i.left=i[0]=t,i.y=i.top=i.bottom=i[1]=e},Ext.lib.Point.prototype=new Ext.lib.Region,Ext.apply(Ext.DomHelper,function(){var a,d=/tag|children|cn|html$/i;function s(t,e,i,s,n,r){var o;return t=Ext.getDom(t),a.useDom?(o=c(e,null),r?t.appendChild(o):("firstChild"==n?t:t.parentNode).insertBefore(o,t[n]||t)):o=Ext.DomHelper.insertHtml(s,t,Ext.DomHelper.createHtml(e)),i?Ext.get(o,!0):o}function c(t,e){var i,s,n,r,o=document;if(Ext.isArray(t)){i=o.createDocumentFragment();for(var a=0,l=t.length;a',Ext.lib.Event.onAvailable(f,function(){for(var t,e,i,s,n,r,o=document,a=o.getElementsByTagName("head")[0],l=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/gi,h=/\ssrc=([\'\"])(.*?)\1/i,d=/\stype=([\'\"])(.*?)\1/i;t=l.exec(c);)(i=!!(e=t[1])&&e.match(h))&&i[2]?((r=o.createElement("script")).src=i[2],(s=e.match(d))&&s[2]&&(r.type=s[2]),a.appendChild(r)):t[2]&&0)((\n|\r|.)*?)(?:<\/script>)/gi,""),this},removeAllListeners:function(){return this.removeAnchor(),Ext.EventManager.removeAll(this.dom),this},createProxy:function(t,e,i){t="object"==typeof t?t:{tag:"div",cls:t};var s=e?Ext.DomHelper.append(e,t,!0):Ext.DomHelper.insertBefore(this.dom,t,!0);return i&&this.setBox&&this.getBox&&s.setBox(this.getBox()),s}}),Ext.Element.prototype.getUpdateManager=Ext.Element.prototype.getUpdater,Ext.Element.addMethods({getAnchorXY:function(t,e,i){t=(t||"tl").toLowerCase(),i=i||{};var s=this,n=s.dom==document.body||s.dom==document,r=i.width||n?Ext.lib.Dom.getViewWidth():s.getWidth(),o=i.height||n?Ext.lib.Dom.getViewHeight():s.getHeight(),a=Math.round,l=s.getXY(),h=s.getScroll(),d=n?h.left:e?0:l[0],c=n?h.top:e?0:l[1],u={c:[a(.5*r),a(.5*o)],t:[a(.5*r),0],l:[0,a(.5*o)],r:[r,a(.5*o)],b:[a(.5*r),o],tl:[0,0],bl:[0,o],br:[r,o],tr:[r,0]}[t];return[u[0]+d,u[1]+c]},anchorTo:function(t,e,i,s,n,r){function o(){Ext.fly(a).alignTo(t,e,i,s),Ext.callback(r,Ext.fly(a))}var a=this.dom,l=!Ext.isEmpty(n),h=this.getAnchor();return this.removeAnchor(),Ext.apply(h,{fn:o,scroll:l}),Ext.EventManager.onWindowResize(o,null),l&&Ext.EventManager.on(window,"scroll",o,null,{buffer:isNaN(n)?50:n}),o.call(this),this},removeAnchor:function(){var t=this.getAnchor();return t&&t.fn&&(Ext.EventManager.removeResizeListener(t.fn),t.scroll&&Ext.EventManager.un(window,"scroll",t.fn),delete t.fn),this},getAnchor:function(){var t=Ext.Element.data,e=this.dom;if(e)return t(e,"_anchor")||t(e,"_anchor",{})},getAlignToXY:function(t,e,i){if(!(t=Ext.get(t))||!t.dom)throw"Element.alignToXY with an element that doesn't exist";i=i||[0,0],e=(e&&"?"!=e?/-/.test(e)||""===e?e||"tl-bl":"tl-"+e:"tl-bl?").toLowerCase();this.dom;var s,n,r,o,a,l,h,d,c,u,f,p,g,m,x=Ext.lib.Dom.getViewWidth()-10,E=Ext.lib.Dom.getViewHeight()-10,v=document,y=v.documentElement,b=v.body,C=(y.scrollLeft||b.scrollLeft||0)+5,w=(y.scrollTop||b.scrollTop||0)+5,T="",S="",D=e.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!D)throw"Element.alignTo with an invalid alignment "+e;return T=D[1],S=D[2],m=!!D[3],s=this.getAnchorXY(T,!0),r=(n=t.getAnchorXY(S,!1))[0]-s[0]+i[0],o=n[1]-s[1]+i[1],m&&(a=this.getWidth(),l=this.getHeight(),h=t.getRegion(),d=T.charAt(0),c=T.charAt(T.length-1),u=S.charAt(0),f=S.charAt(S.length-1),p="t"==d&&"b"==u||"b"==d&&"t"==u,g="r"==c&&"l"==f||"l"==c&&"r"==f,x+C
    ',Ext.Element.addMethods(function(){var n="_internal";return{applyStyles:function(t){return Ext.DomHelper.applyStyles(this.dom,t),this},getStyles:function(){var e={};return Ext.each(arguments,function(t){e[t]=this.getStyle(t)},this),e},setOverflow:function(t){var e=this.dom;"auto"==t&&Ext.isMac&&Ext.isGecko2?(e.style.overflow="hidden",function(){e.style.overflow="auto"}.defer(1)):e.style.overflow=t},boxWrap:function(t){t=t||"x-box";var e=Ext.get(this.insertHtml("beforeBegin","
    "+String.format(Ext.Element.boxMarkup,t)+"
    "));return Ext.DomQuery.selectNode("."+t+"-mc",e.dom).appendChild(this.dom),e},setSize:function(t,e,i){var s=this;return"object"==typeof t&&(e=t.height,t=t.width),t=s.adjustWidth(t),e=s.adjustHeight(e),i&&s.anim?s.anim({width:{to:t},height:{to:e}},s.preanim(arguments,2)):(s.dom.style.width=s.addUnits(t),s.dom.style.height=s.addUnits(e)),s},getComputedHeight:function(){var t=this,e=Math.max(t.dom.offsetHeight,t.dom.clientHeight);return e||(e=parseFloat(t.getStyle("height"))||0,t.isBorderBox()||(e+=t.getFrameWidth("tb"))),e},getComputedWidth:function(){var t=Math.max(this.dom.offsetWidth,this.dom.clientWidth);return t||(t=parseFloat(this.getStyle("width"))||0,this.isBorderBox()||(t+=this.getFrameWidth("lr"))),t},getFrameWidth:function(t,e){return e&&this.isBorderBox()?0:this.getPadding(t)+this.getBorderWidth(t)},addClassOnOver:function(t){return this.hover(function(){Ext.fly(this,n).addClass(t)},function(){Ext.fly(this,n).removeClass(t)}),this},addClassOnFocus:function(t){return this.on("focus",function(){Ext.fly(this,n).addClass(t)},this.dom),this.on("blur",function(){Ext.fly(this,n).removeClass(t)},this.dom),this},addClassOnClick:function(i){var s=this.dom;return this.on("mousedown",function(){Ext.fly(s,n).addClass(i);var t=Ext.getDoc(),e=function(){Ext.fly(s,n).removeClass(i),t.removeListener("mouseup",e)};t.on("mouseup",e)}),this},getViewSize:function(){var t=document,e=this.dom;if(e!=t&&e!=t.body)return{width:e.clientWidth,height:e.clientHeight};var i=Ext.lib.Dom;return{width:i.getViewWidth(),height:i.getViewHeight()}},getStyleSize:function(){var t,e,i=this,s=document,n=this.dom,r=n==s||n==s.body,o=n.style;if(r){var a=Ext.lib.Dom;return{width:a.getViewWidth(),height:a.getViewHeight()}}return o.width&&"auto"!=o.width&&(t=parseFloat(o.width),i.isBorderBox()&&(t-=i.getFrameWidth("lr"))),o.height&&"auto"!=o.height&&(e=parseFloat(o.height),i.isBorderBox()&&(e-=i.getFrameWidth("tb"))),{width:t||i.getWidth(!0),height:e||i.getHeight(!0)}},getSize:function(t){return{width:this.getWidth(t),height:this.getHeight(t)}},repaint:function(){var t=this.dom;return this.addClass("x-repaint"),setTimeout(function(){Ext.fly(t).removeClass("x-repaint")},1),this},unselectable:function(){return this.dom.unselectable="on",this.swallowEvent("selectstart",!0).addClass("x-unselectable")},getMargins:function(t){var e,i=this,s={t:"top",l:"left",r:"right",b:"bottom"},n={};if(t)return i.addStyles.call(i,t,i.margins);for(e in i.margins)n[s[e]]=parseFloat(i.getStyle(i.margins[e]))||0;return n}}}()),Ext.Element.addMethods({setBox:function(t,e,i){var s=this,n=t.width,r=t.height;return!e||s.autoBoxAdjust||s.isBorderBox()||(n-=s.getBorderWidth("lr")+s.getPadding("lr"),r-=s.getBorderWidth("tb")+s.getPadding("tb")),s.setBounds(t.x,t.y,n,r,s.animTest.call(s,arguments,i,2)),s},getBox:function(t,e){var i,s,n,r,o=this,a=o.getBorderWidth,l=o.getPadding,h=e?[parseInt(o.getStyle("left"),10)||0,parseInt(o.getStyle("top"),10)||0]:o.getXY(),d=o.dom,c=d.offsetWidth,u=d.offsetHeight,f=t?(i=a.call(o,"l")+l.call(o,"l"),s=a.call(o,"r")+l.call(o,"r"),n=a.call(o,"t")+l.call(o,"t"),r=a.call(o,"b")+l.call(o,"b"),{x:h[0]+i,y:h[1]+n,0:h[0]+i,1:h[1]+n,width:c-(i+s),height:u-(n+r)}):{x:h[0],y:h[1],0:h[0],1:h[1],width:c,height:u};return f.right=f.x+f.width,f.bottom=f.y+f.height,f},move:function(t,e,i){var s=this.getXY(),n=s[0],r=s[1],o=[n-e,r],a=[n+e,r],l=[n,r-e],h=[n,r+e],d={l:o,left:o,r:a,right:a,t:l,top:l,up:l,b:h,bottom:h,down:h};t=t.toLowerCase(),this.moveTo(d[t][0],d[t][1],this.animTest.call(this,arguments,i,2))},setLeftTop:function(t,e){var i=this.dom.style;return i.left=this.addUnits(t),i.top=this.addUnits(e),this},getRegion:function(){return Ext.lib.Dom.getRegion(this.dom)},setBounds:function(t,e,i,s,n){var r=this;return n&&r.anim?r.anim({points:{to:[t,e]},width:{to:r.adjustWidth(i)},height:{to:r.adjustHeight(s)}},r.preanim(arguments,4),"motion"):(r.setSize(i,s),r.setLocation(t,e)),r},setRegion:function(t,e){return this.setBounds(t.left,t.top,t.right-t.left,t.bottom-t.top,this.animTest.call(this,arguments,e,1))}}),Ext.Element.addMethods({scrollTo:function(t,e,i){var s,n=/top/i.test(t),r=this,o=r.dom;return i&&r.anim?(s="scroll"+(n?"Left":"Top"),r.anim({scroll:{to:n?[o[s],e]:[e,o[s]]}},r.preanim(arguments,2),"scroll")):o[s="scroll"+(n?"Top":"Left")]=e,r},scrollIntoView:function(t,e){var i=Ext.getDom(t)||Ext.getBody().dom,s=this.dom,n=this.getOffsetsTo(i),r=n[0]+i.scrollLeft,o=n[1]+i.scrollTop,a=o+s.offsetHeight,l=r+s.offsetWidth,h=i.clientHeight,d=parseInt(i.scrollTop,10),c=parseInt(i.scrollLeft,10),u=d+h,f=c+i.clientWidth;return s.offsetHeight>h||oi.clientWidth||r'+n.text+""),Ext.isEmpty(n.scripts)||(a.loadScripts=n.scripts),Ext.isEmpty(n.timeout)||(a.timeout=n.timeout)),a.showLoading(),s||(a.defaultUrl=t),Ext.isFunction(t)&&(t=t.call(a)),o=Ext.apply({},{url:t,params:Ext.isFunction(e)&&r?e.createDelegate(r):e,success:h,failure:d,scope:a,callback:void 0,timeout:1e3*a.timeout,disableCaching:a.disableCaching,argument:{options:n,url:t,form:null,callback:i,scope:r||window,params:e}},n),a.transaction=Ext.Ajax.request(o))},formUpdate:function(t,e,i,s){var n=this;!1!==n.fireEvent(l,n.el,t,e)&&(Ext.isFunction(e)&&(e=e.call(n)),t=Ext.getDom(t),n.transaction=Ext.Ajax.request({form:t,url:e,success:h,failure:d,scope:n,timeout:1e3*n.timeout,argument:{url:e,form:t,callback:s,reset:i}}),n.showLoading.defer(1,n))},startAutoRefresh:function(t,e,i,s,n){var r=this;n&&r.update(e||r.defaultUrl,i,s,!0),r.autoRefreshProcId&&clearInterval(r.autoRefreshProcId),r.autoRefreshProcId=setInterval(r.update.createDelegate(r,[e||r.defaultUrl,i,s,!0]),1e3*t)},stopAutoRefresh:function(){this.autoRefreshProcId&&(clearInterval(this.autoRefreshProcId),delete this.autoRefreshProcId)},isAutoRefreshing:function(){return!!this.autoRefreshProcId},showLoading:function(){this.showLoadIndicator&&(this.el.dom.innerHTML=this.indicatorText)},abort:function(){this.transaction&&Ext.Ajax.abort(this.transaction)},isUpdating:function(){return!!this.transaction&&Ext.Ajax.isLoading(this.transaction)},refresh:function(t){this.defaultUrl&&this.update(this.defaultUrl,null,t,!0)}}}()),Ext.Updater.defaults={timeout:30,disableCaching:!1,showLoadIndicator:!0,indicatorText:'
    Loading...
    ',loadScripts:!1,sslBlankUrl:Ext.SSL_SECURE_URL},Ext.Updater.updateElement=function(t,e,i,s){var n=Ext.get(t).getUpdater();Ext.apply(n,s),n.update(e,i,s?s.callback:null)},Ext.Updater.BasicRenderer=function(){},Ext.Updater.BasicRenderer.prototype={render:function(t,e,i,s){t.update(e.responseText,i.loadScripts,s)}},function(){function d(t){var i=Array.prototype.slice.call(arguments,1);return t.replace(/\{(\d+)\}/g,function(t,e){return i[e]})}Date.useStrict=!1,Date.formatCodeToRegex=function(t,e){var i=Date.parseCodes[t];return i&&(i="function"==typeof i?i():i,Date.parseCodes[t]=i),i?Ext.applyIf({c:i.c?d(i.c,e||"{0}"):i.c},i):{g:0,c:null,s:Ext.escapeRe(t)}};var c,e,i,u=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{M$:function(t,e){var i=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/"),s=(t||"").match(i);return s?new Date(+((s[1]||"")+s[2])):null}},parseRegexes:[],formatFunctions:{M$:function(){return"\\/Date("+this.getTime()+")\\/"}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(t){return Date.monthNames[t].substring(0,3)},getShortDayName:function(t){return Date.dayNames[t].substring(0,3)},getMonthNumber:function(t){return Date.monthNumbers[t.substring(0,1).toUpperCase()+t.substring(1,3).toLowerCase()]},formatContainsHourInfo:(e=/(\\.)/g,i=/([gGhHisucUOPZ]|M\$)/,function(t){return i.test(t.replace(e,""))}),formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"String.leftPad(this.getFullYear(), 4, '0')",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var t="Y-m-dTH:i:sP",e=[],i=0,s=t.length;i= 0 && y >= 0){","v = new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);","v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);","}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = new Date(y < 100 ? 100 : y, m, d, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);","}","}","}","if(v){","if(zz != null){","v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n"),function(t){for(var e,i,s=Date.parseRegexes.length,n=1,r=[],o=[],a=!1,l="",h=0;h Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:function(){return u("A")},A:{calcLast:!0,g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM|am|pm)"},g:function(){return u("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return u("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){for(var t=[],e=[u("Y",1),u("m",2),u("d",3),u("h",4),u("i",5),u("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",u("P",8).c,"}else{",u("O",8).c,"}","}"].join("\n")}],i=0,s=e.length;i=this.length?this.add(e,i):(this.length++,this.items.splice(t,0,i),null!=e&&(this.map[e]=i),this.keys.splice(t,0,e),this.fireEvent("add",t,i,e),i)},remove:function(t){return this.removeAt(this.indexOf(t))},removeAt:function(t){if(t]+>/gi,stripScriptsRe=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,nl2brRe=/\r?\n/g,QP;return{ellipsis:function(t,e,i){if(t&&t.length>e){if(i){var s=t.substr(0,e-2),n=Math.max(s.lastIndexOf(" "),s.lastIndexOf("."),s.lastIndexOf("!"),s.lastIndexOf("?"));return-1==n||n/g,">").replace(/").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&"):t},trim:function(t){return String(t).replace(trimRe,"")},substr:function(t,e,i){return String(t).substr(e,i)},lowercase:function(t){return String(t).toLowerCase()},uppercase:function(t){return String(t).toUpperCase()},capitalize:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t},call:function(value,fn){if(2")}}}(),Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);for(var t,e=/]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,i=/^]*?for="(.*?)"/,s=/^]*?if="(.*?)"/,n=/^]*?exec="(.*?)"/,r=0,o=[],a="values",l="parent",h="return ",d="with(values){ ",c=["",c=this.html,""].join("");t=c.match(e);){var u=t[0].match(i),f=t[0].match(s),p=t[0].match(n),g=null,m=null,x=null,E=u&&u[1]?u[1]:"";if(f&&(g=f&&f[1]?f[1]:null)&&(m=new Function(a,l,"xindex","xcount",d+h+Ext.util.Format.htmlDecode(g)+"; }")),p&&(g=p&&p[1]?p[1]:null)&&(x=new Function(a,l,"xindex","xcount",d+Ext.util.Format.htmlDecode(g)+"; }")),E)switch(E){case".":E=new Function(a,l,d+h+a+"; }");break;case"..":E=new Function(a,l,d+h+l+"; }");break;default:E=new Function(a,l,d+h+E+"; }")}o.push({id:r,target:E,exec:x,test:m,body:t[1]||""}),c=c.replace(t[0],"{xtpl"+r+"}"),++r}for(var v=o.length-1;0<=v;--v)this.compileTpl(o[v]);this.master=o[o.length-1],this.tpls=o},Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w\-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(t,e,i,s,n){var r,o=this,a=o.tpls[t],l=[];if(a.test&&!a.test.call(o,e,i,s,n)||a.exec&&a.exec.call(o,e,i,s,n))return"";if(d=(r=a.target?a.target.call(o,e,i):e).length,i=a.target?e:i,a.target&&Ext.isArray(r)){for(var h=0,d=r.length;ht+i.left&&(n=t-a-o,h=!0),r+l>e+i.top&&(r=e-l-o,h=!0),n':'
    ';return{pull:function(){var t=e.shift();return t||((t=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,i))).autoBoxAdjust=!1),t},push:function(t){e.push(t)}}}(),Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this),this.addEvents("resize","move")},boxReady:!1,deferHeight:!1,setSize:function(t,e){if("object"==typeof t&&(e=t.height,t=t.width),Ext.isDefined(t)&&Ext.isDefined(this.boxMinWidth)&&tthis.boxMaxWidth&&(t=this.boxMaxWidth),Ext.isDefined(e)&&Ext.isDefined(this.boxMaxHeight)&&e>this.boxMaxHeight&&(e=this.boxMaxHeight),!this.boxReady)return this.width=t,this.height=e,this;if(!1!==this.cacheSizes&&this.lastSize&&this.lastSize.width==t&&this.lastSize.height==e)return this;this.lastSize={width:t,height:e};var i,s=this.adjustSize(t,e),n=s.width,r=s.height;return void 0===n&&void 0===r||(i=this.getResizeEl(),this.deferHeight||void 0===n||void 0===r?this.deferHeight||void 0===r?void 0!==n&&i.setWidth(n):i.setHeight(r):i.setSize(n,r),this.onResize(n,r,t,e),this.fireEvent("resize",this,n,r,t,e)),this},setWidth:function(t){return this.setSize(t)},setHeight:function(t){return this.setSize(void 0,t)},getSize:function(){return this.getResizeEl().getSize()},getWidth:function(){return this.getResizeEl().getWidth()},getHeight:function(){return this.getResizeEl().getHeight()},getOuterSize:function(){var t=this.getResizeEl();return{width:t.getWidth()+t.getMargins("lr"),height:t.getHeight()+t.getMargins("tb")}},getPosition:function(t){var e=this.getPositionEl();return!0===t?[e.getLeft(!0),e.getTop(!0)]:this.xy||e.getXY()},getBox:function(t){var e=this.getPosition(t),i=this.getSize();return i.x=e[0],i.y=e[1],i},updateBox:function(t){return this.setSize(t.width,t.height),this.setPagePosition(t.x,t.y),this},getResizeEl:function(){return this.resizeEl||this.el},setAutoScroll:function(t){return this.rendered&&this.getContentTarget().setOverflow(t?"auto":""),this.autoScroll=t,this},setPosition:function(t,e){if(t&&"number"==typeof t[1]&&(e=t[1],t=t[0]),this.x=t,this.y=e,!this.boxReady)return this;var i=this.adjustPosition(t,e),s=i.x,n=i.y,r=this.getPositionEl();return void 0===s&&void 0===n||(void 0!==s&&void 0!==n?r.setLeftTop(s,n):void 0!==s?r.setLeft(s):void 0!==n&&r.setTop(n),this.onPosition(s,n),this.fireEvent("move",this,s,n)),this},setPagePosition:function(t,e){if(t&&"number"==typeof t[1]&&(e=t[1],t=t[0]),this.pageX=t,this.pageY=e,this.boxReady&&void 0!==t&&void 0!==e){var i=this.getPositionEl().translatePoints(t,e);return this.setPosition(i.left,i.top),this}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this),this.resizeEl&&(this.resizeEl=Ext.get(this.resizeEl)),this.positionEl&&(this.positionEl=Ext.get(this.positionEl)),this.boxReady=!0,Ext.isDefined(this.autoScroll)&&this.setAutoScroll(this.autoScroll),this.setSize(this.width,this.height),this.x||this.y?this.setPosition(this.x,this.y):(this.pageX||this.pageY)&&this.setPagePosition(this.pageX,this.pageY)},syncSize:function(){return delete this.lastSize,this.setSize(this.autoWidth?void 0:this.getResizeEl().getWidth(),this.autoHeight?void 0:this.getResizeEl().getHeight()),this},onResize:function(t,e,i,s){},onPosition:function(t,e){},adjustSize:function(t,e){return this.autoWidth&&(t="auto"),this.autoHeight&&(e="auto"),{width:t,height:e}},adjustPosition:function(t,e){return{x:t,y:e}}}),Ext.reg("box",Ext.BoxComponent),Ext.Spacer=Ext.extend(Ext.BoxComponent,{autoEl:"div"}),Ext.reg("spacer",Ext.Spacer),Ext.SplitBar=function(t,e,i,s,n){this.el=Ext.get(t,!0),this.el.unselectable(),this.resizingEl=Ext.get(e,!0),this.orientation=i||Ext.SplitBar.HORIZONTAL,this.minSize=0,this.maxSize=2e3,this.animate=!1,this.useShim=!1,this.shim=null,this.proxy=n?Ext.get(n).dom:Ext.SplitBar.createProxy(this.orientation),this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id}),this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this),this.dd.endDrag=this.onEndProxyDrag.createDelegate(this),this.dragSpecs={},this.adapter=new Ext.SplitBar.BasicLayoutAdapter,this.adapter.init(this),this.orientation==Ext.SplitBar.HORIZONTAL?(this.placement=s||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT),this.el.addClass("x-splitbar-h")):(this.placement=s||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM),this.el.addClass("x-splitbar-v")),this.addEvents("resize","moved","beforeresize","beforeapply"),Ext.SplitBar.superclass.constructor.call(this)},Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(t,e){this.fireEvent("beforeresize",this),this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:" "},!0),this.overlay.unselectable(),this.overlay.setSize(Ext.lib.Dom.getViewWidth(!0),Ext.lib.Dom.getViewHeight(!0)),this.overlay.show(),Ext.get(this.proxy).setDisplayed("block");var i=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize(),this.activeMaxSize=this.getMaximumSize();var s=i-this.activeMinSize,n=Math.max(this.activeMaxSize-i,0);this.orientation==Ext.SplitBar.HORIZONTAL?(this.dd.resetConstraints(),this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?s:n,this.placement==Ext.SplitBar.LEFT?n:s,this.tickSize),this.dd.setYConstraint(0,0)):(this.dd.resetConstraints(),this.dd.setXConstraint(0,0),this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?s:n,this.placement==Ext.SplitBar.TOP?n:s,this.tickSize)),this.dragSpecs.startSize=i,this.dragSpecs.startPoint=[t,e],Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,t,e)},onEndProxyDrag:function(t){Ext.get(this.proxy).setDisplayed(!1);var e,i=Ext.lib.Event.getXY(t);this.overlay&&(Ext.destroy(this.overlay),delete this.overlay),e=this.orientation==Ext.SplitBar.HORIZONTAL?this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?i[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-i[0]):this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?i[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-i[1]),(e=Math.min(Math.max(e,this.activeMinSize),this.activeMaxSize))!=this.dragSpecs.startSize&&!1!==this.fireEvent("beforeapply",this,e)&&(this.adapter.setElementSize(this,e),this.fireEvent("moved",this,e),this.fireEvent("resize",this,e))},getAdapter:function(){return this.adapter},setAdapter:function(t){this.adapter=t,this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(t){this.minSize=t},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(t){this.maxSize=t},setCurrentSize:function(t){var e=this.animate;this.animate=!1,this.adapter.setElementSize(this,t),this.animate=e},destroy:function(t){Ext.destroy(this.shim,Ext.get(this.proxy)),this.dd.unreg(),t&&this.el.remove(),this.purgeListeners()}}),Ext.SplitBar.createProxy=function(t){var e=new Ext.Element(document.createElement("div"));document.body.appendChild(e.dom),e.unselectable();var i="x-splitbar-proxy";return e.addClass(i+" "+(t==Ext.SplitBar.HORIZONTAL?i+"-h":i+"-v")),e.dom},Ext.SplitBar.BasicLayoutAdapter=function(){},Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(t){},getElementSize:function(t){return t.orientation==Ext.SplitBar.HORIZONTAL?t.resizingEl.getWidth():t.resizingEl.getHeight()},setElementSize:function(t,e,i){t.orientation==Ext.SplitBar.HORIZONTAL?t.animate?t.resizingEl.setWidth(e,!0,.1,i,"easeOut"):(t.resizingEl.setWidth(e),i&&i(t,e)):t.animate?t.resizingEl.setHeight(e,!0,.1,i,"easeOut"):(t.resizingEl.setHeight(e),i&&i(t,e))}},Ext.SplitBar.AbsoluteLayoutAdapter=function(t){this.basic=new Ext.SplitBar.BasicLayoutAdapter,this.container=Ext.get(t)},Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(t){this.basic.init(t)},getElementSize:function(t){return this.basic.getElementSize(t)},setElementSize:function(t,e,i){this.basic.setElementSize(t,e,this.moveSplitter.createDelegate(this,[t]))},moveSplitter:function(t){var e=Ext.SplitBar;switch(t.placement){case e.LEFT:t.el.setX(t.resizingEl.getRight());break;case e.RIGHT:t.el.setStyle("right",this.container.getWidth()-t.resizingEl.getLeft()+"px");break;case e.TOP:t.el.setY(t.resizingEl.getBottom());break;case e.BOTTOM:t.el.setY(t.resizingEl.getTop()-t.el.getHeight())}}},Ext.SplitBar.VERTICAL=1,Ext.SplitBar.HORIZONTAL=2,Ext.SplitBar.LEFT=1,Ext.SplitBar.RIGHT=2,Ext.SplitBar.TOP=3,Ext.SplitBar.BOTTOM=4,Ext.Container=Ext.extend(Ext.BoxComponent,{bufferResize:50,autoDestroy:!0,forceLayout:!1,defaultType:"panel",resizeEvent:"resize",bubbleEvents:["add","remove"],initComponent:function(){Ext.Container.superclass.initComponent.call(this),this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var t=this.items;t&&(delete this.items,this.add(t))},initItems:function(){this.items||(this.items=new Ext.util.MixedCollection(!1,this.getComponentId),this.getLayout())},setLayout:function(t){this.layout&&this.layout!=t&&this.layout.setContainer(null),this.layout=t,this.initItems(),t.setContainer(this)},afterRender:function(){var t;Ext.Container.superclass.afterRender.call(this),this.layout||(this.layout="auto"),Ext.isObject(this.layout)&&!this.layout.layout&&(this.layoutConfig=this.layout,this.layout=this.layoutConfig.type),Ext.isString(this.layout)&&(this.layout=new(Ext.Container.LAYOUTS[this.layout.toLowerCase()])(this.layoutConfig)),this.setLayout(this.layout),void 0!==this.activeItem&&this.layout.setActiveItem&&(t=this.activeItem,delete this.activeItem,this.layout.setActiveItem(t)),this.ownerCt||this.doLayout(!1,!0),!0===this.monitorResize&&Ext.EventManager.onWindowResize(this.doLayout,this,[!1])},getLayoutTarget:function(){return this.el},getComponentId:function(t){return t.getItemId()},add:function(t){this.initItems();var e=1','','
    ','
    ',"");return t.disableFormats=!0,t.compile()}(),destroy:function(){var t;this.resizeTask&&this.resizeTask.cancel&&this.resizeTask.cancel(),this.container&&this.container.un(this.container.resizeEvent,this.onResize,this),Ext.isEmpty(this.targetCls)||(t=this.container.getLayoutTarget())&&t.removeClass(this.targetCls)}}),Ext.layout.AutoLayout=Ext.extend(Ext.layout.ContainerLayout,{type:"auto",monitorResize:!0,onLayout:function(t,e){Ext.layout.AutoLayout.superclass.onLayout.call(this,t,e);for(var i,s=this.getRenderedItems(t),n=s.length,r=0;r ')).disableFormats=!0,t.compile(),Ext.layout.BorderLayout.Region.prototype.toolTemplate=t),this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"}),this.collapsedEl.enableDisplayMode("block"),"mini"==this.collapseMode?(this.collapsedEl.addClass("x-layout-cmini-"+this.position),this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "}),this.miniCollapsedEl.addClassOnOver("x-layout-mini-over"),this.collapsedEl.addClassOnOver("x-layout-collapsed-over"),this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:!0})):(!1===this.collapsible||this.hideCollapseTool||((e=this.expandToolEl=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},!0)).addClassOnOver("x-tool-expand-"+this.position+"-over"),e.on("click",this.onExpandClick,this,{stopEvent:!0})),!1===this.floatable&&!this.titleCollapse||(this.collapsedEl.addClassOnOver("x-layout-collapsed-over"),this.collapsedEl.on("click",this[this.floatable?"collapseClick":"onExpandClick"],this)))),this.collapsedEl},onExpandClick:function(t){this.isSlid?this.panel.expand(!1):this.panel.expand()},onCollapseClick:function(t){this.panel.collapse()},beforeCollapse:function(t,e){this.lastAnim=e,this.splitEl&&this.splitEl.hide(),this.getCollapsedEl().show();var i=this.panel.getEl();this.originalZIndex=i.getStyle("z-index"),i.setStyle("z-index",100),this.isCollapsed=!0,this.layout.layout()},onCollapse:function(t){this.panel.el.setStyle("z-index",1),!1===this.lastAnim||!1===this.panel.animCollapse?this.getCollapsedEl().dom.style.visibility="visible":this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:.2}),this.state.collapsed=!0,this.panel.saveState()},beforeExpand:function(t){this.isSlid&&this.afterSlideIn();var e=this.getCollapsedEl();this.el.show(),"east"==this.position||"west"==this.position?this.panel.setSize(void 0,e.getHeight()):this.panel.setSize(e.getWidth(),void 0),e.hide(),e.dom.style.visibility="hidden",this.panel.el.setStyle("z-index",this.floatingZIndex)},onExpand:function(){this.isCollapsed=!1,this.splitEl&&this.splitEl.show(),this.layout.layout(),this.panel.el.setStyle("z-index",this.originalZIndex),this.state.collapsed=!1,this.panel.saveState()},collapseClick:function(t){this.isSlid?(t.stopPropagation(),this.slideIn()):(t.stopPropagation(),this.slideOut())},onHide:function(){this.isCollapsed?this.getCollapsedEl().hide():this.splitEl&&this.splitEl.hide()},onShow:function(){this.isCollapsed?this.getCollapsedEl().show():this.splitEl&&this.splitEl.show()},isVisible:function(){return!this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(t){this.panel=t},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(t){var e=this.getCollapsedEl();e.setLeftTop(t.x,t.y),e.setSize(t.width,t.height)},applyLayout:function(t){this.isCollapsed?this.applyLayoutCollapsed(t):(this.panel.setPosition(t.x,t.y),this.panel.setSize(t.width,t.height))},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){!1!==this.autoHide&&(this.autoHideHd||(this.autoHideSlideTask=new Ext.util.DelayedTask(this.slideIn,this),this.autoHideHd={mouseout:function(t){t.within(this.el,!0)||this.autoHideSlideTask.delay(500)},mouseover:function(t){this.autoHideSlideTask.cancel()},scope:this}),this.el.on(this.autoHideHd),this.collapsedEl.on(this.autoHideHd))},clearAutoHide:function(){!1!==this.autoHide&&(this.el.un("mouseout",this.autoHideHd.mouseout),this.el.un("mouseover",this.autoHideHd.mouseover),this.collapsedEl.un("mouseout",this.autoHideHd.mouseout),this.collapsedEl.un("mouseover",this.autoHideHd.mouseover))},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){var t,e,i;this.isSlid||this.el.hasActiveFx()||(this.isSlid=!0,(t=this.panel.tools)&&t.toggle&&t.toggle.hide(),this.el.show(),i=this.panel.collapsed,this.panel.collapsed=!1,"east"==this.position||"west"==this.position?(e=this.panel.deferHeight,this.panel.deferHeight=!1,this.panel.setSize(void 0,this.collapsedEl.getHeight()),this.panel.deferHeight=e):this.panel.setSize(this.collapsedEl.getWidth(),void 0),this.panel.collapsed=i,this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top],this.el.alignTo(this.collapsedEl,this.getCollapseAnchor()),this.el.setStyle("z-index",this.floatingZIndex+2),this.panel.el.replaceClass("x-panel-collapsed","x-panel-floating"),!1!==this.animFloat?(this.beforeSlide(),this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide(),this.initAutoHide(),Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:!0})):(this.initAutoHide(),Ext.getDoc().on("click",this.slideInIf,this)))},afterSlideIn:function(){this.clearAutoHide(),this.isSlid=!1,this.clearMonitor(),this.el.setStyle("z-index",""),this.panel.el.replaceClass("x-panel-floating","x-panel-collapsed"),this.el.dom.style.left=this.restoreLT[0],this.el.dom.style.top=this.restoreLT[1];var t=this.panel.tools;t&&t.toggle&&t.toggle.show()},slideIn:function(t){this.isSlid&&!this.el.hasActiveFx()?(this.isSlid=!1)!==this.animFloat?(this.beforeSlide(),this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide(),this.afterSlide(),this.afterSlideIn(),Ext.callback(t)},scope:this,block:!0})):(this.el.hide(),this.afterSlideIn()):Ext.callback(t)},slideInIf:function(t){t.within(this.el)||this.slideIn()},anchors:{west:"left",east:"right",north:"top",south:"bottom"},sanchors:{west:"l",east:"r",north:"t",south:"b"},canchors:{west:"tl-tr",east:"tr-tl",north:"tl-bl",south:"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){this.cmargins;switch(this.position){case"west":case"east":case"north":case"south":return[0,0]}},getExpandAdj:function(){var t=this.collapsedEl,e=this.cmargins;switch(this.position){case"west":return[-(e.right+t.getWidth()+e.left),0];case"east":return[e.right+t.getWidth()+e.left,0];case"north":return[0,-(e.top+e.bottom+t.getHeight())];case"south":return[0,e.top+e.bottom+t.getHeight()]}},destroy:function(){this.autoHideSlideTask&&this.autoHideSlideTask.cancel&&this.autoHideSlideTask.cancel(),Ext.destroyMembers(this,"miniCollapsedEl","collapsedEl","expandToolEl")}},Ext.layout.BorderLayout.SplitRegion=function(t,e,i){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,t,e,i),this.applyLayout=this.applyFns[i]},Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:!1,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(t){if(this.isCollapsed)return this.applyLayoutCollapsed(t);var e=this.splitEl.dom,i=e.style;this.panel.setPosition(t.x,t.y);var s=e.offsetWidth;i.left=t.x+t.width-s+"px",i.top=t.y+"px",i.height=Math.max(0,t.height)+"px",this.panel.setSize(t.width-s,t.height)},east:function(t){if(this.isCollapsed)return this.applyLayoutCollapsed(t);var e=this.splitEl.dom,i=e.style,s=e.offsetWidth;this.panel.setPosition(t.x+s,t.y),i.left=t.x+"px",i.top=t.y+"px",i.height=Math.max(0,t.height)+"px",this.panel.setSize(t.width-s,t.height)},north:function(t){if(this.isCollapsed)return this.applyLayoutCollapsed(t);var e=this.splitEl.dom,i=e.style,s=e.offsetHeight;this.panel.setPosition(t.x,t.y),i.left=t.x+"px",i.top=t.y+t.height-s+"px",i.width=Math.max(0,t.width)+"px",this.panel.setSize(t.width,t.height-s)},south:function(t){if(this.isCollapsed)return this.applyLayoutCollapsed(t);var e=this.splitEl.dom,i=e.style,s=e.offsetHeight;this.panel.setPosition(t.x,t.y+s),i.left=t.x+"px",i.top=t.y+"px",i.width=Math.max(0,t.width)+"px",this.panel.setSize(t.width,t.height-s)}},render:function(t,e){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,t,e);var i=this.position;this.splitEl=t.createChild({cls:"x-layout-split x-layout-split-"+i,html:" ",id:this.panel.id+"-xsplit"}),"mini"==this.collapseMode&&(this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+i,html:" "}),this.miniSplitEl.addClassOnOver("x-layout-mini-over"),this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:!0}));var s=this.splitSettings[i];this.split=new Ext.SplitBar(this.splitEl.dom,e.el,s.orientation),this.split.tickSize=this.tickSize,this.split.placement=s.placement,this.split.getMaximumSize=this[s.maxFn].createDelegate(this),this.split.minSize=this.minSize||this[s.minProp],this.split.on("beforeapply",this.onSplitMove,this),this.split.useShim=!0===this.useShim,this.maxSize=this.maxSize||this[s.maxProp],e.hidden&&this.splitEl.hide(),this.useSplitTips&&(this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip),this.collapsible&&this.splitEl.on("dblclick",this.onCollapseClick,this)},getSize:function(){if(this.isCollapsed)return this.collapsedEl.getSize();var t=this.panel.getSize();return"north"==this.position||"south"==this.position?t.height+=this.splitEl.dom.offsetHeight:t.width+=this.splitEl.dom.offsetWidth,t},getHMaxSize:function(){var t=this.maxSize||1e4,e=this.layout.center;return Math.min(t,this.el.getWidth()+e.el.getWidth()-e.getMinWidth())},getVMaxSize:function(){var t=this.maxSize||1e4,e=this.layout.center;return Math.min(t,this.el.getHeight()+e.el.getHeight()-e.getMinHeight())},onSplitMove:function(t,e){var i=this.panel.getSize();return this.lastSplitSize=e,"north"==this.position||"south"==this.position?(this.panel.setSize(i.width,e),this.state.height=e):(this.panel.setSize(e,i.height),this.state.width=e),this.layout.layout(),this.panel.saveState(),!1},getSplitBar:function(){return this.split},destroy:function(){Ext.destroy(this.miniSplitEl,this.split,this.splitEl),Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this)}}),Ext.Container.LAYOUTS.border=Ext.layout.BorderLayout,Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",trackLabels:!0,type:"form",onRemove:function(t){Ext.layout.FormLayout.superclass.onRemove.call(this,t),this.trackLabels&&(t.un("show",this.onFieldShow,this),t.un("hide",this.onFieldHide,this));var e=t.getPositionEl(),i=t.getItemCt&&t.getItemCt();t.rendered&&i&&(e&&e.dom&&e.insertAfter(i),Ext.destroy(i),Ext.destroyMembers(t,"label","itemCt"),t.customItemCt&&Ext.destroyMembers(t,"getItemCt","customItemCt"))},setContainer:function(t){var e;Ext.layout.FormLayout.superclass.setContainer.call(this,t),t.labelAlign=t.labelAlign||this.labelAlign,t.labelAlign&&t.addClass("x-form-label-"+t.labelAlign),t.hideLabels||this.hideLabels?Ext.apply(this,{labelStyle:"display:none",elementStyle:"padding-left:0;",labelAdjust:0}):(this.labelSeparator=Ext.isDefined(t.labelSeparator)?t.labelSeparator:this.labelSeparator,t.labelWidth=t.labelWidth||this.labelWidth||100,Ext.isNumber(t.labelWidth)&&(e=t.labelPad||this.labelPad,e=Ext.isNumber(e)?e:5,Ext.apply(this,{labelAdjust:t.labelWidth+e,labelStyle:"width:"+t.labelWidth+"px;",elementStyle:"padding-left:"+(t.labelWidth+e)+"px"})),"top"==t.labelAlign&&Ext.apply(this,{labelStyle:"width:auto;",labelAdjust:0,elementStyle:"padding-left:0;"}))},isHide:function(t){return t.hideLabel||this.container.hideLabels},onFieldShow:function(t){t.getItemCt().removeClass("x-hide-"+t.hideMode),t.isComposite&&t.doLayout()},onFieldHide:function(t){t.getItemCt().addClass("x-hide-"+t.hideMode)},getLabelStyle:function(t){for(var e="",i=[this.labelStyle,t],s=0,n=i.length;s(None)',constructor:function(t){Ext.layout.boxOverflow.Menu.superclass.constructor.apply(this,arguments),this.menuItems=[]},createInnerElements:function(){this.afterCt||(this.afterCt=this.layout.innerCt.insertSibling({cls:this.afterCls},"before"))},clearOverflow:function(t,e){var i=e.width+(this.afterCt?this.afterCt.getWidth():0),s=this.menuItems;this.hideTrigger();for(var n=0,r=s.length;ne.width,i}},handleOverflow:function(t,e){this.showTrigger();for(var i=e.width-this.afterCt.getWidth(),s=t.boxes,n=0,r=!1,o=0,a=s.length;o=this.getMaxScrollBottom()}}),Ext.layout.boxOverflow.scroller.vbox=Ext.layout.boxOverflow.VerticalScroller,Ext.layout.boxOverflow.HorizontalScroller=Ext.extend(Ext.layout.boxOverflow.Scroller,{handleOverflow:function(t,e){return Ext.layout.boxOverflow.HorizontalScroller.superclass.handleOverflow.apply(this,arguments),{targetSize:{height:e.height,width:e.width-(this.beforeCt.getWidth()+this.afterCt.getWidth())}}},createInnerElements:function(){var t=this.layout.innerCt;this.beforeCt||(this.afterCt=t.insertSibling({cls:this.afterCls},"before"),this.beforeCt=t.insertSibling({cls:this.beforeCls},"before"),this.createWheelListener())},scrollTo:function(t,e){var i=this.getScrollPosition(),s=t.constrain(0,this.getMaxScrollRight());s==i||this.scrolling||(null==e&&(e=this.animateScroll),this.layout.innerCt.scrollTo("left",s,!!e&&this.getScrollAnim()),e?this.scrolling=!0:(this.scrolling=!1,this.updateScrollButtons()))},getScrollPosition:function(){return parseInt(this.layout.innerCt.dom.scrollLeft,10)||0},getMaxScrollRight:function(){return this.layout.innerCt.dom.scrollWidth-this.layout.innerCt.getWidth()},atExtremeAfter:function(){return this.getScrollPosition()>=this.getMaxScrollRight()}}),Ext.layout.boxOverflow.scroller.hbox=Ext.layout.boxOverflow.HorizontalScroller,Ext.layout.HBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"top",type:"hbox",calculateChildBoxes:function(t,e){var i,s,n,r,o,a,l,h,d,c,u,f=t.length,p=this.padding,g=p.top,m=p.left,x=g+p.bottom,E=m+p.right,v=e.width-this.scrollOffset,y=e.height,b=Math.max(0,y-x),C="start"==this.pack,w="center"==this.pack,T="end"==this.pack,S=0,D=0,k=0,M=0,I=0,R=[];for(z=0;ze.available?1:-1});for(var z=0,H=P.length;ze.available?1:-1});for(var z=0,H=P.length;z(None)',lastOverflow:!1,tableHTML:['',"","",'",'","","","
    ','',"",'',"","
    ","
    ','',"","","","","","","
    ",'',"",'',"","
    ","
    ",'',"",'',"","
    ","
    ","
    "].join(""),onLayout:function(t,e){var i;this.leftTr||(i="center"==t.buttonAlign?"center":"left",e.addClass("x-toolbar-layout-ct"),e.insertHtml("beforeEnd",String.format(this.tableHTML,i)),this.leftTr=e.child("tr.x-toolbar-left-row",!0),this.rightTr=e.child("tr.x-toolbar-right-row",!0),this.extrasTr=e.child("tr.x-toolbar-extras-row",!0),null==this.hiddenItem&&(this.hiddenItems=[]));for(var s,n,r="right"==t.buttonAlign?this.rightTr:this.leftTr,o=t.items.items,a=0,l=0,h=o.length;l','','{altText}',"","")),t&&!t.rendered?(Ext.isNumber(e)&&(e=i.dom.childNodes[e]),s=this.getItemArgs(t),t.render(t.positionEl=e?this.itemTpl.insertBefore(e,s,!0):this.itemTpl.append(i,s,!0)),t.positionEl.menuItemId=t.getItemId(),!s.isMenuItem&&s.needsIcon&&t.positionEl.addClass("x-menu-list-item-indent"),this.configureItem(t)):t&&!this.isValidParent(t,i)&&(Ext.isNumber(e)&&(e=i.dom.childNodes[e]),i.dom.insertBefore(t.getActionEl().dom,e||null))},getItemArgs:function(t){var e=t instanceof Ext.menu.Item;return{isMenuItem:e,needsIcon:!(e||t instanceof Ext.menu.Separator)&&(t.icon||t.iconCls),icon:t.icon||Ext.BLANK_IMAGE_URL,iconCls:"x-menu-item-icon "+(t.iconCls||""),itemId:"x-menu-el-"+t.id,itemCls:"x-menu-list-item ",altText:t.altText||""}},isValidParent:function(t,e){return t.el.up("li.x-menu-list-item",5).dom.parentNode===(e.dom||e)},onLayout:function(t,e){Ext.layout.MenuLayout.superclass.onLayout.call(this,t,e),this.doAutoSize()},doAutoSize:function(){var t,e=this.container,i=e.width;e.floating&&(i?e.setWidth(i):Ext.isIE9m&&(e.setWidth(Ext.isStrict&&(Ext.isIE7||Ext.isIE8||Ext.isIE9)?"auto":e.minWidth),(t=e.getEl()).dom.offsetWidth,e.setWidth(e.getLayoutTarget().getWidth()+t.getFrameWidth("lr"))))}}),Ext.Container.LAYOUTS.menu=Ext.layout.MenuLayout,Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this),document.getElementsByTagName("html")[0].className+=" x-viewport",this.el=Ext.getBody(),this.el.setHeight=Ext.emptyFn,this.el.setWidth=Ext.emptyFn,this.el.setSize=Ext.emptyFn,this.el.dom.scroll="no",this.allowDomMove=!1,this.autoWidth=!0,this.autoHeight=!0,Ext.EventManager.onWindowResize(this.fireResize,this),this.renderTo=this.el},fireResize:function(t,e){this.fireEvent("resize",this,t,e,t,e)}}),Ext.reg("viewport",Ext.Viewport),Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:!0,animCollapse:Ext.enableFx,headerAsText:!0,buttonAlign:"right",collapsed:!1,collapseFirst:!0,minButtonWidth:75,elements:"body",preventBodyReset:!1,padding:void 0,resizeEvent:"bodyresize",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:!0,expandDefaults:{duration:.25},collapseDefaults:{duration:.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this),this.addEvents("bodyresize","titlechange","iconchange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate"),this.unstyled&&(this.baseCls="x-plain"),this.toolbars=[],this.tbar&&(this.elements+=",tbar",this.topToolbar=this.createToolbar(this.tbar),this.tbar=null),this.bbar&&(this.elements+=",bbar",this.bottomToolbar=this.createToolbar(this.bbar),this.bbar=null),!0===this.header?(this.elements+=",header",this.header=null):(this.headerCfg||this.title&&!1!==this.header)&&(this.elements+=",header"),!this.footerCfg&&!0!==this.footer||(this.elements+=",footer",this.footer=null),this.buttons&&(this.fbar=this.buttons,this.buttons=null),this.fbar&&this.createFbar(this.fbar),this.autoLoad&&this.on("render",this.doAutoLoad,this,{delay:10})},createFbar:function(t){var e=this.minButtonWidth;this.elements+=",footer",this.fbar=this.createToolbar(t,{buttonAlign:this.buttonAlign,toolbarCls:"x-panel-fbar",enableOverflow:!1,defaults:function(t){return{minWidth:t.minWidth||e}}}),this.fbar.items.each(function(t){t.minWidth=t.minWidth||this.minButtonWidth},this),this.buttons=this.fbar.items.items},createToolbar:function(t,e){var i;return Ext.isArray(t)&&(t={items:t}),i=t.events?Ext.apply(t,e):this.createComponent(Ext.apply({},t,e),"toolbar"),this.toolbars.push(i),i},createElement:function(t,e){var i;this[t]?e.appendChild(this[t].dom):"bwrap"!==t&&-1==this.elements.indexOf(t)||(this[t+"Cfg"]?this[t]=Ext.fly(e).createChild(this[t+"Cfg"]):((i=document.createElement("div")).className=this[t+"Cls"],this[t]=Ext.get(e.appendChild(i))),this[t+"CssClass"]&&this[t].addClass(this[t+"CssClass"]),this[t+"Style"]&&this[t].applyStyles(this[t+"Style"]))},onRender:function(t,e){Ext.Panel.superclass.onRender.call(this,t,e),this.createClasses();var i,s,n,r,o,a,l=this.el,h=l.dom;this.collapsible&&!this.hideCollapseTool&&(this.tools=this.tools?this.tools.slice(0):[],this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})),this.tools&&(s=this.tools,this.elements+=!1!==this.header?",header":""),this.tools={},l.addClass(this.baseCls),h.firstChild&&(this.header=l.down("."+this.headerCls),this.bwrap=l.down("."+this.bwrapCls),n=this.bwrap?this.bwrap:l,this.tbar=n.down("."+this.tbarCls),this.body=n.down("."+this.bodyCls),this.bbar=n.down("."+this.bbarCls),this.footer=n.down("."+this.footerCls),this.fromMarkup=!0),!0===this.preventBodyReset&&l.addClass("x-panel-reset"),this.cls&&l.addClass(this.cls),this.buttons&&(this.elements+=",footer"),this.frame?(l.insertHtml("afterBegin",String.format(Ext.Element.boxMarkup,this.baseCls)),this.createElement("header",h.firstChild.firstChild.firstChild),this.createElement("bwrap",h),i=this.bwrap.dom,r=h.childNodes[1],o=h.childNodes[2],i.appendChild(r),i.appendChild(o),a=i.firstChild.firstChild.firstChild,this.createElement("tbar",a),this.createElement("body",a),this.createElement("bbar",a),this.createElement("footer",i.lastChild.firstChild.firstChild),this.footer||(this.bwrap.dom.lastChild.className+=" x-panel-nofooter"),this.ft=Ext.get(this.bwrap.dom.lastChild),this.mc=Ext.get(a)):(this.createElement("header",h),this.createElement("bwrap",h),i=this.bwrap.dom,this.createElement("tbar",i),this.createElement("body",i),this.createElement("bbar",i),this.createElement("footer",i),this.header||(this.body.addClass(this.bodyCls+"-noheader"),this.tbar&&this.tbar.addClass(this.tbarCls+"-noheader"))),Ext.isDefined(this.padding)&&this.body.setStyle("padding",this.body.addUnits(this.padding)),!1===this.border&&(this.el.addClass(this.baseCls+"-noborder"),this.body.addClass(this.bodyCls+"-noborder"),this.header&&this.header.addClass(this.headerCls+"-noborder"),this.footer&&this.footer.addClass(this.footerCls+"-noborder"),this.tbar&&this.tbar.addClass(this.tbarCls+"-noborder"),this.bbar&&this.bbar.addClass(this.bbarCls+"-noborder")),!1===this.bodyBorder&&this.body.addClass(this.bodyCls+"-noborder"),this.bwrap.enableDisplayMode("block"),this.header&&(this.header.unselectable(),this.headerAsText&&(this.header.dom.innerHTML=''+this.header.dom.innerHTML+"",this.iconCls&&this.setIconClass(this.iconCls))),this.floating&&this.makeFloating(this.floating),this.collapsible&&this.titleCollapse&&this.header&&(this.mon(this.header,"click",this.toggleCollapse,this),this.header.setStyle("cursor","pointer")),s&&this.addTool.apply(this,s),this.fbar&&(this.footer.addClass("x-panel-btns"),(this.fbar.ownerCt=this).fbar.render(this.footer),this.footer.createChild({cls:"x-clear"})),this.tbar&&this.topToolbar&&(this.topToolbar.ownerCt=this).topToolbar.render(this.tbar),this.bbar&&this.bottomToolbar&&(this.bottomToolbar.ownerCt=this).bottomToolbar.render(this.bbar)},setIconClass:function(t){var e,i,s,n=this.iconCls;this.iconCls=t,this.rendered&&this.header&&(this.frame?(this.header.addClass("x-panel-icon"),this.header.replaceClass(n,this.iconCls)):(i=(e=this.header).child("img.x-panel-inline-icon"))?Ext.fly(i).replaceClass(n,this.iconCls):(s=e.child("span."+this.headerTextCls))&&Ext.DomHelper.insertBefore(s.dom,{tag:"img",alt:"",src:Ext.BLANK_IMAGE_URL,cls:"x-panel-inline-icon "+this.iconCls})),this.fireEvent("iconchange",this,t,n)},makeFloating:function(t){this.floating=!0,this.el=new Ext.Layer(Ext.apply({},t,{shadow:Ext.isDefined(this.shadow)?this.shadow:"sides",shadowOffset:this.shadowOffset,constrain:!1,shim:!1!==this.shim&&void 0}),this.el)},getTopToolbar:function(){return this.topToolbar},getBottomToolbar:function(){return this.bottomToolbar},getFooterToolbar:function(){return this.fbar},addButton:function(t,e,i){return this.fbar||this.createFbar([]),e&&(Ext.isString(t)&&(t={text:t}),t=Ext.apply({handler:e,scope:i},t)),this.fbar.add(t)},addTool:function(){if(!this.rendered)return this.tools||(this.tools=[]),void Ext.each(arguments,function(t){this.tools.push(t)},this);if(this[this.toolTarget]){var t;this.toolTemplate||((t=new Ext.Template('
     
    ')).disableFormats=!0,t.compile(),Ext.Panel.prototype.toolTemplate=t);for(var e=0,i=arguments,s=i.length;e ')).overwrite(this.el,this.colors),this.mon(this.el,this.clickEvent,this.handleClick,this,{delegate:"a"}),"click"!=this.clickEvent&&this.mon(this.el,"click",Ext.emptyFn,this,{delegate:"a",preventDefault:!0})},afterRender:function(){var t;Ext.ColorPalette.superclass.afterRender.call(this),this.value&&(t=this.value,this.value=null,this.select(t,!0))},handleClick:function(t,e){var i;t.preventDefault(),this.disabled||(i=e.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1],this.select(i.toUpperCase()))},select:function(t,e){var i;(t=t.replace("#",""))==this.value&&!this.allowReselect||(i=this.el,this.value&&i.child("a.color-"+this.value).removeClass("x-color-palette-sel"),i.child("a.color-"+t).addClass("x-color-palette-sel"),this.value=t,!0!==e&&this.fireEvent("select",this,t))}}),Ext.reg("colorpalette",Ext.ColorPalette),Ext.DatePicker=Ext.extend(Ext.BoxComponent,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:!0,focusOnSelect:!0,initHour:12,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this),this.value=this.value?this.value.clearTime(!0):(new Date).clearTime(),this.addEvents("select"),this.handler&&this.on("select",this.handler,this.scope||this),this.initDisabledDays()},initDisabledDays:function(){var i,s,n;!this.disabledDatesRE&&this.disabledDates&&(i=this.disabledDates,s=i.length-1,n="(?:",Ext.each(i,function(t,e){n+=Ext.isDate(t)?"^"+Ext.escapeRe(t.dateFormat(this.format))+"$":i[e],e!=s&&(n+="|")},this),this.disabledDatesRE=new RegExp(n+")"))},setDisabledDates:function(t){Ext.isArray(t)?(this.disabledDates=t,this.disabledDatesRE=null):this.disabledDatesRE=t,this.initDisabledDays(),this.update(this.value,!0)},setDisabledDays:function(t){this.disabledDays=t,this.update(this.value,!0)},setMinDate:function(t){this.minDate=t,this.update(this.value,!0)},setMaxDate:function(t){this.maxDate=t,this.update(this.value,!0)},setValue:function(t){this.value=t.clearTime(!0),this.update(this.value)},getValue:function(){return this.value},focus:function(){this.update(this.activeDate)},onEnable:function(t){Ext.DatePicker.superclass.onEnable.call(this),this.doDisabled(!1),this.update(t?this.value:this.activeDate),Ext.isIE9m&&this.el.repaint()},onDisable:function(){Ext.DatePicker.superclass.onDisable.call(this),this.doDisabled(!0),Ext.isIE9m&&!Ext.isIE8&&Ext.each([].concat(this.textNodes,this.el.query("th span")),function(t){Ext.fly(t).repaint()})},doDisabled:function(t){this.keyNav.setDisabled(t),this.prevRepeater.setDisabled(t),this.nextRepeater.setDisabled(t),this.showToday&&(this.todayKeyListener.setDisabled(t),this.todayBtn.setDisabled(t))},onRender:function(t,e){for(var i=['','','",this.showToday?'':"",'
      
    '],s=this.dayNames,n=0;n<7;n++){var r=this.startDay+n;6",s[r].substr(0,1),"")}for(i[i.length]="",n=0;n<42;n++)n%7==0&&0!==n&&(i[i.length]=""),i[i.length]='';i.push("
    ');var o,a=document.createElement("div");a.className="x-date-picker",a.innerHTML=i.join(""),t.dom.insertBefore(a,e),this.el=Ext.get(a),this.eventEl=Ext.get(a.firstChild),this.prevRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:!0,stopDefault:!0}),this.nextRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:!0,stopDefault:!0}),this.monthPicker=this.el.down("div.x-date-mp"),this.monthPicker.enableDisplayMode("block"),this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(t){t.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1))},right:function(t){t.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1))},up:function(t){t.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7))},down:function(t){t.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7))},pageUp:function(t){this.showNextMonth()},pageDown:function(t){this.showPrevMonth()},enter:function(t){return t.stopPropagation(),!0},scope:this}),this.el.unselectable(),this.cells=this.el.select("table.x-date-inner tbody td"),this.textNodes=this.el.query("table.x-date-inner tbody span"),this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",!0)}),this.mbtn.el.child("em").addClass("x-btn-arrow"),this.showToday&&(this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this),o=(new Date).dateFormat(this.format),this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",!0),text:String.format(this.todayText,o),tooltip:String.format(this.todayTip,o),handler:this.selectToday,scope:this})),this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this),this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"a.x-date-date"}),this.mon(this.mbtn,"click",this.showMonthPicker,this),this.onEnable(!0)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){for(var t=[''],e=0;e<6;e++)t.push('",'",0===e?'':'');t.push('","
    ',Date.getShortMonthName(e),"',Date.getShortMonthName(e+6),"
    "),this.monthPicker.update(t.join("")),this.mon(this.monthPicker,"click",this.onMonthClick,this),this.mon(this.monthPicker,"dblclick",this.onMonthDblClick,this),this.mpMonths=this.monthPicker.select("td.x-date-mp-month"),this.mpYears=this.monthPicker.select("td.x-date-mp-year"),this.mpMonths.each(function(t,e,i){i+=1,t.dom.xmonth=i%2==0?5+Math.round(.5*i):Math.round(.5*(i-1))})}},showMonthPicker:function(){var t;this.disabled||(this.createMonthPicker(),t=this.el.getSize(),this.monthPicker.setSize(t),this.monthPicker.child("table").setSize(t),this.mpSelMonth=(this.activeDate||this.value).getMonth(),this.updateMPMonth(this.mpSelMonth),this.mpSelYear=(this.activeDate||this.value).getFullYear(),this.updateMPYear(this.mpSelYear),this.monthPicker.slideIn("t",{duration:.2}))},updateMPYear:function(t){this.mpyear=t;for(var e=this.mpYears.elements,i=1;i<=10;i++){var s=e[i-1],n=i%2==0?t+Math.round(.5*i):t-(5-Math.round(.5*i));s.firstChild.innerHTML=n,s.xyear=n,this.mpYears.item(i-1)[n==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(s){this.mpMonths.each(function(t,e,i){t[t.dom.xmonth==s?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(t){},onMonthClick:function(t,e){t.stopEvent();var i,s,n=new Ext.Element(e);n.is("button.x-date-mp-cancel")?this.hideMonthPicker():n.is("button.x-date-mp-ok")?((s=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate())).getMonth()!=this.mpSelMonth&&(s=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth()),this.update(s),this.hideMonthPicker()):(i=n.up("td.x-date-mp-month",2))?(this.mpMonths.removeClass("x-date-mp-sel"),i.addClass("x-date-mp-sel"),this.mpSelMonth=i.dom.xmonth):(i=n.up("td.x-date-mp-year",2))?(this.mpYears.removeClass("x-date-mp-sel"),i.addClass("x-date-mp-sel"),this.mpSelYear=i.dom.xyear):n.is("a.x-date-mp-prev")?this.updateMPYear(this.mpyear-10):n.is("a.x-date-mp-next")&&this.updateMPYear(this.mpyear+10)},onMonthDblClick:function(t,e){t.stopEvent();var i,s=new Ext.Element(e);(i=s.up("td.x-date-mp-month",2))?(this.update(new Date(this.mpSelYear,i.dom.xmonth,(this.activeDate||this.value).getDate())),this.hideMonthPicker()):(i=s.up("td.x-date-mp-year",2))&&(this.update(new Date(i.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate())),this.hideMonthPicker())},hideMonthPicker:function(t){this.monthPicker&&(!0===t?this.monthPicker.hide():this.monthPicker.slideOut("t",{duration:.2}))},showPrevMonth:function(t){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(t){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(t){var e;t.stopEvent(),this.disabled||(0<(e=t.getWheelDelta())?this.showPrevMonth():e<0&&this.showNextMonth())},handleDateClick:function(t,e){t.stopEvent(),this.disabled||!e.dateValue||Ext.fly(e.parentNode).hasClass("x-date-disabled")||(this.cancelFocus=!1===this.focusOnSelect,this.setValue(new Date(e.dateValue)),delete this.cancelFocus,this.fireEvent("select",this,this.value))},selectToday:function(){this.todayBtn&&!this.todayBtn.disabled&&(this.setValue((new Date).clearTime()),this.fireEvent("select",this,this.value))},update:function(t,e){if(this.rendered){var i=this.activeDate,n=this.isVisible();if(this.activeDate=t,!e&&i&&this.el){var s=t.getTime();if(i.getMonth()==t.getMonth()&&i.getFullYear()==t.getFullYear())return this.cells.removeClass("x-date-selected"),void this.cells.each(function(t){if(t.dom.firstChild.dateValue==s)return t.addClass("x-date-selected"),n&&!this.cancelFocus&&Ext.fly(t.dom.firstChild).focus(50),!1},this)}var r=t.getDaysInMonth(),o=t.getFirstDateOfMonth().getDay()-this.startDay;o<0&&(o+=7),r+=o;var a,l,h=t.add("mo",-1),d=h.getDaysInMonth()-o,c=this.cells.elements,u=this.textNodes,f=new Date(h.getFullYear(),h.getMonth(),d,this.initHour),p=(new Date).clearTime().getTime(),g=t.clearTime(!0).getTime(),m=this.minDate?this.minDate.clearTime(!0):Number.NEGATIVE_INFINITY,x=this.maxDate?this.maxDate.clearTime(!0):Number.POSITIVE_INFINITY,E=this.disabledDatesRE,v=this.disabledDatesText,y=!!this.disabledDays&&this.disabledDays.join(""),b=this.disabledDaysText,C=this.format;this.showToday&&(l=(a=(new Date).clearTime())=e.value&&(r=e.value)),s.setValue(n,r,!1),s.fireEvent("drag",s,t,this)},getNewValue:function(){var t=this.slider,e=t.innerEl.translatePoints(this.tracker.getXY());return Ext.util.Format.round(t.reverseValue(e.left),t.decimalPrecision)},onDragEnd:function(t){var e=this.slider,i=this.value;this.el.removeClass("x-slider-thumb-drag"),this.dragging=!1,e.fireEvent("dragend",e,t),this.dragStartValue!=i&&e.fireEvent("changecomplete",e,i,this)},destroy:function(){Ext.destroyMembers(this,"tracker","el")}}),Ext.slider.MultiSlider=Ext.extend(Ext.BoxComponent,{vertical:!1,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:!0,animate:!0,constrainThumbs:!0,topThumbZIndex:1e4,initComponent:function(){Ext.isDefined(this.value)||(this.value=this.minValue),this.thumbs=[],Ext.slider.MultiSlider.superclass.initComponent.call(this),this.keyIncrement=Math.max(this.increment,this.keyIncrement),this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend"),null!=this.values&&!Ext.isEmpty(this.values)||(this.values=[0]);for(var t=this.values,e=0;ethis.clickRange[0]&&t.topt?t:e.value;this.syncThumb()},setValue:function(t,e,i,s){var n=this.thumbs[t];n.el;(e=this.normalizeValue(e))!==n.value&&!1!==this.fireEvent("beforechange",this,e,n.value,n)&&(n.value=e,this.rendered&&(this.moveThumb(t,this.translateValue(e),!1!==i),this.fireEvent("change",this,e,n),s&&this.fireEvent("changecomplete",this,e,n)))},translateValue:function(t){var e=this.getRatio();return t*e-this.minValue*e-this.halfThumb},reverseValue:function(t){var e=this.getRatio();return(t+this.minValue*e)/e},moveThumb:function(t,e,i){var s=this.thumbs[t].el;i&&!1!==this.animate?s.shift({left:e,stopFx:!0,duration:.35}):s.setLeft(e)},focus:function(){this.focusEl.focus(10)},onResize:function(t,e){for(var i=this.thumbs,s=i.length,n=0;nthis.clickRange[0]&&t.left','
    ','
    ','
    ',"
     
    ","
    ","
    ",'
    ',"
     
    ","
    ","
    ","");this.el=e?i.insertBefore(e,{cls:this.baseCls},!0):i.append(t,{cls:this.baseCls},!0),this.id&&(this.el.dom.id=this.id);var s,n=this.el.dom.firstChild;this.progressBar=Ext.get(n.firstChild),this.textEl?(this.textEl=Ext.get(this.textEl),delete this.textTopEl):(this.textTopEl=Ext.get(this.progressBar.dom.firstChild),s=Ext.get(n.childNodes[1]),this.textTopEl.setStyle("z-index",99).addClass("x-hidden"),this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,s.dom.firstChild]),this.textEl.setWidth(n.offsetWidth)),this.progressBar.setHeight(n.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this),this.value?this.updateProgress(this.value,this.text):this.updateText(this.text)},updateProgress:function(t,e,i){var s;return this.value=t||0,e&&this.updateText(e),this.rendered&&!this.isDestroyed&&(s=Math.floor(t*this.el.dom.firstChild.offsetWidth),this.progressBar.setWidth(s,!0===i||!1!==i&&this.animate),this.textTopEl&&this.textTopEl.removeClass("x-hidden").setWidth(s)),this.fireEvent("update",this,t,e),this},wait:function(i){return this.waitTimer||(i=i||{},this.updateText(i.text),this.waitTimer=Ext.TaskMgr.start({run:function(t){var e=i.increment||10;--t,this.updateProgress(100/e*((t+e)%e+1)*.01,null,i.animate)},interval:i.interval||1e3,duration:i.duration,onStop:function(){i.fn&&i.fn.apply(i.scope||this),this.reset()},scope:this})),this},isWaiting:function(){return null!==this.waitTimer},updateText:function(t){return this.text=t||" ",this.rendered&&this.textEl.update(this.text),this},syncProgressBar:function(){return this.value&&this.updateProgress(this.value,this.text),this},setSize:function(t,e){var i;return Ext.ProgressBar.superclass.setSize.call(this,t,e),this.textTopEl&&(i=this.el.dom.firstChild,this.textEl.setSize(i.offsetWidth,i.offsetHeight)),this.syncProgressBar(),this},reset:function(t){return this.updateProgress(0),this.textTopEl&&this.textTopEl.addClass("x-hidden"),this.clearTimer(),!0===t&&this.hide(),this},clearTimer:function(){this.waitTimer&&(this.waitTimer.onStop=null,Ext.TaskMgr.stop(this.waitTimer),this.waitTimer=null)},onDestroy:function(){this.clearTimer(),this.rendered&&(this.textEl.isComposite&&this.textEl.clear(),Ext.destroyMembers(this,"textEl","progressBar","textTopEl")),Ext.ProgressBar.superclass.onDestroy.call(this)}}),Ext.reg("progress",Ext.ProgressBar),function(){var s=Ext.EventManager,o=Ext.lib.Dom;Ext.dd.DragDrop=function(t,e,i){t&&this.init(t,e,i)},Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:!1,lock:function(){this.locked=!0},moveOnly:!1,unlock:function(){this.locked=!1},isTarget:!0,padding:null,_domRef:null,__ygDragDrop:!0,constrainX:!1,constrainY:!1,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:!1,xTicks:null,yTicks:null,primaryButtonOnly:!0,available:!1,hasOuterHandles:!1,b4StartDrag:function(t,e){},startDrag:function(t,e){},b4Drag:function(t){},onDrag:function(t){},onDragEnter:function(t,e){},b4DragOver:function(t){},onDragOver:function(t,e){},b4DragOut:function(t){},onDragOut:function(t,e){},b4DragDrop:function(t){},onDragDrop:function(t,e){},onInvalidDrop:function(t){},b4EndDrag:function(t){},endDrag:function(t){},b4MouseDown:function(t){},onMouseDown:function(t){},onMouseUp:function(t){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(t,e,i){Ext.isNumber(e)&&(e={left:e,right:e,top:e,bottom:e}),e=e||this.defaultPadding;var s,n,r=Ext.get(this.getEl()).getBox(),o=Ext.get(t),a=o.getScroll(),l=o.dom;n=l==document.body?{x:a.left,y:a.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()}:{x:(s=o.getXY())[0],y:s[1],width:l.clientWidth,height:l.clientHeight};var h=r.y-n.y,d=r.x-n.x;this.resetConstraints(),this.setXConstraint(d-(e.left||0),n.width-d-r.width-(e.right||0),this.xTickSize),this.setYConstraint(h-(e.top||0),n.height-h-r.height-(e.bottom||0),this.yTickSize)},getEl:function(){return this._domRef||(this._domRef=Ext.getDom(this.id)),this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(t,e,i){this.initTarget(t,e,i),s.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(t,e,i){this.config=i||{},this.DDM=Ext.dd.DDM,this.groups={},"string"!=typeof t&&(t=Ext.id(t)),this.id=t,this.addToGroup(e||"default"),this.handleElId=t,this.setDragElId(t),this.invalidHandleTypes={A:"A"},this.invalidHandleIds={},this.invalidHandleClasses=[],this.applyConfig(),this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0],this.isTarget=!1!==this.config.isTarget,this.maintainOffset=this.config.maintainOffset,this.primaryButtonOnly=!1!==this.config.primaryButtonOnly},handleOnAvailable:function(){this.available=!0,this.resetConstraints(),this.onAvailable()},setPadding:function(t,e,i,s){this.padding=e||0===e?i||0===i?[t,e,i,s]:[t,e,t,e]:[t,t,t,t]},setInitPosition:function(t,e){var i,s,n,r=this.getEl();this.DDM.verifyEl(r)&&(i=t||0,s=e||0,n=o.getXY(r),this.initPageX=n[0]-i,this.initPageY=n[1]-s,this.lastPageX=n[0],this.lastPageY=n[1],this.setStartPosition(n))},setStartPosition:function(t){var e=t||o.getXY(this.getEl());this.deltaSetXY=null,this.startPageX=e[0],this.startPageY=e[1]},addToGroup:function(t){this.groups[t]=!0,this.DDM.regDragDrop(this,t)},removeFromGroup:function(t){this.groups[t]&&delete this.groups[t],this.DDM.removeDDFromGroup(this,t)},setDragElId:function(t){this.dragElId=t},setHandleElId:function(t){"string"!=typeof t&&(t=Ext.id(t)),this.handleElId=t,this.DDM.regHandle(this.id,t)},setOuterHandleElId:function(t){"string"!=typeof t&&(t=Ext.id(t)),s.on(t,"mousedown",this.handleMouseDown,this),this.setHandleElId(t),this.hasOuterHandles=!0},unreg:function(){s.un(this.id,"mousedown",this.handleMouseDown),this._domRef=null,this.DDM._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(t,e){var i;this.primaryButtonOnly&&0!=t.button||this.isLocked()||(this.DDM.refreshCache(this.groups),i=new Ext.lib.Point(Ext.lib.Event.getPageX(t),Ext.lib.Event.getPageY(t)),(this.hasOuterHandles||this.DDM.isOverTarget(i,this))&&this.clickValidator(t)&&(this.setStartPosition(),this.b4MouseDown(t),this.onMouseDown(t),this.DDM.handleMouseDown(t,this),this.preventDefault||this.stopPropagation?(this.preventDefault&&t.preventDefault(),this.stopPropagation&&t.stopPropagation()):this.DDM.stopEvent(t)))},clickValidator:function(t){var e=t.getTarget();return this.isValidHandleChild(e)&&(this.id==this.handleElId||this.DDM.handleWasClicked(e,this.id))},addInvalidHandleType:function(t){var e=t.toUpperCase();this.invalidHandleTypes[e]=e},addInvalidHandleId:function(t){"string"!=typeof t&&(t=Ext.id(t)),this.invalidHandleIds[t]=t},addInvalidHandleClass:function(t){this.invalidHandleClasses.push(t)},removeInvalidHandleType:function(t){var e=t.toUpperCase();delete this.invalidHandleTypes[e]},removeInvalidHandleId:function(t){"string"!=typeof t&&(t=Ext.id(t)),delete this.invalidHandleIds[t]},removeInvalidHandleClass:function(t){for(var e=0,i=this.invalidHandleClasses.length;e=this.minX;s-=e)i[s]||(i[this.xTicks[this.xTicks.length]=s]=!0);for(s=this.initPageX;s<=this.maxX;s+=e)i[s]||(i[this.xTicks[this.xTicks.length]=s]=!0);this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(t,e){this.yTicks=[],this.yTickSize=e;for(var i={},s=this.initPageY;s>=this.minY;s-=e)i[s]||(i[this.yTicks[this.yTicks.length]=s]=!0);for(s=this.initPageY;s<=this.maxY;s+=e)i[s]||(i[this.yTicks[this.yTicks.length]=s]=!0);this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(t,e,i){this.leftConstraint=t,this.rightConstraint=e,this.minX=this.initPageX-t,this.maxX=this.initPageX+e,i&&this.setXTicks(this.initPageX,i),this.constrainX=!0},clearConstraints:function(){this.constrainX=!1,this.constrainY=!1,this.clearTicks()},clearTicks:function(){this.xTicks=null,this.yTicks=null,this.xTickSize=0,this.yTickSize=0},setYConstraint:function(t,e,i){this.topConstraint=t,this.bottomConstraint=e,this.minY=this.initPageY-t,this.maxY=this.initPageY+e,i&&this.setYTicks(this.initPageY,i),this.constrainY=!0},resetConstraints:function(){var t,e;this.initPageX||0===this.initPageX?(t=this.maintainOffset?this.lastPageX-this.initPageX:0,e=this.maintainOffset?this.lastPageY-this.initPageY:0,this.setInitPosition(t,e)):this.setInitPosition(),this.constrainX&&this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize),this.constrainY&&this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(t,e){if(e){if(e[0]>=t)return e[0];for(var i=0,s=e.length;i=t)return t-e[i]this.clickPixelThresh||i>this.clickPixelThresh)&&this.startDrag(this.startX,this.startY)),this.dragThreshMet&&(this.dragCurrent.b4Drag(t),this.dragCurrent.onDrag(t),this.dragCurrent.moveOnly||this.fireEvents(t,!1)),this.stopEvent(t),!0));var e,i},fireEvents:function(t,e){var i,s,n,r,o,a,l=this,h=l.dragCurrent,d=t.getPoint(),c=[],u=[],f=[],p=[],g=[],m=[];if(h&&!h.isLocked()){for(r in l.dragOvers)i=l.dragOvers[r],l.isTypeOfDD(i)&&(this.isOverTarget(d,i,l.mode)||f.push(i),u[r]=!0,delete l.dragOvers[r]);for(a in h.groups)if("string"==typeof a)for(r in l.ids[a])i=l.ids[a][r],l.isTypeOfDD(i)&&(s=i.getEl())&&i.isTarget&&!i.isLocked()&&(i!=h||!1===h.ignoreSelf)&&(-1!==(i.zIndex=l.getZIndex(s))&&(n=!0),c.push(i));for(n&&c.sort(l.byZIndex),r=0,o=c.length;rthis.maxX&&(i=this.maxX)),this.constrainY&&(sthis.maxY&&(s=this.maxY)),{x:i=this.getTick(i,this.xTicks),y:s=this.getTick(s,this.yTicks)}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this),this.scroll=!1!==this.config.scroll},b4MouseDown:function(t){this.autoOffset(t.getPageX(),t.getPageY())},b4Drag:function(t){this.setDragElPos(t.getPageX(),t.getPageY())},toString:function(){return"DD "+this.id}}),Ext.dd.DDProxy=function(t,e,i){t&&(this.init(t,e,i),this.initFrame())},Ext.dd.DDProxy.dragElId="ygddfdiv",Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:!0,centerFrame:!1,createFrame:function(){var t,e,i=this,s=document.body;s&&s.firstChild?(t=this.getDragEl())||((t=document.createElement("div")).id=this.dragElId,(e=t.style).position="absolute",e.visibility="hidden",e.cursor="move",e.border="2px solid #aaa",e.zIndex=999,s.insertBefore(t,s.firstChild)):setTimeout(function(){i.createFrame()},50)},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this),this.resizeFrame=!1!==this.config.resizeFrame,this.centerFrame=this.config.centerFrame,this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(t,e){this.getEl();var i=this.getDragEl(),s=i.style;this._resizeProxy(),this.centerFrame&&this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2)),this.setDragElPos(t,e),Ext.fly(i).show()},_resizeProxy:function(){var t;this.resizeFrame&&(t=this.getEl(),Ext.fly(this.getDragEl()).setSize(t.offsetWidth,t.offsetHeight))},b4MouseDown:function(t){var e=t.getPageX(),i=t.getPageY();this.autoOffset(e,i),this.setDragElPos(e,i)},b4StartDrag:function(t,e){this.showFrame(t,e)},b4EndDrag:function(t){Ext.fly(this.getDragEl()).hide()},endDrag:function(t){var e=this.getEl(),i=this.getDragEl();i.style.visibility="",this.beforeMove(),e.style.visibility="hidden",Ext.dd.DDM.moveToEl(e,i),i.style.visibility="hidden",e.style.visibility="",this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return"DDProxy "+this.id}}),Ext.dd.DDTarget=function(t,e,i){t&&this.initTarget(t,e,i)},Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return"DDTarget "+this.id}}),Ext.dd.DragTracker=Ext.extend(Ext.util.Observable,{active:!1,tolerance:5,autoStart:!1,constructor:function(t){Ext.apply(this,t),this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag"),this.dragRegion=new Ext.lib.Region(0,0,0,0),this.el&&this.initEl(this.el),Ext.dd.DragTracker.superclass.constructor.call(this,t)},initEl:function(t){this.el=Ext.get(t),t.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:void 0)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this),delete this.el},onMouseDown:function(t,e){!1!==this.fireEvent("mousedown",this,t)&&!1!==this.onBeforeStart(t)&&(this.startXY=this.lastXY=t.getXY(),this.dragTarget=this.delegate?e:this.el.dom,!1!==this.preventDefault&&t.preventDefault(),Ext.getDoc().on({scope:this,mouseup:this.onMouseUp,mousemove:this.onMouseMove,selectstart:this.stopSelect}),this.autoStart&&(this.timer=this.triggerStart.defer(!0===this.autoStart?1e3:this.autoStart,this,[t])))},onMouseMove:function(t,e){var i=Ext.isIE6||Ext.isIE7||Ext.isIE8;if(this.active&&i&&!t.browserEvent.button)return t.preventDefault(),void this.onMouseUp(t);t.preventDefault();var s=t.getXY(),n=this.startXY;if(this.lastXY=s,!this.active){if(!(Math.abs(n[0]-s[0])>this.tolerance||Math.abs(n[1]-s[1])>this.tolerance))return;this.triggerStart(t)}this.fireEvent("mousemove",this,t),this.onDrag(t),this.fireEvent("drag",this,t)},onMouseUp:function(t){var e=Ext.getDoc(),i=this.active;e.un("mousemove",this.onMouseMove,this),e.un("mouseup",this.onMouseUp,this),e.un("selectstart",this.stopSelect,this),t.preventDefault(),this.clearStart(),this.active=!1,delete this.elRegion,this.fireEvent("mouseup",this,t),i&&(this.onEnd(t),this.fireEvent("dragend",this,t))},triggerStart:function(t){this.clearStart(),this.active=!0,this.onStart(t),this.fireEvent("dragstart",this,t)},clearStart:function(){this.timer&&(clearTimeout(this.timer),delete this.timer)},stopSelect:function(t){return t.stopEvent(),!1},onBeforeStart:function(t){},onStart:function(t){},onDrag:function(t){},onEnd:function(t){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(t){return t?this.constrainModes[t].call(this,this.lastXY):this.lastXY},getOffset:function(t){var e=this.getXY(t),i=this.startXY;return[i[0]-e[0],i[1]-e[1]]},constrainModes:{point:function(t){this.elRegion||(this.elRegion=this.getDragCt().getRegion());var e=this.dragRegion;return e.left=t[0],e.top=t[1],e.right=t[0],e.bottom=t[1],e.constrainTo(this.elRegion),[e.left,e.top]}}}),Ext.dd.ScrollManager=function(){function i(){d.dragCurrent&&d.refreshCache(d.dragCurrent.groups)}function n(){var t,e;d.dragCurrent&&(t=Ext.dd.ScrollManager,e=f.el.ddScrollConfig?f.el.ddScrollConfig.increment:t.increment,t.animate?f.el.scroll(f.dir,e,!0,t.animDuration,i):f.el.scroll(f.dir,e)&&i())}function h(t,e){p(),f.el=t,f.dir=e;var i=t.ddScrollConfig?t.ddScrollConfig.ddGroup:void 0,s=t.ddScrollConfig&&t.ddScrollConfig.frequency?t.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;void 0!==i&&d.dragCurrent.ddGroup!=i||(f.id=setInterval(n,s))}var d=Ext.dd.DragDropMgr,c={},u=null,f={},p=function(){f.id&&clearInterval(f.id),f.id=0,f.el=null,f.dir=""};return d.fireEvents=d.fireEvents.createSequence(function(t,e){if(!e&&d.dragCurrent){var i=Ext.dd.ScrollManager;u&&u==d.dragCurrent||(u=d.dragCurrent,i.refreshCache());var s=Ext.lib.Event.getXY(t),n=new Ext.lib.Point(s[0],s[1]);for(var r in c){var o=c[r],a=o._region,l=o.ddScrollConfig?o.ddScrollConfig:i;if(a&&a.contains(n)&&o.isScrollable()){if(a.bottom-n.y<=l.vthresh)return void(f.el!=o&&h(o,"down"));if(a.right-n.x<=l.hthresh)return void(f.el!=o&&h(o,"left"));if(n.y-a.top<=l.vthresh)return void(f.el!=o&&h(o,"up"));if(n.x-a.left<=l.hthresh)return void(f.el!=o&&h(o,"right"))}}p()}},d),d.stopDrag=d.stopDrag.createSequence(function(t){u=null,p()},d),{register:function(t){if(Ext.isArray(t))for(var e=0,i=t.length;e]+>/gi,asText:function(t){return String(t).replace(this.stripTagsRE,"")},asUCText:function(t){return String(t).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(t){return String(t).toUpperCase()},asDate:function(t){return t?Ext.isDate(t)?t.getTime():Date.parse(String(t)):0},asFloat:function(t){var e=parseFloat(String(t).replace(/,/g,""));return isNaN(e)?0:e},asInt:function(t){var e=parseInt(String(t).replace(/,/g,""),10);return isNaN(e)?0:e}},Ext.data.Record=function(t,e){this.id=e||0===e?e:Ext.data.Record.id(this),this.data=t||{}},Ext.data.Record.create=function(t){var e=Ext.extend(Ext.data.Record,{}),i=e.prototype;i.fields=new Ext.util.MixedCollection(!1,function(t){return t.name});for(var s=0,n=t.length;s<{documentRoot}><{name}>{value}<{root}><{parent.record}><{name}>{value}',render:function(t,e,i){e=this.toArray(e),t.xmlData=this.tpl.applyTemplate({version:this.xmlVersion,encoding:this.xmlEncoding,documentRoot:(0

    '}),a=Ext.get(n.dom.firstChild),i=n.dom.childNodes[1],o=Ext.get(i.firstChild),(c=Ext.get(i.childNodes[2].firstChild)).enableDisplayMode(),c.addKeyListener([10,13],function(){l.isVisible()&&h&&h.buttons&&(h.buttons.ok?s("ok"):h.buttons.yes&&s("yes"))}),(u=Ext.get(i.childNodes[2].childNodes[1])).enableDisplayMode(),f=new Ext.ProgressBar({renderTo:n}),n.createChild({cls:"x-clear"})),l},updateText:function(t){l.isVisible()||h.width||l.setSize(this.maxWidth,100),o.update(t?t+" ":" ");var e=""!=E?a.getWidth()+a.getMargins("lr"):0,i=o.getWidth()+o.getMargins("lr"),s=l.getFrameWidth("lr"),n=l.body.getFrameWidth("lr"),r=Math.max(Math.min(h.width||e+i+s+n,h.maxWidth||this.maxWidth),Math.max(h.minWidth||this.minWidth,m||0));return!0===h.prompt&&g.setWidth(r-e-s-n),!0!==h.progress&&!0!==h.wait||f.setSize(r-e-s-n),Ext.isIE9m&&r==m&&(r+=4),o.update(t||" "),l.setSize(r,"auto").center(),this},updateProgress:function(t,e,i){return f.updateProgress(t,e),i&&this.updateText(i),this},isVisible:function(){return l&&l.isVisible()},hide:function(){var t=l?l.activeGhost:null;return(this.isVisible()||t)&&(l.hide(),e(),t&&l.unghost(!1,!1)),this},show:function(t){this.isVisible()&&this.hide(),h=t;var e=this.getDialog(h.title||" ");e.setTitle(h.title||" ");var i,s,n,r,o,a=!1!==h.closable&&!0!==h.progress&&!0!==h.wait;return e.tools.close.setDisplayed(a),g=c,h.prompt=h.prompt||!!h.multiline,h.prompt?h.multiline?(c.hide(),u.show(),u.setHeight(Ext.isNumber(h.multiline)?h.multiline:this.defaultTextHeight),g=u):(c.show(),u.hide()):(c.hide(),u.hide()),g.dom.value=h.value||"",h.prompt?e.focusEl=g:(s=null,(i=h.buttons)&&i.ok?s=p.ok:i&&i.yes&&(s=p.yes),s&&(e.focusEl=s)),Ext.isDefined(h.iconCls)&&e.setIconClass(h.iconCls),this.setIcon(Ext.isDefined(h.icon)?h.icon:x),n=h.buttons,o=0,n?(l.footer.dom.style.display="",Ext.iterate(p,function(t,e){(r=n[t])?(e.show(),e.setText(Ext.isString(r)?r:Ext.MessageBox.buttonText[t]),o+=e.getEl().getWidth()+15):e.hide()})):Ext.each(v,function(t){p[t].hide()}),m=o,f.setVisible(!0===h.progress||!0===h.wait),this.updateProgress(0,h.progressText),this.updateText(h.msg),h.cls&&e.el.addClass(h.cls),e.proxyDrag=!0===h.proxyDrag,e.modal=!1!==h.modal,e.mask=!1!==h.modal&&d,e.isVisible()||(document.body.appendChild(l.el.dom),e.setAnimateTarget(h.animEl),e.on("show",function(){!0==a?e.keyMap.enable():e.keyMap.disable()},this,{single:!0}),e.show(h.animEl)),!0===h.wait&&f.wait(h.waitConfig),this},setIcon:function(t){if(l)return x=void 0,E=t&&""!=t?(a.removeClass("x-hidden"),a.replaceClass(E,t),n.addClass("x-dlg-icon"),t):(a.replaceClass(E,"x-hidden"),n.removeClass("x-dlg-icon"),""),this;x=t},progress:function(t,e,i){return this.show({title:t,msg:e,buttons:!1,progress:!0,closable:!1,minWidth:this.minProgressWidth,progressText:i}),this},wait:function(t,e,i){return this.show({title:e,msg:t,buttons:!1,closable:!1,wait:!0,modal:!0,minWidth:this.minProgressWidth,waitConfig:i}),this},alert:function(t,e,i,s){return this.show({title:t,msg:e,buttons:this.OK,fn:i,scope:s,minWidth:this.minWidth}),this},confirm:function(t,e,i,s){return this.show({title:t,msg:e,buttons:this.YESNO,fn:i,scope:s,icon:this.QUESTION,minWidth:this.minWidth}),this},prompt:function(t,e,i,s,n,r){return this.show({title:t,msg:e,buttons:this.OKCANCEL,fn:i,minWidth:this.minPromptWidth,scope:s,prompt:!0,multiline:n,value:r}),this},OK:{ok:!0},CANCEL:{cancel:!0},OKCANCEL:{ok:!0,cancel:!0},YESNO:{yes:!0,no:!0},YESNOCANCEL:{yes:!0,no:!0,cancel:!0},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}(),Ext.Msg=Ext.MessageBox,Ext.dd.PanelProxy=Ext.extend(Object,{constructor:function(t,e){this.panel=t,this.id=this.panel.id+"-ddproxy",Ext.apply(this,e)},insertProxy:!0,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){this.ghost&&(this.proxy&&(this.proxy.remove(),delete this.proxy),this.panel.el.dom.style.display="",this.ghost.remove(),delete this.ghost)},show:function(){this.ghost||(this.ghost=this.panel.createGhost(this.panel.initialConfig.cls,void 0,Ext.getBody()),this.ghost.setXY(this.panel.el.getXY()),this.insertProxy&&(this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"}),this.proxy.setSize(this.panel.getSize())),this.panel.el.dom.style.display="none")},repair:function(t,e,i){this.hide(),"function"==typeof e&&e.call(i||this)},moveProxy:function(t,e){this.proxy&&t.insertBefore(this.proxy.dom,e)}}),Ext.Panel.DD=Ext.extend(Ext.dd.DragSource,{constructor:function(t,e){this.panel=t,this.dragData={panel:t},this.proxy=new Ext.dd.PanelProxy(t,e),Ext.Panel.DD.superclass.constructor.call(this,t.el,e);var i=t.header,s=t.body;i&&(this.setHandleElId(i.id),s=t.header),s.setStyle("cursor","move"),this.scroll=!1},showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(t,e){this.proxy.show()},b4MouseDown:function(t){var e=t.getPageX(),i=t.getPageY();this.autoOffset(e,i)},onInitDrag:function(t,e){return this.onStartDrag(t,e),!0},createFrame:Ext.emptyFn,getDragEl:function(t){return this.proxy.ghost.dom},endDrag:function(t){this.proxy.hide(),this.panel.saveState()},autoOffset:function(t,e){t-=this.startPageX,e-=this.startPageY,this.setDelta(t,e)}}),Ext.state.Provider=Ext.extend(Ext.util.Observable,{constructor:function(){this.addEvents("statechange"),this.state={},Ext.state.Provider.superclass.constructor.call(this)},get:function(t,e){return void 0===this.state[t]?e:this.state[t]},clear:function(t){delete this.state[t],this.fireEvent("statechange",this,t,null)},set:function(t,e){this.state[t]=e,this.fireEvent("statechange",this,t,e)},decodeValue:function(t){var e,i,s,n,r=/^(a|n|d|b|s|o|e)\:(.*)$/.exec(unescape(t));if(r&&r[1])switch(i=r[1],s=r[2],i){case"e":return null;case"n":return parseFloat(s);case"d":return new Date(Date.parse(s));case"b":return"1"==s;case"a":return e=[],""!=s&&Ext.each(s.split("^"),function(t){e.push(this.decodeValue(t))},this),e;case"o":return e={},""!=s&&Ext.each(s.split("^"),function(t){n=t.split("="),e[n[0]]=this.decodeValue(n[1])},this),e;default:return s}},encodeValue:function(t){var e,i,s,n="",r=0;if(null==t)return"e:1";if("number"==typeof t)e="n:"+t;else if("boolean"==typeof t)e="b:"+(t?"1":"0");else if(Ext.isDate(t))e="d:"+t.toGMTString();else if(Ext.isArray(t)){for(i=t.length;r'+this.loadingText+""),this.all.clear())},onDestroy:function(){this.all.clear(),this.selected.clear(),Ext.DataView.superclass.onDestroy.call(this),this.bindStore(null)}}),Ext.DataView.prototype.setStore=Ext.DataView.prototype.bindStore,Ext.reg("dataview",Ext.DataView),Ext.list.ListView=Ext.extend(Ext.DataView,{itemSelector:"dl",selectedClass:"x-list-selected",overClass:"x-list-over",scrollOffset:void 0,columnResize:!0,columnSort:!0,maxColumnWidth:Ext.isIE9m?99:100,initComponent:function(){this.columnResize&&(this.colResizer=new Ext.list.ColumnResizer(this.colResizer),this.colResizer.init(this)),this.columnSort&&(this.colSorter=new Ext.list.Sorter(this.columnSort),this.colSorter.init(this)),this.internalTpl||(this.internalTpl=new Ext.XTemplate('
    ','','
    ',"{header}","
    ","
    ",'
    ',"
    ",'
    ',"
    ")),this.tpl||(this.tpl=new Ext.XTemplate('',"
    ",'','
    ',' class="{cls}">',"{[values.tpl.apply(parent)]}","
    ","
    ",'
    ',"
    ","
    "));for(var t=this.columns,e=0,i=0,s=t.length,n=[],r=0;rthis.maxColumnWidth&&(a.width-=(e-this.maxColumnWidth)/100),i++),n.push(a)}if(t=this.columns=n,i','','{text}',"")).disableFormats=!0,n.compile(),Ext.TabPanel.prototype.itemTpl=n),this.items.each(this.initTab,this)},afterRender:function(){var t;Ext.TabPanel.superclass.afterRender.call(this),this.autoTabs&&this.readTabs(!1),void 0!==this.activeTab&&(t=Ext.isObject(this.activeTab)?this.activeTab:this.items.get(this.activeTab),delete this.activeTab,this.setActiveTab(t))},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this),this.mon(this.strip,{scope:this,mousedown:this.onStripMouseDown,contextmenu:this.onStripContextMenu}),this.enableTabScroll&&this.mon(this.strip,"mousewheel",this.onWheel,this)},findTargets:function(t){var e=null,i=t.getTarget("li:not(.x-tab-edge)",this.strip);return i&&(e=this.getComponent(i.id.split(this.idDelimiter)[1])).disabled?{close:null,item:null,el:null}:{close:t.getTarget(".x-tab-strip-close",this.strip),item:e,el:i}},onStripMouseDown:function(t){var e;0===t.button&&(t.preventDefault(),(e=this.findTargets(t)).close?!1!==e.item.fireEvent("beforeclose",e.item)&&(e.item.fireEvent("close",e.item),this.remove(e.item)):e.item&&e.item!=this.activeTab&&this.setActiveTab(e.item))},onStripContextMenu:function(t){t.preventDefault();var e=this.findTargets(t);e.item&&this.fireEvent("contextmenu",this,e.item,t)},readTabs:function(t){!0===t&&this.items.each(function(t){this.remove(t)},this);for(var e=this.el.query(this.autoTabSelector),i=0,s=e.length;i=this.getScrollWidth()-this.getScrollArea()?"addClass":"removeClass"]("x-tab-scroller-right-disabled")},beforeDestroy:function(){Ext.destroy(this.leftRepeater,this.rightRepeater),this.deleteMembers("strip","edge","scrollLeft","scrollRight","stripWrap"),this.activeTab=null,Ext.TabPanel.superclass.beforeDestroy.apply(this)}}),Ext.reg("tabpanel",Ext.TabPanel),Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab,Ext.TabPanel.AccessStack=function(){var n=[];return{add:function(t){n.push(t),10','  ','  ','  ',""),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var i=this.getTemplateArgs(),s=e?this.template.insertBefore(e,i,!0):this.template.append(t,i,!0);this.btnEl=s.child(this.buttonSelector),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(s,this.btnEl),Ext.ButtonToggleMgr.register(this)},initButtonEl:function(t,e){var i;this.el=t,this.setIcon(this.icon),this.setText(this.text),this.setIconClass(this.iconCls),Ext.isDefined(this.tabIndex)&&(e.dom.tabIndex=this.tabIndex),this.tooltip&&this.setTooltip(this.tooltip,!0),this.handleMouseEvents&&this.mon(t,{scope:this,mouseover:this.onMouseOver,mousedown:this.onMouseDown}),this.menu&&this.mon(this.menu,{scope:this,show:this.onMenuShow,hide:this.onMenuHide}),this.repeat?(i=new Ext.util.ClickRepeater(t,Ext.isObject(this.repeat)?this.repeat:{}),this.mon(i,"click",this.onRepeatClick,this)):this.mon(t,this.clickEvent,this.onClick,this)},afterRender:function(){Ext.Button.superclass.afterRender.call(this),this.useSetClass=!0,this.setButtonClass(),this.doc=Ext.getDoc(),this.doAutoWidth()},setIconClass:function(t){return this.iconCls=t,this.el&&(this.btnEl.dom.className="",this.btnEl.addClass(["x-btn-text",t||""]),this.setButtonClass()),this},setTooltip:function(t,e){return this.rendered?(e||this.clearTip(),Ext.isObject(t)?(Ext.QuickTips.register(Ext.apply({target:this.btnEl.id},t)),this.tooltip=t):this.btnEl.dom[this.tooltipType]=t):this.tooltip=t,this},clearTip:function(){Ext.isObject(this.tooltip)&&Ext.QuickTips.unregister(this.btnEl)},beforeDestroy:function(){this.rendered&&this.clearTip(),this.menu&&!1!==this.destroyMenu&&Ext.destroy(this.btnEl,this.menu),Ext.destroy(this.repeater)},onDestroy:function(){this.rendered&&(this.doc.un("mouseover",this.monitorMouseOver,this),this.doc.un("mouseup",this.onMouseUp,this),delete this.doc,delete this.btnEl,Ext.ButtonToggleMgr.unregister(this)),Ext.Button.superclass.onDestroy.call(this)},doAutoWidth:function(){var t;!1!==this.autoWidth&&this.el&&this.text&&void 0===this.width&&(this.el.setWidth("auto"),Ext.isIE7&&Ext.isStrict&&((t=this.btnEl)&&20this.btnEl.getRegion().bottom;var e=this.el.child("em.x-btn-split"),i=e.getRegion().right-e.getPadding("r");return t.getPageX()>i},onClick:function(t,e){t.preventDefault(),this.disabled||(this.isClickOnArrow(t)?(!this.menu||this.menu.isVisible()||this.ignoreNextClick||this.showMenu(),this.fireEvent("arrowclick",this,t),this.arrowHandler&&this.arrowHandler.call(this.scope||this,this,t)):(this.doToggle(),this.fireEvent("click",this,t),this.handler&&this.handler.call(this.scope||this,this,t)))},isMenuTriggerOver:function(t){return this.menu&&t.target.tagName==this.arrowSelector},isMenuTriggerOut:function(t,e){return this.menu&&t.target.tagName!=this.arrowSelector}}),Ext.reg("splitbutton",Ext.SplitButton),Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(t){if(t&&!0===this.showText){var e="";return this.prependText&&(e+=this.prependText),e+=t.text}},setActiveItem:function(t,e){var i;Ext.isObject(t)||(t=this.menu.getComponent(t)),t&&(this.rendered?((i=this.getItemText(t))&&this.setText(i),this.setIconClass(t.iconCls)):(this.text=this.getItemText(t),this.iconCls=t.iconCls),(this.activeItem=t).checked||t.setChecked(!0,e),this.forceIcon&&this.setIconClass(this.forceIcon),e||this.fireEvent("change",this,t))},getActiveItem:function(){return this.activeItem},initComponent:function(){this.addEvents("change"),this.changeHandler&&(this.on("change",this.changeHandler,this.scope||this),delete this.changeHandler),this.itemCount=this.items.length,this.menu={cls:"x-cycle-menu",items:[]};var i=0;Ext.each(this.items,function(t,e){Ext.apply(t,{group:t.group||this.id,itemIndex:e,checkHandler:this.checkHandler,scope:this,checked:t.checked||!1}),this.menu.items.push(t),t.checked&&(i=e)},this),Ext.CycleButton.superclass.initComponent.call(this),this.on("click",this.toggleSelected,this),this.setActiveItem(i,!0)},checkHandler:function(t,e){e&&this.setActiveItem(t)},toggleSelected:function(){var t,e,i=this.menu;i.render(),i.hasLayout||i.doLayout();for(var s=1;s"==t?new i.Fill:new i.TextItem(t),this.applyDefaults(t)):t.isFormField||t.render?t=this.createComponent(t):t.tag?t=new i.Item({autoEl:t}):t.tagName?t=new i.Item({el:t}):Ext.isObject(t)&&(t=t.xtype?this.createComponent(t):this.constructButton(t)),t},applyDefaults:function(t){var e;return Ext.isString(t)||(t=Ext.Toolbar.superclass.applyDefaults.call(this,t),e=this.internalDefaults,t.events?(Ext.applyIf(t.initialConfig,e),Ext.apply(t,e)):Ext.applyIf(t,e)),t},addSeparator:function(){return this.add(new i.Separator)},addSpacer:function(){return this.add(new i.Spacer)},addFill:function(){this.add(new i.Fill)},addElement:function(t){return this.addItem(new i.Item({el:t}))},addItem:function(t){return this.add.apply(this,arguments)},addButton:function(t){if(Ext.isArray(t)){for(var e=[],i=0,s=t.length;i"),this.items.push(this.displayItem=new i.TextItem({}))),Ext.PagingToolbar.superclass.initComponent.call(this),this.addEvents("change","beforechange"),this.on("afterlayout",this.onFirstLayout,this,{single:!0}),this.cursor=0,this.bindStore(this.store,!0)},onFirstLayout:function(){this.dsLoaded&&this.onLoad.apply(this,this.dsLoaded)},updateInfo:function(){var t,e;this.displayItem&&(e=0==(t=this.store.getCount())?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+t,this.store.getTotalCount()),this.displayItem.setText(e))},onLoad:function(t,e,i){var s,n,r,o;this.rendered?(s=this.getParams(),this.cursor=i.params&&i.params[s.start]?i.params[s.start]:0,r=(n=this.getPageData()).activePage,o=n.pages,this.afterTextItem.setText(String.format(this.afterPageText,n.pages)),this.inputItem.setValue(r),this.first.setDisabled(1==r),this.prev.setDisabled(1==r),this.next.setDisabled(r==o),this.last.setDisabled(r==o),this.refresh.enable(),this.updateInfo(),this.fireEvent("change",this,n)):this.dsLoaded=[t,e,i]},getPageData:function(){var t=this.store.getTotalCount();return{total:t,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:t
    ',Ext.util.Format.htmlEncode(t),"
    "].join("");try{var i=o.contentWindow.document;return i.open(),i.write(e),i.close(),!0}catch(t){return!1}}function u(){var i,s,n,r;o.contentWindow&&o.contentWindow.document?(i=o.contentWindow.document,s=i.getElementById("state"),n=s?s.innerText:null,r=l(),setInterval(function(){i=o.contentWindow.document;var t=(s=i.getElementById("state"))?s.innerText:null,e=l();t!==n?(d(n=t),location.hash=n,r=n,h()):e!==r&&c(r=e)},50),a=!0,Ext.History.fireEvent("ready",Ext.History)):setTimeout(u,10)}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(t,e){var i;a?Ext.callback(t,e,[this]):Ext.isReady?(s=Ext.getDom(Ext.History.fieldId),Ext.isIE&&(o=Ext.getDom(Ext.History.iframeId)),this.addEvents("ready","change"),t&&this.on("ready",t,e,{single:!0}),n=s.value?s.value:l(),Ext.isIE?u():(i=l(),setInterval(function(){var t=l();t!==i&&(d(i=t),h())},50),a=!0,Ext.History.fireEvent("ready",Ext.History))):Ext.onReady(function(){Ext.History.init(t,e)})},add:function(t,e){return!1!==e&&this.getToken()==t||(Ext.isIE?c(t):(location.hash=t,!0))},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return a?n:l()}}}(),Ext.apply(Ext.History,new Ext.util.Observable),Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:!0,quickShowInterval:250,frame:!0,hidden:!0,baseCls:"x-tip",floating:{shadow:!0,shim:!0,useDisplay:!0,constrain:!1},autoHeight:!0,closeAction:"hide",initComponent:function(){Ext.Tip.superclass.initComponent.call(this),this.closable&&!this.title&&(this.elements+=",header")},afterRender:function(){Ext.Tip.superclass.afterRender.call(this),this.closable&&this.addTool({id:"close",handler:this[this.closeAction],scope:this})},showAt:function(t){Ext.Tip.superclass.show.call(this),!1===this.measureWidth||this.initialConfig&&"number"==typeof this.initialConfig.width||this.doAutoWidth(),this.constrainPosition&&(t=this.el.adjustForConstraints(t)),this.setPagePosition(t[0],t[1])},doAutoWidth:function(t){t=t||0;var e=this.body.getTextWidth();this.title&&(e=Math.max(e,this.header.child("span").getTextWidth(this.title))),e+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr")+t,this.setWidth(e.constrain(this.minWidth,this.maxWidth)),Ext.isIE7&&!this.repainted&&(this.el.repaint(),this.repainted=!0)},showBy:function(t,e){this.rendered||this.render(Ext.getBody()),this.showAt(this.el.getAlignToXY(t,e||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,"boolean"==typeof this.draggable?null:this.draggable),this.header.addClass("x-tip-draggable")}}),Ext.reg("tip",Ext.Tip),Ext.Tip.DD=function(t,e){Ext.apply(this,e),this.tip=t,Ext.Tip.DD.superclass.constructor.call(this,t.el.id,"WindowDD-"+t.id),this.setHandleElId(t.header.id),this.scroll=!1},Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:!0,scroll:!1,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(t){this.tip.el.enableShadow(!0)}}),Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5e3,trackMouse:!1,anchorToTarget:!0,anchorOffset:0,targetCounter:0,constrainPosition:!1,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this),this.lastActive=new Date,this.initTarget(this.target),this.origAnchor=this.anchor},onRender:function(t,e){Ext.ToolTip.superclass.onRender.call(this,t,e),this.anchorCls="x-tip-anchor-"+this.getAnchorPosition(),this.anchorEl=this.el.createChild({cls:"x-tip-anchor "+this.anchorCls})},afterRender:function(){Ext.ToolTip.superclass.afterRender.call(this),this.anchorEl.setStyle("z-index",this.el.getZIndex()+1).setVisibilityMode(Ext.Element.DISPLAY)},initTarget:function(t){var e,i;(e=Ext.get(t))&&(this.target&&(i=Ext.get(this.target),this.mun(i,"mouseover",this.onTargetOver,this),this.mun(i,"mouseout",this.onTargetOut,this),this.mun(i,"mousemove",this.onMouseMove,this)),this.mon(e,{mouseover:this.onTargetOver,mouseout:this.onTargetOut,mousemove:this.onMouseMove,scope:this}),this.target=e),this.anchor&&(this.anchorTarget=this.target)},onMouseMove:function(t){var e=this.delegate?t.getTarget(this.delegate):this.triggerElement=!0;e?(this.targetXY=t.getXY(),e===this.triggerElement?!this.hidden&&this.trackMouse&&this.setPagePosition(this.getTargetXY()):(this.hide(),this.lastActive=new Date(0),this.onTargetOver(t))):!this.closable&&this.isVisible()&&this.hide()},getTargetXY:function(){if(this.delegate&&(this.anchorTarget=this.triggerElement),this.anchor){this.targetCounter++;var t=this.getOffsets(),e=this.anchorToTarget&&!this.trackMouse?this.el.getAlignToXY(this.anchorTarget,this.getAnchorAlign()):this.targetXY,i=Ext.lib.Dom.getViewWidth()-5,s=Ext.lib.Dom.getViewHeight()-5,n=document.documentElement,r=document.body,o=(n.scrollLeft||r.scrollLeft||0)+5,a=(n.scrollTop||r.scrollTop||0)+5,l=[e[0]+t[0],e[1]+t[1]],h=this.getSize();if(this.anchorEl.removeClass(this.anchorCls),this.targetCounter<2){if(l[0]i)return this.anchorToTarget&&(this.defaultAlign="r-l",this.mouseOffset&&(this.mouseOffset[0]*=-1)),this.anchor="right",this.getTargetXY();if(l[1]s)return this.anchorToTarget&&(this.defaultAlign="b-t",this.mouseOffset&&(this.mouseOffset[1]*=-1)),this.anchor="bottom",this.getTargetXY()}return this.anchorCls="x-tip-anchor-"+this.getAnchorPosition(),this.anchorEl.addClass(this.anchorCls),this.targetCounter=0,l}var d=this.getMouseOffset();return[this.targetXY[0]+d[0],this.targetXY[1]+d[1]]},getMouseOffset:function(){var t=this.anchor?[0,0]:[15,18];return this.mouseOffset&&(t[0]+=this.mouseOffset[0],t[1]+=this.mouseOffset[1]),t},getAnchorPosition:function(){if(this.anchor)this.tipAnchor=this.anchor.charAt(0);else{var t=this.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!t)throw"AnchorTip.defaultAlign is invalid";this.tipAnchor=t[1].charAt(0)}switch(this.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var t,e=this.getAnchorPosition().charAt(0);if(this.anchorToTarget&&!this.trackMouse)switch(e){case"t":t=[0,9];break;case"b":t=[0,-13];break;case"r":t=[-13,0];break;default:t=[9,0]}else switch(e){case"t":t=[-15-this.anchorOffset,30];break;case"b":t=[-19-this.anchorOffset,-13-this.el.dom.offsetHeight];break;case"r":t=[-15-this.el.dom.offsetWidth,-13-this.anchorOffset];break;default:t=[25,-13-this.anchorOffset]}var i=this.getMouseOffset();return t[0]+=i[0],t[1]+=i[1],t},onTargetOver:function(t){var e;this.disabled||t.within(this.target.dom,!0)||(e=t.getTarget(this.delegate))&&(this.triggerElement=e,this.clearTimer("hide"),this.targetXY=t.getXY(),this.delayShow())},delayShow:function(){this.hidden&&!this.showTimer?this.lastActive.getElapsed()
    ','',this.indentMarkup,"",'','',r?'':"/>"):"",'',t.text,"
    ",'',""].join("");!0!==s&&t.nextSibling&&(n=t.nextSibling.ui.getEl())?this.wrap=Ext.DomHelper.insertHtml("beforeBegin",n,a):this.wrap=Ext.DomHelper.insertHtml("beforeEnd",i,a),this.elNode=this.wrap.childNodes[0],this.ctNode=this.wrap.childNodes[1];var l=this.elNode.childNodes;this.indentNode=l[0],this.ecNode=l[1],this.iconNode=l[2];var h=3;r&&(this.checkbox=l[3],this.checkbox.defaultChecked=this.checkbox.checked,h++),this.anchor=l[h],this.textNode=l[h].firstChild},getHref:function(t){return Ext.isEmpty(t)?Ext.isGecko?"":"#":t},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return!!this.checkbox&&this.checkbox.checked},updateExpandIcon:function(){var t,e,i,s,n;this.rendered&&(s=(t=this.node).isLast()?"x-tree-elbow-end":"x-tree-elbow",t.hasChildNodes()||t.attributes.expandable?(i=t.expanded?(s+="-minus",e="x-tree-node-collapsed","x-tree-node-expanded"):(s+="-plus",e="x-tree-node-expanded","x-tree-node-collapsed"),this.wasLeaf&&(this.removeClass("x-tree-node-leaf"),this.wasLeaf=!1),this.c1==e&&this.c2==i||(Ext.fly(this.elNode).replaceClass(e,i),this.c1=e,this.c2=i)):this.wasLeaf||(Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-collapsed"),delete this.c1,delete this.c2,this.wasLeaf=!0),n="x-tree-ec-icon "+s,this.ecc!=n&&(this.ecNode.className=n,this.ecc=n))},onIdChange:function(t){this.rendered&&this.elNode.setAttribute("ext:tree-node-id",t)},getChildIndent:function(){if(!this.childIndent){for(var t=[],e=this.node;e;)(!e.isRoot||e.isRoot&&e.ownerTree.rootVisible)&&(e.isLast()?t.unshift(''):t.unshift('')),e=e.parentNode;this.childIndent=t.join("")}return this.childIndent},renderIndent:function(){var t,e;this.rendered&&(t="",(e=this.node.parentNode)&&(t=e.ui.getChildIndent()),this.indentMarkup!=t&&(this.indentNode.innerHTML=t,this.indentMarkup=t),this.updateExpandIcon())},destroy:function(){this.elNode&&Ext.dd.Registry.unregister(this.elNode.id),Ext.each(["textnode","anchor","checkbox","indentNode","ecNode","iconNode","elNode","ctNode","wrap","holder"],function(t){this[t]&&(Ext.fly(this[t]).remove(),delete this[t])},this),delete this.node}}),Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){var t;this.rendered||(t=this.node.ownerTree.innerCt.dom,this.node.expanded=!0,t.innerHTML='
    ',this.wrap=this.ctNode=t.firstChild)},collapse:Ext.emptyFn,expand:Ext.emptyFn}),Ext.tree.TreeLoader=function(t){this.baseParams={},Ext.apply(this,t),this.addEvents("beforeload","load","loadexception"),Ext.tree.TreeLoader.superclass.constructor.call(this),Ext.isString(this.paramOrder)&&(this.paramOrder=this.paramOrder.split(/[\s,|]/))},Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:!0,paramOrder:void 0,paramsAsHash:!1,nodeParameter:"node",directFn:void 0,load:function(t,e,i){if(this.clearOnLoad)for(;t.firstChild;)t.removeChild(t.firstChild);this.doPreload(t)?this.runCallback(e,i||t,[t]):(this.directFn||this.dataUrl||this.url)&&this.requestData(t,e,i||t)},doPreload:function(t){if(t.attributes.children){if(t.childNodes.length<1){var e=t.attributes.children;t.beginUpdate();for(var i=0,s=e.length;is.offsetLeft&&(i.scrollLeft=s.offsetLeft);var n=Math.min(this.maxWidth,(20=i.scrollHeight)&&this.onScrollerOut(null,e)},onScrollerIn:function(t,e){var i=this.ul.dom;(Ext.fly(e).is(".x-menu-scroller-top")?0',' target="{hrefTarget}"',"",">",'{altText}','{text}',""));var i=this.getTemplateArgs();this.el=e?this.itemTpl.insertBefore(e,i,!0):this.itemTpl.append(t,i,!0),this.iconEl=this.el.child("img.x-menu-item-icon"),this.textEl=this.el.child(".x-menu-item-text"),this.href||this.mon(this.el,"click",Ext.emptyFn,null,{preventDefault:!0}),Ext.menu.Item.superclass.onRender.call(this,t,e)},getTemplateArgs:function(){return{id:this.id,cls:this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:""),href:this.href||"#",hrefTarget:this.hrefTarget,icon:this.icon||Ext.BLANK_IMAGE_URL,iconCls:this.iconCls||"",text:this.itemText||this.text||" ",altText:this.altText||""}},setText:function(t){this.text=t||" ",this.rendered&&(this.textEl.update(this.text),this.parentMenu.layout.doAutoSize())},setIconClass:function(t){var e=this.iconCls;this.iconCls=t,this.rendered&&this.iconEl.replaceClass(e,this.iconCls)},beforeDestroy:function(){clearTimeout(this.showTimer),clearTimeout(this.hideTimer),this.menu&&(delete this.menu.ownerCt,this.menu.destroy()),Ext.menu.Item.superclass.beforeDestroy.call(this)},handleClick:function(t){this.href||t.stopEvent(),Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(t){return Ext.menu.Item.superclass.activate.apply(this,arguments)&&(this.focus(),t&&this.expandMenu()),!0},shouldDeactivate:function(t){return!!Ext.menu.Item.superclass.shouldDeactivate.call(this,t)&&(!this.menu||!this.menu.isVisible()||!this.menu.getEl().getRegion().contains(t.getPoint()))},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments),this.hideMenu()},expandMenu:function(t){!this.disabled&&this.menu&&(clearTimeout(this.hideTimer),delete this.hideTimer,this.menu.isVisible()||this.showTimer?this.menu.isVisible()&&t&&this.menu.tryActivate(0,1):this.showTimer=this.deferExpand.defer(this.showDelay,this,[t]))},deferExpand:function(t){delete this.showTimer,this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu),t&&this.menu.tryActivate(0,1)},hideMenu:function(){clearTimeout(this.showTimer),delete this.showTimer,!this.hideTimer&&this.menu&&this.menu.isVisible()&&(this.hideTimer=this.deferHide.defer(this.hideDelay,this))},deferHide:function(){delete this.hideTimer,this.menu.over?this.parentMenu.setActiveItem(this,!1):this.menu.hide()}}),Ext.reg("menuitem",Ext.menu.Item),Ext.menu.CheckItem=Ext.extend(Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:!1,ctype:"Ext.menu.CheckItem",initComponent:function(){Ext.menu.CheckItem.superclass.initComponent.call(this),this.addEvents("beforecheckchange","checkchange"),this.checkHandler&&this.on("checkchange",this.checkHandler,this.scope),Ext.menu.MenuMgr.registerCheckable(this)},onRender:function(t){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments),this.group&&this.el.addClass(this.groupClass),this.checked&&(this.checked=!1,this.setChecked(!0,!0))},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this),Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(t,e){var i=!0===e;this.checked==t||!i&&!1===this.fireEvent("beforecheckchange",this,t)||(Ext.menu.MenuMgr.onCheckChange(this,t),this.container&&this.container[t?"addClass":"removeClass"]("x-menu-item-checked"),this.checked=t,i||this.fireEvent("checkchange",this,t))},handleClick:function(t){this.disabled||this.checked&&this.group||this.setChecked(!this.checked),Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}}),Ext.reg("menucheckitem",Ext.menu.CheckItem),Ext.menu.DateMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:!1,hideOnClick:!0,pickerId:null,cls:"x-date-menu",initComponent:function(){this.on("beforeshow",this.onBeforeShow,this),(this.strict=Ext.isIE7&&Ext.isStrict)&&this.on("show",this.onShow,this,{single:!0,delay:20}),Ext.apply(this,{plain:!0,showSeparator:!1,items:this.picker=new Ext.DatePicker(Ext.applyIf({internalRender:this.strict||!Ext.isIE9m,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig))}),this.picker.purgeListeners(),Ext.menu.DateMenu.superclass.initComponent.call(this),this.relayEvents(this.picker,["select"]),this.on("show",this.picker.focus,this.picker),this.on("select",this.menuHide,this),this.handler&&this.on("select",this.handler,this.scope||this)},menuHide:function(){this.hideOnClick&&this.hide(!0)},onBeforeShow:function(){this.picker&&this.picker.hideMonthPicker(!0)},onShow:function(){var t=this.picker.getEl();t.setWidth(t.getWidth())}}),Ext.reg("datemenu",Ext.menu.DateMenu),Ext.menu.ColorMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:!1,hideOnClick:!0,cls:"x-color-menu",paletteId:null,initComponent:function(){Ext.apply(this,{plain:!0,showSeparator:!1,items:this.palette=new Ext.ColorPalette(Ext.applyIf({id:this.paletteId},this.initialConfig))}),this.palette.purgeListeners(),Ext.menu.ColorMenu.superclass.initComponent.call(this),this.relayEvents(this.palette,["select"]),this.on("select",this.menuHide,this),this.handler&&this.on("select",this.handler,this.scope||this)},menuHide:function(){this.hideOnClick&&this.hide(!0)}}),Ext.reg("colormenu",Ext.menu.ColorMenu),Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:!0,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:!1,disabled:!1,submitValue:!0,isFormField:!0,msgDisplay:"",hasFocus:!1,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this),this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:this.name||this.id||""},onRender:function(t,e){var i;this.el||((i=this.getAutoCreate()).name||(i.name=this.name||this.id),this.inputType&&(i.type=this.inputType),this.autoEl=i),Ext.form.Field.superclass.onRender.call(this,t,e),!1===this.submitValue&&this.el.dom.removeAttribute("name");var s=this.el.dom.type;s&&("password"==s&&(s="text"),this.el.addClass("x-form-"+s)),this.readOnly&&this.setReadOnly(!0),void 0!==this.tabIndex&&this.el.dom.setAttribute("tabIndex",this.tabIndex),this.el.addClass([this.fieldClass,this.cls])},getItemCt:function(){return this.itemCt},initValue:function(){void 0!==this.value?this.setValue(this.value):Ext.isEmpty(this.el.dom.value)||this.el.dom.value==this.emptyText||this.setValue(this.el.dom.value),this.originalValue=this.getValue()},isDirty:function(){return!(this.disabled||!this.rendered)&&String(this.getValue())!==String(this.originalValue)},setReadOnly:function(t){this.rendered&&(this.el.dom.readOnly=t),this.readOnly=t},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this),this.initEvents(),this.initValue()},fireKey:function(t){t.isSpecialKey()&&this.fireEvent("specialkey",this,t)},reset:function(){this.setValue(this.originalValue),this.clearInvalid()},initEvents:function(){this.mon(this.el,Ext.EventManager.getKeyEvent(),this.fireKey,this),this.mon(this.el,"focus",this.onFocus,this),this.mon(this.el,"blur",this.onBlur,this,this.inEditor?{buffer:10}:null)},preFocus:Ext.emptyFn,onFocus:function(){this.preFocus(),this.focusClass&&this.el.addClass(this.focusClass),this.hasFocus||(this.hasFocus=!0,this.startValue=this.getValue(),this.fireEvent("focus",this))},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur(),this.focusClass&&this.el.removeClass(this.focusClass),(this.hasFocus=!1)===this.validationEvent||!this.validateOnBlur&&"blur"!=this.validationEvent||this.validate();var t=this.getValue();String(t)!==String(this.startValue)&&this.fireEvent("change",this,t,this.startValue),this.fireEvent("blur",this),this.postBlur()},postBlur:Ext.emptyFn,isValid:function(t){if(this.disabled)return!0;var e=this.preventMark;this.preventMark=!0===t;var i=this.validateValue(this.processValue(this.getRawValue()),t);return this.preventMark=e,i},validate:function(){return!(!this.disabled&&!this.validateValue(this.processValue(this.getRawValue())))&&(this.clearInvalid(),!0)},processValue:function(t){return t},validateValue:function(t){var e=this.getErrors(t)[0];return null==e||(this.markInvalid(e),!1)},getErrors:function(){return[]},getActiveError:function(){return this.activeError||""},markInvalid:function(t){var e,i;this.rendered&&!this.preventMark&&(t=t||this.invalidText,(e=this.getMessageHandler())?e.mark(this,t):this.msgTarget&&(this.el.addClass(this.invalidClass),(i=Ext.getDom(this.msgTarget))&&(i.innerHTML=t,i.style.display=this.msgDisplay))),this.setActiveError(t)},clearInvalid:function(){var t,e;this.rendered&&!this.preventMark&&(this.el.removeClass(this.invalidClass),(t=this.getMessageHandler())?t.clear(this):this.msgTarget&&(this.el.removeClass(this.invalidClass),(e=Ext.getDom(this.msgTarget))&&(e.innerHTML="",e.style.display="none"))),this.unsetActiveError()},setActiveError:function(t,e){this.activeError=t,!0!==e&&this.fireEvent("invalid",this,t)},unsetActiveError:function(t){delete this.activeError,!0!==t&&this.fireEvent("valid",this)},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget]},getErrorCt:function(){return this.el.findParent(".x-form-element",5,!0)||this.el.findParent(".x-form-field-wrap",5,!0)},alignErrorEl:function(){this.errorEl.setWidth(this.getErrorCt().getWidth(!0)-20)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},getRawValue:function(){var t=this.rendered?this.el.getValue():Ext.value(this.value,"");return t===this.emptyText&&(t=""),t},getValue:function(){if(!this.rendered)return this.value;var t=this.el.getValue();return t!==this.emptyText&&void 0!==t||(t=""),t},setRawValue:function(t){return this.rendered?this.el.dom.value=Ext.isEmpty(t)?"":t:""},setValue:function(t){return this.value=t,this.rendered&&(this.el.dom.value=Ext.isEmpty(t)?"":t,this.validate()),this},append:function(t){this.setValue([this.getValue(),t].join(""))}}),Ext.form.MessageTargets={qtip:{mark:function(t,e){t.el.addClass(t.invalidClass),t.el.dom.qtip=e,t.el.dom.qclass="x-form-invalid-tip",Ext.QuickTips&&Ext.QuickTips.enable()},clear:function(t){t.el.removeClass(t.invalidClass),t.el.dom.qtip=""}},title:{mark:function(t,e){t.el.addClass(t.invalidClass),t.el.dom.title=e},clear:function(t){t.el.dom.title=""}},under:{mark:function(t,e){if(t.el.addClass(t.invalidClass),!t.errorEl){var i=t.getErrorCt();if(!i)return void(t.el.dom.title=e);t.errorEl=i.createChild({cls:"x-form-invalid-msg"}),t.on("resize",t.alignErrorEl,t),t.on("destroy",function(){Ext.destroy(this.errorEl)},t)}t.alignErrorEl(),t.errorEl.update(e),Ext.form.Field.msgFx[t.msgFx].show(t.errorEl,t)},clear:function(t){t.el.removeClass(t.invalidClass),t.errorEl?Ext.form.Field.msgFx[t.msgFx].hide(t.errorEl,t):t.el.dom.title=""}},side:{mark:function(t,e){if(t.el.addClass(t.invalidClass),!t.errorIcon){var i=t.getErrorCt();if(!i)return void(t.el.dom.title=e);t.errorIcon=i.createChild({cls:"x-form-invalid-icon"}),t.ownerCt&&(t.ownerCt.on("afterlayout",t.alignErrorIcon,t),t.ownerCt.on("expand",t.alignErrorIcon,t)),t.on("resize",t.alignErrorIcon,t),t.on("destroy",function(){Ext.destroy(this.errorIcon)},t)}t.alignErrorIcon(),t.errorIcon.dom.qtip=e,t.errorIcon.dom.qclass="x-form-invalid-tip",t.errorIcon.show()},clear:function(t){t.el.removeClass(t.invalidClass),t.errorIcon?(t.errorIcon.dom.qtip="",t.errorIcon.hide()):t.el.dom.title=""}}},Ext.form.Field.msgFx={normal:{show:function(t,e){t.setDisplayed("block")},hide:function(t,e){t.setDisplayed(!1).update("")}},slide:{show:function(t,e){t.slideIn("t",{stopFx:!0})},hide:function(t,e){t.slideOut("t",{stopFx:!0,useDisplay:!0})}},slideRight:{show:function(t,e){t.fixDisplay(),t.alignTo(e.el,"tl-tr"),t.slideIn("l",{stopFx:!0})},hide:function(t,e){t.slideOut("l",{stopFx:!0,useDisplay:!0})}}},Ext.reg("field",Ext.form.Field),Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:!1,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:!1,allowBlank:!0,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:!1,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this),this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this),"keyup"==this.validationEvent?(this.validationTask=new Ext.util.DelayedTask(this.validate,this),this.mon(this.el,"keyup",this.filterValidation,this)):!1!==this.validationEvent&&"blur"!=this.validationEvent&&this.mon(this.el,this.validationEvent,this.validate,this,{buffer:this.validationDelay}),(this.selectOnFocus||this.emptyText)&&(this.mon(this.el,"mousedown",this.onMouseDown,this),this.emptyText&&this.applyEmptyText()),(this.maskRe||this.vtype&&!0!==this.disableKeyFilter&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))&&this.mon(this.el,"keypress",this.filterKeys,this),this.grow&&(this.mon(this.el,"keyup",this.onKeyUpBuffered,this,{buffer:50}),this.mon(this.el,"click",this.autoSize,this)),this.enableKeyEvents&&this.mon(this.el,{scope:this,keyup:this.onKeyUp,keydown:this.onKeyDown,keypress:this.onKeyPress})},onMouseDown:function(t){this.hasFocus||this.mon(this.el,"mouseup",Ext.emptyFn,this,{single:!0,preventDefault:!0})},processValue:function(t){if(this.stripCharsRe){var e=t.replace(this.stripCharsRe,"");if(e!==t)return this.setRawValue(e),e}return t},filterValidation:function(t){t.isNavKeyPress()||this.validationTask.delay(this.validationDelay)},onDisable:function(){Ext.form.TextField.superclass.onDisable.call(this),Ext.isIE&&(this.el.dom.unselectable="on")},onEnable:function(){Ext.form.TextField.superclass.onEnable.call(this),Ext.isIE&&(this.el.dom.unselectable="")},onKeyUpBuffered:function(t){this.doAutoSize(t)&&this.autoSize()},doAutoSize:function(t){return!t.isNavKeyPress()},onKeyUp:function(t){this.fireEvent("keyup",this,t)},onKeyDown:function(t){this.fireEvent("keydown",this,t)},onKeyPress:function(t){this.fireEvent("keypress",this,t)},reset:function(){Ext.form.TextField.superclass.reset.call(this),this.applyEmptyText()},applyEmptyText:function(){this.rendered&&this.emptyText&&this.getRawValue().length<1&&!this.hasFocus&&(this.setRawValue(this.emptyText),this.el.addClass(this.emptyClass))},preFocus:function(){var t,e=this.el;this.emptyText&&(e.dom.value==this.emptyText&&(this.setRawValue(""),t=!0),e.removeClass(this.emptyClass)),(this.selectOnFocus||t)&&e.dom.select()},postBlur:function(){this.applyEmptyText()},filterKeys:function(t){var e,i;t.ctrlKey||(e=t.getKey(),Ext.isGecko&&(t.isNavKeyPress()||e==t.BACKSPACE||e==t.DELETE&&-1==t.button)||(i=String.fromCharCode(t.getCharCode()),!Ext.isGecko&&t.isSpecialKey()&&!i||this.maskRe.test(i)||t.stopEvent()))},setValue:function(t){return this.emptyText&&this.el&&!Ext.isEmpty(t)&&this.el.removeClass(this.emptyClass),Ext.form.TextField.superclass.setValue.apply(this,arguments),this.applyEmptyText(),this.autoSize(),this},getErrors:function(t){var e,i,s=Ext.form.TextField.superclass.getErrors.apply(this,arguments);if(t=Ext.isDefined(t)?t:this.processValue(this.getRawValue()),!Ext.isFunction(this.validator)||!0!==(e=this.validator(t))&&s.push(e),t.length<1||t===this.emptyText){if(this.allowBlank)return s;s.push(this.blankText)}return!this.allowBlank&&(t.length<1||t===this.emptyText)&&s.push(this.blankText),t.lengththis.maxLength&&s.push(String.format(this.maxLengthText,this.maxLength)),this.vtype&&((i=Ext.form.VTypes)[this.vtype](t,this)||s.push(this.vtypeText||i[this.vtype+"Text"])),this.regex&&!this.regex.test(t)&&s.push(this.regexText),s},selectText:function(t,e){var i,s,n=this.getRawValue();0"))),i.innerHTML=e,(s=Math.min(this.growMax,Math.max(i.offsetHeight,this.growMin)))!=this.lastHeight&&(this.lastHeight=s,this.el.setHeight(s),this.fireEvent("autosize",this,s)))}}),Ext.reg("textarea",Ext.form.TextArea),Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:!0,decimalSeparator:".",decimalPrecision:2,allowNegative:!0,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",autoStripChars:!1,initEvents:function(){var t=this.baseChars+"";this.allowDecimals&&(t+=this.decimalSeparator),this.allowNegative&&(t+="-"),t=Ext.escapeRe(t),this.maskRe=new RegExp("["+t+"]"),this.autoStripChars&&(this.stripCharsRe=new RegExp("[^"+t+"]","gi")),Ext.form.NumberField.superclass.initEvents.call(this)},getErrors:function(t){var e=Ext.form.NumberField.superclass.getErrors.apply(this,arguments);if((t=Ext.isDefined(t)?t:this.processValue(this.getRawValue())).length<1)return e;t=String(t).replace(this.decimalSeparator,"."),isNaN(t)&&e.push(String.format(this.nanText,t));var i=this.parseValue(t);return ithis.maxValue&&e.push(String.format(this.maxText,this.maxValue)),e},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(t){return t=Ext.isNumber(t)?t:parseFloat(String(t).replace(this.decimalSeparator,".")),t=this.fixPrecision(t),t=isNaN(t)?"":String(t).replace(".",this.decimalSeparator),Ext.form.NumberField.superclass.setValue.call(this,t)},setMinValue:function(t){this.minValue=Ext.num(t,Number.NEGATIVE_INFINITY)},setMaxValue:function(t){this.maxValue=Ext.num(t,Number.MAX_VALUE)},parseValue:function(t){return t=parseFloat(String(t).replace(this.decimalSeparator,".")),isNaN(t)?"":t},fixPrecision:function(t){var e=isNaN(t);return this.allowDecimals&&-1!=this.decimalPrecision&&!e&&t?parseFloat(parseFloat(t).toFixed(this.decimalPrecision)):e?"":t},beforeBlur:function(){var t=this.parseValue(this.getRawValue());Ext.isEmpty(t)||this.setValue(t)}}),Ext.reg("numberfield",Ext.form.NumberField),Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:!0,startDay:0,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initTime:"12",initTimeFormat:"H",safeParse:function(t,e){if(Date.formatContainsHourInfo(e))return Date.parseDate(t,e);var i=Date.parseDate(t+" "+this.initTime,e+" "+this.initTimeFormat);return i?i.clearTime():void 0},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this),this.addEvents("select"),Ext.isString(this.minValue)&&(this.minValue=this.parseDate(this.minValue)),Ext.isString(this.maxValue)&&(this.maxValue=this.parseDate(this.maxValue)),this.disabledDatesRE=null,this.initDisabledDays()},initEvents:function(){Ext.form.DateField.superclass.initEvents.call(this),this.keyNav=new Ext.KeyNav(this.el,{down:function(t){this.onTriggerClick()},scope:this,forceKeyDown:!0})},initDisabledDays:function(){var i,s,n;this.disabledDates&&(i=this.disabledDates,s=i.length-1,n="(?:",Ext.each(i,function(t,e){n+=Ext.isDate(t)?"^"+Ext.escapeRe(t.dateFormat(this.format))+"$":i[e],e!=s&&(n+="|")},this),this.disabledDatesRE=new RegExp(n+")"))},setDisabledDates:function(t){this.disabledDates=t,this.initDisabledDays(),this.menu&&this.menu.picker.setDisabledDates(this.disabledDatesRE)},setDisabledDays:function(t){this.disabledDays=t,this.menu&&this.menu.picker.setDisabledDays(t)},setMinValue:function(t){this.minValue=Ext.isString(t)?this.parseDate(t):t,this.menu&&this.menu.picker.setMinDate(this.minValue)},setMaxValue:function(t){this.maxValue=Ext.isString(t)?this.parseDate(t):t,this.menu&&this.menu.picker.setMaxDate(this.maxValue)},getErrors:function(t){var e=Ext.form.DateField.superclass.getErrors.apply(this,arguments);if((t=this.formatDate(t||this.processValue(this.getRawValue()))).length<1)return e;var i=t;if(!(t=this.parseDate(t)))return e.push(String.format(this.invalidText,i,this.format)),e;var s=t.getTime();if(this.minValue&&sthis.maxValue.clearTime().getTime()&&e.push(String.format(this.maxText,this.formatDate(this.maxValue))),this.disabledDays)for(var n=t.getDay(),r=0;r
    {'+this.displayField+"}
    "),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+t+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this}),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",function(t,e,i){this.maxHeight=i-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=e,this.innerList.setWidth(e-this.list.getFrameWidth("lr")),this.restrictHeight()},this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")))},getListParent:function(){return document.body},getStore:function(){return this.store},bindStore:function(t,e){this.store&&!e&&(this.store!==t&&this.store.autoDestroy?this.store.destroy():(this.store.un("beforeload",this.onBeforeLoad,this),this.store.un("load",this.onLoad,this),this.store.un("exception",this.collapse,this)),t||(this.store=null,this.view&&this.view.bindStore(null),this.pageTb&&this.pageTb.bindStore(null))),t&&(e||(this.lastQuery=null,this.pageTb&&this.pageTb.bindStore(t)),this.store=Ext.StoreMgr.lookup(t),this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.collapse}),this.view&&this.view.bindStore(t))},reset:function(){this.clearFilterOnReset&&"local"==this.mode&&this.store.clearFilter(),Ext.form.ComboBox.superclass.reset.call(this)},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this),this.keyNav=new Ext.KeyNav(this.el,{up:function(t){this.inKeyMode=!0,this.selectPrev()},down:function(t){this.isExpanded()?(this.inKeyMode=!0,this.selectNext()):this.onTriggerClick()},enter:function(t){this.onViewClick()},esc:function(t){this.collapse()},tab:function(t){return!0===this.forceSelection?this.collapse():this.onViewClick(!1),!0},scope:this,doRelay:function(t,e,i){if("down"==i||this.scope.isExpanded()){var s=Ext.KeyNav.prototype.doRelay.apply(this,arguments);return(Ext.isIE9&&Ext.isStrict||Ext.isIE10p||!Ext.isIE)&&Ext.EventManager.useKeydown&&this.scope.fireKey(t),s}return!0},forceKeyDown:!0,defaultEventAction:"stopEvent"}),this.queryDelay=Math.max(this.queryDelay||10,"local"==this.mode?10:250),this.dqTask=new Ext.util.DelayedTask(this.initQuery,this),this.typeAhead&&(this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)),this.enableKeyEvents||this.mon(this.el,"keyup",this.onKeyUp,this)},onDestroy:function(){this.dqTask&&(this.dqTask.cancel(),this.dqTask=null),this.bindStore(null),Ext.destroy(this.resizer,this.view,this.pageTb,this.list),Ext.destroyMembers(this,"hiddenField"),Ext.form.ComboBox.superclass.onDestroy.call(this)},fireKey:function(t){this.isExpanded()||Ext.form.ComboBox.superclass.fireKey.call(this,t)},onResize:function(t,e){Ext.form.ComboBox.superclass.onResize.apply(this,arguments),!isNaN(t)&&this.isVisible()&&this.list?this.doResize(t):this.bufferSize=t},doResize:function(t){var e;Ext.isDefined(this.listWidth)||(e=Math.max(t,this.minListWidth),this.list.setWidth(e),this.innerList.setWidth(e-this.list.getFrameWidth("lr")))},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments),this.hiddenField&&(this.hiddenField.disabled=!1)},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments),this.hiddenField&&(this.hiddenField.disabled=!0)},onBeforeLoad:function(){this.hasFocus&&(this.innerList.update(this.loadingText?'
    '+this.loadingText+"
    ":""),this.restrictHeight(),this.selectedIndex=-1)},onLoad:function(){this.hasFocus&&(0=this.minChars)&&(this.lastQuery!==t?(this.lastQuery=t,"local"==this.mode?(this.selectedIndex=-1,e?this.store.clearFilter():this.store.filter(this.displayField,t),this.onLoad()):(this.store.baseParams[this.queryParam]=t,this.store.load({params:this.getParams(t)}),this.expand())):(this.selectedIndex=-1,this.onLoad()))},getParams:function(t){var e={},i=this.store.paramNames;return this.pageSize&&(e[i.start]=0,e[i.limit]=this.pageSize),e},collapse:function(){this.isExpanded()&&(this.list.hide(),Ext.getDoc().un("mousewheel",this.collapseIf,this),Ext.getDoc().un("mousedown",this.collapseIf,this),this.fireEvent("collapse",this))},collapseIf:function(t){this.isDestroyed||t.within(this.wrap)||t.within(this.list)||this.collapse()},expand:function(){!this.isExpanded()&&this.hasFocus&&((this.title||this.pageSize)&&(this.assetHeight=0,this.title&&(this.assetHeight+=this.header.getHeight()),this.pageSize&&(this.assetHeight+=this.footer.getHeight())),this.bufferSize&&(this.doResize(this.bufferSize),delete this.bufferSize),this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign)),this.list.setZIndex(this.getZIndex()),this.list.show(),Ext.isGecko2&&this.innerList.setOverflow("auto"),this.mon(Ext.getDoc(),{scope:this,mousewheel:this.collapseIf,mousedown:this.collapseIf}),this.fireEvent("expand",this))},onTriggerClick:function(){this.readOnly||this.disabled||(this.isExpanded()?this.collapse():(this.onFocus({}),"all"==this.triggerAction?this.doQuery(this.allQuery,!0):this.doQuery(this.getRawValue())),this.el.focus())}}),Ext.reg("combo",Ext.form.ComboBox),Ext.form.Checkbox=Ext.extend(Ext.form.Field,{focusClass:void 0,fieldClass:"x-form-field",checked:!1,boxLabel:" ",defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},actionMode:"wrap",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this),this.addEvents("check")},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments),this.boxLabel||this.fieldLabel||this.el.alignTo(this.wrap,"c-c")},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this),this.mon(this.el,{scope:this,click:this.onClick,change:this.onClick})},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,onRender:function(t,e){Ext.form.Checkbox.superclass.onRender.call(this,t,e),void 0!==this.inputValue&&(this.el.dom.value=this.inputValue),this.wrap=this.el.wrap({cls:"x-form-check-wrap"}),this.boxLabel&&this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel}),this.checked?this.setValue(!0):this.checked=this.el.dom.checked,Ext.isIEQuirks&&this.wrap.repaint(),this.resizeEl=this.positionEl=this.wrap},onDestroy:function(){Ext.destroy(this.wrap),Ext.form.Checkbox.superclass.onDestroy.call(this)},initValue:function(){this.originalValue=this.getValue()},getValue:function(){return this.rendered?this.el.dom.checked:this.checked},onClick:function(){this.el.dom.checked!=this.checked&&this.setValue(this.el.dom.checked)},setValue:function(t){var e=this.checked,i=this.inputValue;return this.checked=!1!==t&&(!0===t||"true"===t||"1"==t||(i?t==i:"on"==String(t).toLowerCase())),this.rendered&&(this.el.dom.checked=this.checked,this.el.dom.defaultChecked=this.checked),e!=this.checked&&(this.fireEvent("check",this,this.checked),this.handler&&this.handler.call(this.scope||this,this,this.checked)),this}}),Ext.reg("checkbox",Ext.form.Checkbox),Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:!1,allowBlank:!0,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",initComponent:function(){this.addEvents("change"),this.on("change",this.validate,this),Ext.form.CheckboxGroup.superclass.initComponent.call(this)},onRender:function(t,e){if(!this.el){var i,s={autoEl:{id:this.id},cls:this.groupCls,layout:"column",renderTo:t,bufferResize:!1},n={xtype:"container",defaultType:this.defaultType,layout:"form",defaults:{hideLabel:!0,anchor:"100%"}};if(this.items[0].items){Ext.apply(s,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var r=0,o=this.items.length;r")},sortErrors:function(){var s=this.items;this.fieldErrors.sort("ASC",function(t,e){function i(e){return function(t){return t.getName()==e}}return s.findIndexBy(i(t.field))':">",t,"");return i.join("")},createToolbar:function(s){var t,e=[],n=Ext.QuickTips&&Ext.QuickTips.isEnabled();function i(t,e,i){return{itemId:t,cls:"x-btn-icon",iconCls:"x-edit-"+t,enableToggle:!1!==e,scope:s,handler:i||s.relayBtnCmd,clickEvent:"mousedown",tooltip:n&&s.buttonTips[t]||void 0,overflowText:s.buttonTips[t].title||void 0,tabIndex:-1}}this.enableFont&&!Ext.isSafari2&&(t=new Ext.Toolbar.Item({autoEl:{tag:"select",cls:"x-font-select",html:this.createFontOptions()}}),e.push(t,"-")),this.enableFormat&&e.push(i("bold"),i("italic"),i("underline")),this.enableFontSize&&e.push("-",i("increasefontsize",!1,this.adjustFont),i("decreasefontsize",!1,this.adjustFont)),this.enableColors&&e.push("-",{itemId:"forecolor",cls:"x-btn-icon",iconCls:"x-edit-forecolor",clickEvent:"mousedown",tooltip:n&&s.buttonTips.forecolor||void 0,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:!0,focus:Ext.emptyFn,value:"000000",plain:!0,listeners:{scope:this,select:function(t,e){this.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+e:e),this.deferFocus()}},clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon",iconCls:"x-edit-backcolor",clickEvent:"mousedown",tooltip:n&&s.buttonTips.backcolor||void 0,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:!0,allowReselect:!0,listeners:{scope:this,select:function(t,e){Ext.isGecko?(this.execCmd("useCSS",!1),this.execCmd("hilitecolor",e),this.execCmd("useCSS",!0)):this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+e:e),this.deferFocus()}},clickEvent:"mousedown"})}),this.enableAlignments&&e.push("-",i("justifyleft"),i("justifycenter"),i("justifyright")),Ext.isSafari2||(this.enableLinks&&e.push("-",i("createlink",!1,this.createLink)),this.enableLists&&e.push("-",i("insertorderedlist"),i("insertunorderedlist")),this.enableSourceEdit&&e.push("-",i("sourceedit",!0,function(t){this.toggleSourceEdit(!this.sourceEditMode)})));var r=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild,items:e});t&&(this.fontSelect=t.el,this.mon(this.fontSelect,"change",function(){var t=this.fontSelect.dom.value;this.relayCmd("fontname",t),this.deferFocus()},this)),this.mon(r.el,"click",function(t){t.preventDefault()}),this.tb=r,this.tb.doLayout()},onDisable:function(){this.wrap.mask(),Ext.form.HtmlEditor.superclass.onDisable.call(this)},onEnable:function(){this.wrap.unmask(),Ext.form.HtmlEditor.superclass.onEnable.call(this)},setReadOnly:function(t){var e;Ext.form.HtmlEditor.superclass.setReadOnly.call(this,t),this.initialized&&(Ext.isIE?this.getEditorBody().contentEditable=!t:this.setDesignMode(!t),(e=this.getEditorBody())&&(e.style.cursor=this.readOnly?"default":"text"),this.disableItems(t))},getDocMarkup:function(){var t=Ext.fly(this.iframe).getHeight()-2*this.iframePad;return String.format('',this.iframePad,t)},getEditorBody:function(){var t=this.getDoc();return t.body||t.documentElement},getDoc:function(){return!Ext.isIE&&this.iframe.contentDocument||this.getWin().document},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(t,e){var i;Ext.form.HtmlEditor.superclass.onRender.call(this,t,e),this.el.dom.style.border="0 none",this.el.dom.setAttribute("tabIndex",-1),this.el.addClass("x-hidden"),Ext.isIE&&this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;"),this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}}),this.createToolbar(this),this.disableItems(!0),this.tb.doLayout(),this.createIFrame(),this.width||(i=this.el.getSize(),this.setSize(i.width,this.height||i.height)),this.resizeEl=this.positionEl=this.wrap},createIFrame:function(){var t=document.createElement("iframe");t.name=Ext.id(),t.frameBorder="0",t.style.overflow="auto",t.src=Ext.SSL_SECURE_URL,this.wrap.dom.appendChild(t),this.iframe=t,this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})},initFrame:function(){Ext.TaskMgr.stop(this.monitorTask);var t=this.getDoc();this.win=this.getWin(),t.open(),t.write(this.getDocMarkup()),t.close(),this.readyTask={run:function(){var t=this.getDoc();!t.body&&"complete"!=t.readyState||(Ext.TaskMgr.stop(this.readyTask),this.setDesignMode(!0),this.initEditor.defer(10,this))},interval:10,duration:1e4,scope:this},Ext.TaskMgr.start(this.readyTask)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var t=this.getDoc();if(!t)return;t.editorInitialized&&"on"==this.getDesignMode()||this.initFrame()}},setDesignMode:function(t){var e=this.getDoc();e&&(this.readOnly&&(t=!1),e.designMode=/on|true/i.test(String(t).toLowerCase())?"on":"off")},getDesignMode:function(){var t=this.getDoc();return t?String(t.designMode).toLowerCase():""},disableItems:function(e){this.fontSelect&&(this.fontSelect.dom.disabled=e),this.tb.items.each(function(t){"sourceedit"!=t.getItemId()&&t.setDisabled(e)})},onResize:function(t,e){var i,s,n;Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments),this.el&&this.iframe&&(Ext.isNumber(t)&&(i=t-this.wrap.getFrameWidth("lr"),this.el.setWidth(i),this.tb.setWidth(i),this.iframe.style.width=Math.max(i,0)+"px"),Ext.isNumber(e)&&(s=e-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight(),this.el.setHeight(s),this.iframe.style.height=Math.max(s,0)+"px",(n=this.getEditorBody())&&(n.style.height=Math.max(s-2*this.iframePad,0)+"px")))},toggleSourceEdit:function(t){var e,i;void 0===t&&(t=!this.sourceEditMode),this.sourceEditMode=!0===t;var s=this.tb.getComponent("sourceedit");s.pressed!==this.sourceEditMode&&(s.toggle(this.sourceEditMode),!s.xtbHidden)||(this.sourceEditMode?(this.previousSize=this.getSize(),e=Ext.get(this.iframe).getHeight(),this.disableItems(!0),this.syncValue(),this.iframe.className="x-hidden",this.el.removeClass("x-hidden"),this.el.dom.removeAttribute("tabIndex"),this.el.focus(),this.el.dom.style.height=e+"px"):(i=parseInt(this.el.dom.style.height,10),this.initialized&&this.disableItems(this.readOnly),this.pushValue(),this.iframe.className="",this.el.addClass("x-hidden"),this.el.dom.setAttribute("tabIndex",-1),this.deferFocus(),this.setSize(this.previousSize),delete this.previousSize,this.iframe.style.height=i+"px"),this.fireEvent("editmodechange",this,this.sourceEditMode))},createLink:function(){var t=prompt(this.createLinkText,this.defaultLinkValue);t&&"http://"!=t&&this.relayCmd("createlink",t)},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(t){return Ext.form.HtmlEditor.superclass.setValue.call(this,t),this.pushValue(),this},cleanHtml:function(t){return t=String(t),Ext.isWebKit&&(t=t.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")),t.charCodeAt(0)==this.defaultValue.replace(/\D/g,"")&&(t=t.substring(1)),t},syncValue:function(){var t,e,i;this.initialized&&(e=(t=this.getEditorBody()).innerHTML,!Ext.isWebKit||(i=t.getAttribute("style").match(/text-align:(.*?);/i))&&i[1]&&(e='
    '+e+"
    "),e=this.cleanHtml(e),!1!==this.fireEvent("beforesync",this,e)&&(this.el.dom.value=e,this.fireEvent("sync",this,e)))},getValue:function(){return this[this.sourceEditMode?"pushValue":"syncValue"](),Ext.form.HtmlEditor.superclass.getValue.call(this)},pushValue:function(){var t;this.initialized&&(t=this.el.dom.value,!this.activated&&t.length<1&&(t=this.defaultValue),!1!==this.fireEvent("beforepush",this,t)&&(this.getEditorBody().innerHTML=t,Ext.isGecko&&(this.setDesignMode(!1),this.setDesignMode(!0)),this.fireEvent("push",this,t)))},deferFocus:function(){this.focus.defer(10,this)},focus:function(){this.win&&!this.sourceEditMode?this.win.focus():this.el.focus()},initEditor:function(){try{var t,e,i=this.getEditorBody(),s=this.el.getStyles("font-size","font-family","background-image","background-repeat","background-color","color");if(s["background-attachment"]="fixed",i.bgProperties="fixed",Ext.DomHelper.applyStyles(i,s),t=this.getDoc())try{Ext.EventManager.removeAll(t)}catch(t){}e=this.onEditorEvent.createDelegate(this),Ext.EventManager.on(t,{mousedown:e,dblclick:e,click:e,keyup:e,buffer:100}),Ext.isGecko&&Ext.EventManager.on(t,"keypress",this.applyCommand,this),(Ext.isIE||Ext.isWebKit||Ext.isOpera)&&Ext.EventManager.on(t,"keydown",this.fixKeys,this),t.editorInitialized=!0,this.initialized=!0,this.pushValue(),this.setReadOnly(this.readOnly),this.fireEvent("initialize",this)}catch(t){}},beforeDestroy:function(){if(this.monitorTask&&Ext.TaskMgr.stop(this.monitorTask),this.readyTask&&Ext.TaskMgr.stop(this.readyTask),this.rendered){Ext.destroy(this.tb);var t=this.getDoc();if(Ext.EventManager.removeFromSpecialCache(t),t)try{for(var e in Ext.EventManager.removeAll(t),t)delete t[e]}catch(t){}this.wrap&&(this.wrap.dom.innerHTML="",this.wrap.remove())}Ext.form.HtmlEditor.superclass.beforeDestroy.call(this)},onFirstFocus:function(){if(this.activated=!0,this.disableItems(this.readOnly),Ext.isGecko){this.win.focus();var t,e=this.win.getSelection();e.focusNode&&3==e.focusNode.nodeType||((t=e.getRangeAt(0)).selectNodeContents(this.getEditorBody()),t.collapse(!0),this.deferFocus());try{this.execCmd("useCSS",!0),this.execCmd("styleWithCSS",!1)}catch(t){}}this.fireEvent("activate",this)},adjustFont:function(t){var e="increasefontsize"==t.getItemId()?1:-1,i=this.getDoc(),s=parseInt(i.queryCommandValue("FontSize")||2,10),s=Ext.isSafari&&!Ext.isSafari2||Ext.isChrome||Ext.isAir?(s=s<=10?1+e:s<=13?2+e:s<=16?3+e:s<=18?4+e:s<=24?5+e:6+e).constrain(1,6):(Ext.isSafari&&(e*=2),Math.max(1,s+e)+(Ext.isSafari?"px":0));this.execCmd("FontSize",s)},onEditorEvent:function(t){this.updateToolbar()},updateToolbar:function(){var t,e,i;this.readOnly||(this.activated?(t=this.tb.items.map,e=this.getDoc(),!this.enableFont||Ext.isSafari2||(i=(e.queryCommandValue("FontName")||this.defaultFont).toLowerCase())!=this.fontSelect.dom.value&&(this.fontSelect.dom.value=i),this.enableFormat&&(t.bold.toggle(e.queryCommandState("bold")),t.italic.toggle(e.queryCommandState("italic")),t.underline.toggle(e.queryCommandState("underline"))),this.enableAlignments&&(t.justifyleft.toggle(e.queryCommandState("justifyleft")),t.justifycenter.toggle(e.queryCommandState("justifycenter")),t.justifyright.toggle(e.queryCommandState("justifyright"))),!Ext.isSafari2&&this.enableLists&&(t.insertorderedlist.toggle(e.queryCommandState("insertorderedlist")),t.insertunorderedlist.toggle(e.queryCommandState("insertunorderedlist"))),Ext.menu.MenuMgr.hideAll(),this.syncValue()):this.onFirstFocus())},relayBtnCmd:function(t){this.relayCmd(t.getItemId())},relayCmd:function(t,e){(function(){this.focus(),this.execCmd(t,e),this.updateToolbar()}).defer(10,this)},execCmd:function(t,e){this.getDoc().execCommand(t,!1,void 0===e?null:e),this.syncValue()},applyCommand:function(t){if(t.ctrlKey){var e,i=t.getCharCode();if(0"),i.collapse(!1),i.select()))}:Ext.isOpera?function(t){t.getKey()==t.TAB&&(t.stopEvent(),this.win.focus(),this.execCmd("InsertHTML","    "),this.deferFocus())}:Ext.isWebKit?function(t){var e=t.getKey();e==t.TAB?(t.stopEvent(),this.execCmd("InsertText","\t"),this.deferFocus()):e==t.ENTER&&(t.stopEvent(),this.execCmd("InsertHtml","

    "),this.deferFocus())}:void 0,getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}}),Ext.reg("htmleditor",Ext.form.HtmlEditor),Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:void 0,maxValue:void 0,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,mode:"local",triggerAction:"all",typeAhead:!1,initDate:"1/1/2008",initDateFormat:"j/n/Y",initComponent:function(){Ext.isDefined(this.minValue)&&this.setMinValue(this.minValue,!0),Ext.isDefined(this.maxValue)&&this.setMaxValue(this.maxValue,!0),this.store||this.generateStore(!0),Ext.form.TimeField.superclass.initComponent.call(this)},setMinValue:function(t,e){return this.setLimit(t,!0,e),this},setMaxValue:function(t,e){return this.setLimit(t,!1,e),this},generateStore:function(t){for(var e=this.minValue||new Date(this.initDate).clearTime(),i=this.maxValue||new Date(this.initDate).clearTime().add("mi",1439),s=[];e<=i;)s.push(e.dateFormat(this.format)),e=e.add("mi",this.increment);this.bindStore(s,t)},setLimit:function(t,e,i){var s,n;Ext.isString(t)?s=this.parseDate(t):Ext.isDate(t)&&(s=t),s&&((n=new Date(this.initDate).clearTime()).setHours(s.getHours(),s.getMinutes(),s.getSeconds(),s.getMilliseconds()),this[e?"minValue":"maxValue"]=n,i||this.generateStore())},getValue:function(){var t=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(t))||""},setValue:function(t){return Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(t)))},validateValue:Ext.form.DateField.prototype.validateValue,formatDate:Ext.form.DateField.prototype.formatDate,parseDate:function(t){if(!t||Ext.isDate(t))return t;var e=this.initDate+" ",i=this.initDateFormat+" ",s=Date.parseDate(e+t,i+this.format),n=this.altFormats;if(!s&&n){this.altFormatsArray||(this.altFormatsArray=n.split("|"));for(var r=0,o=this.altFormatsArray,a=o.length;r','
    ','
    ','
    ','
    {header}
    ',"
    ",'
    ',"
    ",'
    ','
    {body}
    ','',"
    ","
    ",'
     
    ','
     
    ',""),headerTpl:new Ext.Template('',"",'{cells}',"","
    "),bodyTpl:new Ext.Template("{rows}"),cellTpl:new Ext.Template('','
    {value}
    ',""),initTemplates:function(){var t,e,i=this.templates||{},s=new Ext.Template('','
    ',this.grid.enableHdMenu?'':"","{value}",'',"
    ",""),n=['','','
    {body}
    ',"",""].join(""),r=['',"","{cells}",this.enableRowBody?n:"","","
    "].join("");for(e in Ext.applyIf(i,{hcell:s,cell:this.cellTpl,body:this.bodyTpl,header:this.headerTpl,master:this.masterTpl,row:new Ext.Template('
    '+r+"
    "),rowInner:new Ext.Template(r)}),i)(t=i[e])&&Ext.isFunction(t.compile)&&!t.compiled&&(t.disableFormats=!0,t.compile());this.templates=i,this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(t){return this._flyweight||(this._flyweight=new Ext.Element.Flyweight(document.body)),this._flyweight.dom=t,this._flyweight},getEditorParent:function(){return this.scroller.dom},initElements:function(){var t=Ext.Element,e=Ext.get(this.grid.getGridEl().dom.firstChild),i=new t(e.child("div.x-grid3-viewport")),s=new t(i.child("div.x-grid3-header")),n=new t(i.child("div.x-grid3-scroller"));this.grid.hideHeaders&&s.setDisplayed(!1),this.forceFit&&n.setStyle("overflow-x","hidden"),Ext.apply(this,{el:e,mainWrap:i,scroller:n,mainHd:s,innerHd:s.child("div.x-grid3-header-inner").dom,mainBody:new t(t.fly(n).child("div.x-grid3-body")),focusEl:new t(t.fly(n).child("a")),resizeMarker:new t(e.child("div.x-grid3-resize-marker")),resizeProxy:new t(e.child("div.x-grid3-resize-proxy"))}),this.focusEl.swallowEvent("click",!0)},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(t){return!!t&&this.fly(t).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(t,e){var i,s=this.findCell(t);return!(!s||(i=this.fly(s).hasClass(e),e&&!i))&&this.getCellIndex(s)},getCellIndex:function(t){if(t){var e=t.className.match(this.colRe);if(e&&e[1])return this.cm.getIndexById(e[1])}return!1},findHeaderCell:function(t){var e=this.findCell(t);return e&&this.fly(e).hasClass(this.hdCls)?e:null},findHeaderIndex:function(t){return this.findCellIndex(t,this.hdCls)},findRow:function(t){return!!t&&this.fly(t).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(t){var e=this.findRow(t);return!!e&&e.rowIndex},findRowBody:function(t){return!!t&&this.fly(t).findParent(this.rowBodySelector,this.rowBodySelectorDepth)},getRow:function(t){return this.getRows()[t]},getCell:function(t,e){return Ext.fly(this.getRow(t)).query(this.cellSelector)[e]},getHeaderCell:function(t){return this.mainHd.dom.getElementsByTagName("td")[t]},addRowClass:function(t,e){var i=this.getRow(t);i&&this.fly(i).addClass(e)},removeRowClass:function(t,e){var i=this.getRow(t);i&&this.fly(i).removeClass(e)},removeRow:function(t){Ext.removeNode(this.getRow(t)),this.syncFocusEl(t)},removeRows:function(t,e){for(var i=this.mainBody.dom,s=t;s<=e;s++)Ext.removeNode(i.childNodes[t]);this.syncFocusEl(t)},getScrollState:function(){var t=this.scroller.dom;return{left:t.scrollLeft,top:t.scrollTop}},restoreScroll:function(t){var e=this.scroller.dom;e.scrollLeft=t.left,e.scrollTop=t.top},scrollToTop:function(){var t=this.scroller.dom;t.scrollTop=0,t.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var t=this.scroller.dom;this.grid.fireEvent("bodyscroll",t.scrollLeft,t.scrollTop)},syncHeaderScroll:function(){var t=this.innerHd,e=this.scroller.dom.scrollLeft;t.scrollLeft=e,t.scrollLeft=e},updateSortIcon:function(t,e){var i=this.sortClasses,s=i["DESC"==e?1:0];this.mainHd.select("td").removeClass(i).item(t).addClass(s)},updateAllColumnWidths:function(){for(var t,e,i,s,n=this.getTotalWidth(),r=this.cm.getColumnCount(),o=this.getRows(),a=o.length,l=[],h=0;h=this.ds.getCount())return null;e=void 0!==e?e:0;var s,n=this.getRow(t),r=this.cm,o=r.getColumnCount();if(!1!==i||0!==e){for(;e'+this.emptyText+"")},updateHeaderSortState:function(){var t,e,i=this.ds.getSortState();i&&(this.sortState&&this.sortState.field==i.field&&this.sortState.direction==i.direction||this.grid.fireEvent("sortchange",this.grid,i),this.sortState=i,-1!=(t=this.cm.findColumnIndex(i.field))&&(e=i.direction,this.updateSortIcon(t,e)))},clearHeaderSortState:function(){this.sortState&&(this.grid.fireEvent("sortchange",this.grid,null),this.mainHd.select("td").removeClass(this.sortClasses),delete this.sortState)},destroy:function(){var t,e,i=this,s=i.grid,n=s.getGridEl(),r=i.dragZone,o=i.splitZone,a=i.columnDrag,l=i.columnDrop,h=i.scrollToTopTask;h&&h.cancel&&h.cancel(),Ext.destroyMembers(i,"colMenu","hmenu"),i.initData(null,null),i.purgeListeners(),Ext.fly(i.innerHd).un("click",i.handleHdDown,i),s.enableColumnMove&&(t=a.dragData,e=a.proxy,Ext.destroy(a.el,e.ghost,e.el,l.el,l.proxyTop,l.proxyBottom,t.ddel,t.header),e.anim&&Ext.destroy(e.anim),delete e.ghost,delete t.ddel,delete t.header,a.destroy(),delete Ext.dd.DDM.locationCache[a.id],delete a._domRef,delete l.proxyTop,delete l.proxyBottom,l.destroy(),delete Ext.dd.DDM.locationCache["gridHeader"+n.id],delete l._domRef,delete Ext.dd.DDM.ids[l.ddGroup]),o&&(o.destroy(),delete o._domRef,delete Ext.dd.DDM.ids["gridSplitters"+n.id]),Ext.fly(i.innerHd).removeAllListeners(),Ext.removeNode(i.innerHd),delete i.innerHd,Ext.destroy(i.el,i.mainWrap,i.mainHd,i.scroller,i.mainBody,i.focusEl,i.resizeMarker,i.resizeProxy,i.activeHdBtn,i._flyweight,r,o),delete s.container,r&&r.destroy(),Ext.dd.DDM.currentTarget=null,delete Ext.dd.DDM.locationCache[n.id],Ext.EventManager.removeResizeListener(i.onWindowResize,i)},onDenyColumnHide:function(){},render:function(){var t;this.autoFill?(t=this.grid.ownerCt)&&t.getLayout()&&t.on("afterlayout",function(){this.fitColumns(!0,!0),this.updateHeaders(),this.updateHeaderSortState()},this,{single:!0}):this.forceFit?this.fitColumns(!0,!1):this.grid.autoExpandColumn&&this.autoExpand(!0),this.grid.getGridEl().dom.innerHTML=this.renderUI(),this.afterRenderUI()},initData:function(t,e){var i,s,n=this;n.ds&&((i=n.ds).un("add",n.onAdd,n),i.un("load",n.onLoad,n),i.un("clear",n.onClear,n),i.un("remove",n.onRemove,n),i.un("update",n.onUpdate,n),i.un("datachanged",n.onDataChange,n),i!==t&&i.autoDestroy&&i.destroy()),t&&t.on({scope:n,load:n.onLoad,add:n.onAdd,remove:n.onRemove,update:n.onUpdate,clear:n.onClear,datachanged:n.onDataChange}),n.cm&&((s=n.cm).un("configchange",n.onColConfigChange,n),s.un("widthchange",n.onColWidthChange,n),s.un("headerchange",n.onHeaderChange,n),s.un("hiddenchange",n.onHiddenChange,n),s.un("columnmoved",n.onColumnMove,n)),e&&(delete n.lastViewWidth,e.on({scope:n,configchange:n.onColConfigChange,widthchange:n.onColWidthChange,headerchange:n.onHeaderChange,hiddenchange:n.onHiddenChange,columnmoved:n.onColumnMove})),n.ds=t,n.cm=e},onDataChange:function(){this.refresh(!0),this.updateHeaderSortState(),this.syncFocusEl(0)},onClear:function(){this.refresh(),this.syncFocusEl(0)},onUpdate:function(t,e){this.refreshRow(e)},onAdd:function(t,e,i){this.insertRows(t,i,i+(e.length-1))},onRemove:function(t,e,i,s){!0!==s&&this.fireEvent("beforerowremoved",this,i,e),this.removeRow(i),!0!==s&&(this.processRows(i),this.applyEmptyText(),this.fireEvent("rowremoved",this,i,e))},onLoad:function(){Ext.isGecko?(this.scrollToTopTask||(this.scrollToTopTask=new Ext.util.DelayedTask(this.scrollToTop,this)),this.scrollToTopTask.delay(1)):this.scrollToTop()},onColWidthChange:function(t,e,i){this.updateColumnWidth(e,i)},onHeaderChange:function(t,e,i){this.updateHeaders()},onHiddenChange:function(t,e,i){this.updateColumnHidden(e,i)},onColumnMove:function(t,e,i){this.indexMap=null,this.refresh(!0),this.restoreScroll(this.getScrollState()),this.afterMove(i),this.grid.fireEvent("columnmove",e,i)},onColConfigChange:function(){delete this.lastViewWidth,this.indexMap=null,this.refresh(!0)},initUI:function(t){t.on("headerclick",this.onHeaderClick,this)},initEvents:Ext.emptyFn,onHeaderClick:function(t,e){!this.headersDisabled&&this.cm.isSortable(e)&&(t.stopEditing(!0),t.store.sort(this.cm.getDataIndex(e)))},onRowOver:function(t,e){var i=this.findRowIndex(e);!1!==i&&this.addRowClass(i,this.rowOverCls)},onRowOut:function(t,e){var i=this.findRowIndex(e);!1===i||t.within(this.getRow(i),!0)||this.removeRowClass(i,this.rowOverCls)},onRowSelect:function(t){this.addRowClass(t,this.selectedRowClass)},onRowDeselect:function(t){this.removeRowClass(t,this.selectedRowClass)},onCellSelect:function(t,e){var i=this.getCell(t,e);i&&this.fly(i).addClass("x-grid3-cell-selected")},onCellDeselect:function(t,e){var i=this.getCell(t,e);i&&this.fly(i).removeClass("x-grid3-cell-selected")},handleWheel:function(t){t.stopPropagation()},onColumnSplitterMoved:function(t,e){this.userResized=!0,this.grid.colModel.setColumnWidth(t,e,!0),this.forceFit?(this.fitColumns(!0,!1,t),this.updateAllColumnWidths()):(this.updateColumnWidth(t,e),this.syncHeaderScroll()),this.grid.fireEvent("columnresize",t,e)},beforeColMenuShow:function(){var t,e=this.cm,i=e.getColumnCount(),s=this.colMenu;for(s.removeAll(),t=0;t','
    ','
    ','
    {title}
    ','
    ','
    ',"
    ",'
    ',"
    ",'
    ','
    ','
    {body}
    ','',"
    ","
    ",'
     
    ','
     
    ',""),initTemplates:function(){Ext.grid.PivotGridView.superclass.initTemplates.apply(this,arguments);var t=this.templates||{};t.gcell||(t.gcell=new Ext.XTemplate('','
    ',this.grid.enableHdMenu?'':"","{value}","
    ","")),this.templates=t,this.hrowRe=new RegExp("ux-grid-hd-group-row-(\\d+)","")},initElements:function(){Ext.grid.PivotGridView.superclass.initElements.apply(this,arguments),this.rowHeadersEl=new Ext.Element(this.scroller.child("div.x-grid3-row-headers")),this.headerTitleEl=new Ext.Element(this.mainHd.child("div.x-grid3-header-title"))},getGridInnerWidth:function(){return Ext.grid.PivotGridView.superclass.getGridInnerWidth.apply(this,arguments)-this.getTotalRowHeaderWidth()},getTotalRowHeaderWidth:function(){for(var t=this.getRowHeaders(),e=t.length,i=0,s=0;s=this.grid.store.getCount()||e&&this.isSelected(t)||(s=this.grid.store.getAt(t))&&!1!==this.fireEvent("beforerowselect",this,t,e,s)&&(e&&!this.singleSelect||this.clearSelections(),this.selections.add(s),this.last=this.lastActive=t,i||this.grid.getView().onRowSelect(t),this.silent||(this.fireEvent("rowselect",this,t,s),this.fireEvent("selectionchange",this)))},deselectRow:function(t,e){var i;this.isLocked()||(this.last==t&&(this.last=!1),this.lastActive==t&&(this.lastActive=!1),(i=this.grid.store.getAt(t))&&(this.selections.remove(i),e||this.grid.getView().onRowDeselect(t),this.fireEvent("rowdeselect",this,t,i),this.fireEvent("selectionchange",this)))},acceptsNav:function(t,e,i){return!i.isHidden(e)&&i.isCellEditable(e,t)},onEditorKey:function(t,e){var i,s,n,r,o=e.getKey(),a=this.grid,l=a.lastEdit,h=a.activeEditor,d=e.shiftKey;o==e.TAB?(e.stopEvent(),h.completeEdit(),i=d?a.walkCells(h.row,h.col-1,-1,this.acceptsNav,this):a.walkCells(h.row,h.col+1,1,this.acceptsNav,this)):o==e.ENTER&&!1!==this.moveEditorOnEnter&&(i=d?a.walkCells(l.row-1,l.col,-1,this.acceptsNav,this):a.walkCells(l.row+1,l.col,1,this.acceptsNav,this)),i&&(n=i[0],r=i[1],this.onEditorSelect(n,l.row),a.isEditor&&a.editing&&(s=a.activeEditor)&&s.field.triggerBlur&&s.field.triggerBlur(),a.startEditing(n,r))},onEditorSelect:function(t,e){e!=t&&this.selectRow(t)},destroy:function(){Ext.destroy(this.rowNav),this.rowNav=null,Ext.grid.RowSelectionModel.superclass.destroy.call(this)}}),Ext.grid.Column=Ext.extend(Ext.util.Observable,{isColumn:!0,constructor:function(t){Ext.apply(this,t),Ext.isString(this.renderer)?this.renderer=Ext.util.Format[this.renderer]:Ext.isObject(this.renderer)&&(this.scope=this.renderer.scope,this.renderer=this.renderer.fn),this.scope||(this.scope=this);var e=this.editor;delete this.editor,this.setEditor(e),this.addEvents("click","contextmenu","dblclick","mousedown"),Ext.grid.Column.superclass.constructor.call(this)},processEvent:function(t,e,i,s,n){return this.fireEvent(t,this,i,s,e)},destroy:function(){this.setEditor&&this.setEditor(null),this.purgeListeners()},renderer:function(t){return t},getEditor:function(t){return!1!==this.editable?this.editor:null},setEditor:function(t){var e=this.editor;e&&(e.gridEditor?(e.gridEditor.destroy(),delete e.gridEditor):e.destroy()),this.editor=null,t&&(t.isXType||(t=Ext.create(t,"textfield")),this.editor=t)},getCellEditor:function(t){var e=this.getEditor(t);return e&&(e.startEdit||(e.gridEditor||(e.gridEditor=new Ext.grid.GridEditor(e)),e=e.gridEditor)),e}}),Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{trueText:"true",falseText:"false",undefinedText:" ",constructor:function(t){Ext.grid.BooleanColumn.superclass.constructor.call(this,t);var e=this.trueText,i=this.falseText,s=this.undefinedText;this.renderer=function(t){return void 0===t?s:t&&"false"!==t?e:i}}}),Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:"0,000.00",constructor:function(t){Ext.grid.NumberColumn.superclass.constructor.call(this,t),this.renderer=Ext.util.Format.numberRenderer(this.format)}}),Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:"m/d/Y",constructor:function(t){Ext.grid.DateColumn.superclass.constructor.call(this,t),this.renderer=Ext.util.Format.dateRenderer(this.format)}}),Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(t){Ext.grid.TemplateColumn.superclass.constructor.call(this,t);var s=!Ext.isPrimitive(this.tpl)&&this.tpl.compile?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(t,e,i){return s.apply(i.data)},this.tpl=s}}),Ext.grid.ActionColumn=Ext.extend(Ext.grid.Column,{header:" ",actionIdRe:/x-action-col-(\d+)/,altText:"",constructor:function(i){var s,n,r=this,o=i.items||(r.items=[r]),a=o.length;Ext.grid.ActionColumn.superclass.constructor.call(r,i),r.renderer=function(t,e){for(t=Ext.isFunction(i.renderer)&&i.renderer.apply(this,arguments)||"",e.css+=" x-action-col-cell",s=0;s";return t}},destroy:function(){return delete this.items,delete this.renderer,Ext.grid.ActionColumn.superclass.destroy.apply(this,arguments)},processEvent:function(t,e,i,s,n){var r,o,a=e.getTarget().className.match(this.actionIdRe);if(a&&(r=this.items[parseInt(a[1],10)]))if("click"==t)(o=r.handler||this.handler)&&o.call(r.scope||this.scope||this,i,s,n,r,e);else if("mousedown"==t&&!1!==r.stopSelection)return!1;return Ext.grid.ActionColumn.superclass.processEvent.apply(this,arguments)}}),Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn,actioncolumn:Ext.grid.ActionColumn},Ext.grid.RowNumberer=Ext.extend(Object,{header:"",width:23,sortable:!1,constructor:function(t){Ext.apply(this,t),this.rowspan&&(this.renderer=this.renderer.createDelegate(this))},fixed:!0,hideable:!1,menuDisabled:!0,dataIndex:"",id:"numberer",rowspan:void 0,renderer:function(t,e,i,s){return this.rowspan&&(e.cellAttr='rowspan="'+this.rowspan+'"'),s+1}}),Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:'
     
    ',width:20,sortable:!1,menuDisabled:!0,fixed:!0,hideable:!1,dataIndex:"",id:"checker",isColumn:!0,constructor:function(){Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this,arguments),this.checkOnly&&(this.handleMouseDown=Ext.emptyFn)},initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this),this.grid.on("render",function(){Ext.fly(this.grid.getView().innerHd).on("mousedown",this.onHdMouseDown,this)},this)},processEvent:function(t,e,i,s,n){return"mousedown"==t?(this.onMouseDown(e,e.getTarget()),!1):Ext.grid.Column.prototype.processEvent.apply(this,arguments)},onMouseDown:function(t,e){var i,s;0===t.button&&"x-grid3-row-checker"==e.className&&(t.stopEvent(),(i=t.getTarget(".x-grid3-row"))&&(s=i.rowIndex,this.isSelected(s)?this.deselectRow(s):(this.selectRow(s,!0),this.grid.getView().focusRow(s))))},onHdMouseDown:function(t,e){var i;"x-grid3-hd-checker"==e.className&&(t.stopEvent(),(i=Ext.fly(e.parentNode)).hasClass("x-grid3-hd-checker-on")?(i.removeClass("x-grid3-hd-checker-on"),this.clearSelections()):(i.addClass("x-grid3-hd-checker-on"),this.selectAll()))},renderer:function(t,e,i){return'
     
    '},onEditorSelect:function(t,e){e==t||this.checkOnly||this.selectRow(t)}}),Ext.grid.CellSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{constructor:function(t){Ext.apply(this,t),this.selection=null,this.addEvents("beforecellselect","cellselect","selectionchange"),Ext.grid.CellSelectionModel.superclass.constructor.call(this)},initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this),this.grid.on(Ext.EventManager.getKeyEvent(),this.handleKeyDown,this),this.grid.getView().on({scope:this,refresh:this.onViewChange,rowupdated:this.onRowUpdated,beforerowremoved:this.clearSelections,beforerowsinserted:this.clearSelections}),this.grid.isEditor&&this.grid.on("beforeedit",this.beforeEdit,this)},beforeEdit:function(t){this.select(t.row,t.column,!1,!0,t.record)},onRowUpdated:function(t,e,i){this.selection&&this.selection.record==i&&t.onCellSelect(e,this.selection.cell[1])},onViewChange:function(){this.clearSelections(!0)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(t){var e=this.selection;e&&(!0!==t&&this.grid.view.onCellDeselect(e.cell[0],e.cell[1]),this.selection=null,this.fireEvent("selectionchange",this,null))},hasSelection:function(){return!!this.selection},handleMouseDown:function(t,e,i,s){0!==s.button||this.isLocked()||this.select(e,i)},select:function(t,e,i,s,n){var r;!1!==this.fireEvent("beforecellselect",this,t,e)&&(this.clearSelections(),n=n||this.grid.store.getAt(t),this.selection={record:n,cell:[t,e]},i||((r=this.grid.getView()).onCellSelect(t,e),!0!==s&&r.focusCell(t,e)),this.fireEvent("cellselect",this,t,e),this.fireEvent("selectionchange",this,this.selection))},isSelectable:function(t,e,i){return!i.isHidden(e)},onEditorKey:function(t,e){e.getKey()==e.TAB&&this.handleKeyDown(e)},handleKeyDown:function(t){if(t.isNavKeyPress()){function e(t,e,i){return l.walkCells(t,e,i,l.isEditor&&l.editing?d.acceptsNav:d.isSelectable,d)}var i,s,n,r,o,a=t.getKey(),l=this.grid,h=this.selection,d=this;switch(a){case t.ESC:case t.PAGE_UP:case t.PAGE_DOWN:break;default:t.stopEvent()}if(h){switch(n=(i=h.cell)[0],r=i[1],a){case t.TAB:s=t.shiftKey?e(n,r-1,-1):e(n,r+1,1);break;case t.DOWN:s=e(n+1,r,1);break;case t.UP:s=e(n-1,r,-1);break;case t.RIGHT:s=e(n,r+1,1);break;case t.LEFT:s=e(n,r-1,-1);break;case t.ENTER:if(l.isEditor&&!l.editing)return void l.startEditing(n,r)}s&&(n=s[0],r=s[1],this.select(n,r),l.isEditor&&l.editing&&((o=l.activeEditor)&&o.field.triggerBlur&&o.field.triggerBlur(),l.startEditing(n,r)))}else(i=e(0,0,1))&&this.select(i[0],i[1])}},acceptsNav:function(t,e,i){return!i.isHidden(e)&&i.isCellEditable(e,t)}}),Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,forceValidation:!1,isEditor:!0,detectEdit:!1,autoEncode:!1,trackMouseOver:!1,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this),this.selModel||(this.selModel=new Ext.grid.CellSelectionModel),this.activeEditor=null,this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){var t;Ext.grid.EditorGridPanel.superclass.initEvents.call(this),this.getGridEl().on("mousewheel",this.stopEditing.createDelegate(this,[!0]),this),this.on("columnresize",this.stopEditing,this,[!0]),1==this.clicksToEdit?this.on("cellclick",this.onCellDblClick,this):(t=this.getView(),"auto"==this.clicksToEdit&&t.mainBody&&t.mainBody.on("mousedown",this.onAutoEditClick,this),this.on("celldblclick",this.onCellDblClick,this))},onResize:function(){Ext.grid.EditorGridPanel.superclass.onResize.apply(this,arguments);var t=this.activeEditor;this.editing&&t&&t.realign(!0)},onCellDblClick:function(t,e,i){this.startEditing(e,i)},onAutoEditClick:function(t,e){var i,s,n;0===t.button&&(i=this.view.findRowIndex(e),s=this.view.findCellIndex(e),!1!==i&&!1!==s&&(this.stopEditing(),this.selModel.getSelectedCell?(n=this.selModel.getSelectedCell())&&n[0]===i&&n[1]===s&&this.startEditing(i,s):this.selModel.isSelected(i)&&this.startEditing(i,s)))},onEditComplete:function(t,e,i){this.editing=!1,this.lastActiveEditor=this.activeEditor,this.activeEditor=null;var s,n=t.record,r=this.colModel.getDataIndex(t.col);e=this.postEditValue(e,i,n,r),!0!==this.forceValidation&&String(e)===String(i)||(!(s={grid:this,record:n,field:r,originalValue:i,value:e,row:t.row,column:t.col,cancel:!1})===this.fireEvent("validateedit",s)||s.cancel||String(e)===String(i)||(n.set(r,s.value),delete s.cancel,this.fireEvent("afteredit",s))),this.view.focusCell(t.row,t.col)},startEditing:function(t,e){if(this.stopEditing(),this.colModel.isCellEditable(e,t)){this.view.ensureVisible(t,e,!0);var i=this.store.getAt(t),s=this.colModel.getDataIndex(e),n={grid:this,record:i,field:s,value:i.data[s],row:t,column:e,cancel:!1};if(!1!==this.fireEvent("beforeedit",n)&&!n.cancel){this.editing=!0;var r=this.colModel.getCellEditor(e,t);if(!r)return;r.rendered||(r.parentEl=this.view.getEditorParent(r),r.on({scope:this,render:{fn:function(t){t.field.focus(!1,!0)},single:!0,scope:this},specialkey:function(t,e){this.getSelectionModel().onEditorKey(t,e)},complete:this.onEditComplete,canceledit:this.stopEditing.createDelegate(this,[!0])})),Ext.apply(r,{row:t,col:e,record:i}),this.lastEdit={row:t,col:e},(this.activeEditor=r).field.isXType("checkbox")&&(r.allowBlur=!1,this.setupCheckbox(r.field)),r.selectSameEditor=this.activeEditor==this.lastActiveEditor;var o=this.preEditValue(i,s);r.startEdit(this.view.getCell(t,e).firstChild,Ext.isDefined(o)?o:""),function(){delete r.selectSameEditor}.defer(50)}}},setupCheckbox:function(t){function e(){t.el.on("click",i.onCheckClick,i,{single:!0})}var i=this;t.rendered?e():t.on("render",e,null,{single:!0})},onCheckClick:function(){var t=this.activeEditor;t.allowBlur=!0,t.field.focus(!1,10)},preEditValue:function(t,e){var i=t.data[e];return this.autoEncode&&Ext.isString(i)?Ext.util.Format.htmlDecode(i):i},postEditValue:function(t,e,i,s){return this.autoEncode&&Ext.isString(t)?Ext.util.Format.htmlEncode(t):t},stopEditing:function(t){var e;this.editing&&((e=this.lastActiveEditor=this.activeEditor)&&(e[!0===t?"cancelEdit":"completeEdit"](),this.view.focusCell(e.row,e.col)),this.activeEditor=null),this.editing=!1}}),Ext.reg("editorgrid",Ext.grid.EditorGridPanel),Ext.grid.GridEditor=function(t,e){Ext.grid.GridEditor.superclass.constructor.call(this,t,e),t.monitorTab=!1},Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:!1,cls:"x-small-editor x-grid-editor",shim:!1,shadow:!1}),Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]),Ext.grid.PropertyStore=Ext.extend(Ext.util.Observable,{constructor:function(t,e){this.grid=t,this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord}),this.store.on("update",this.onUpdate,this),e&&this.setSource(e),Ext.grid.PropertyStore.superclass.constructor.call(this)},setSource:function(t){this.source=t,this.store.removeAll();var e=[];for(var i in t)this.isEditableValue(t[i])&&e.push(new Ext.grid.PropertyRecord({name:i,value:t[i]},i));this.store.loadRecords({records:e},{},!0)},onUpdate:function(t,e,i){var s,n;i==Ext.data.Record.EDIT&&(s=e.data.value,n=e.modified.value,!1!==this.grid.fireEvent("beforepropertychange",this.source,e.id,s,n)?(this.source[e.id]=s,e.commit(),this.grid.fireEvent("propertychange",this.source,e.id,s,n)):e.reject())},getProperty:function(t){return this.store.getAt(t)},isEditableValue:function(t){return Ext.isPrimitive(t)||Ext.isDate(t)},setValue:function(t,e,i){var s=this.getRec(t);s?(s.set("value",e),this.source[t]=e):i&&(this.source[t]=e,s=new Ext.grid.PropertyRecord({name:t,value:e},t),this.store.add(s))},remove:function(t){var e=this.getRec(t);e&&(this.store.remove(e),delete this.source[t])},getRec:function(t){return this.store.getById(t)},getSource:function(){return this.source}}),Ext.grid.PropertyColumnModel=Ext.extend(Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",constructor:function(t,e){var i=Ext.grid,s=Ext.form;this.grid=t,i.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:!0,dataIndex:"name",id:"name",menuDisabled:!0},{header:this.valueText,width:50,resizable:!1,dataIndex:"value",id:"value",menuDisabled:!0}]),this.store=e;var n=new s.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:this.trueText},{tag:"option",value:"false",html:this.falseText}]},getValue:function(){return"true"==this.el.dom.value}});this.editors={date:new i.GridEditor(new s.DateField({selectOnFocus:!0})),string:new i.GridEditor(new s.TextField({selectOnFocus:!0})),number:new i.GridEditor(new s.NumberField({selectOnFocus:!0,style:"text-align:left;"})),boolean:new i.GridEditor(n,{autoSize:"both"})},this.renderCellDelegate=this.renderCell.createDelegate(this),this.renderPropDelegate=this.renderProp.createDelegate(this)},renderDate:function(t){return t.dateFormat(this.dateFormat)},renderBool:function(t){return this[t?"trueText":"falseText"]},isCellEditable:function(t,e){return 1==t},getRenderer:function(t){return 1==t?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(t){return this.getPropertyName(t)},renderCell:function(t,e,i){var s=this.grid.customRenderers[i.get("name")];if(s)return s.apply(this,arguments);var n=t;return Ext.isDate(t)?n=this.renderDate(t):"boolean"==typeof t&&(n=this.renderBool(t)),Ext.util.Format.htmlEncode(n)},getPropertyName:function(t){var e=this.grid.propertyNames;return e&&e[t]?e[t]:t},getCellEditor:function(t,e){var i=this.store.getProperty(e),s=i.data.name,n=i.data.value;return this.grid.customEditors[s]?this.grid.customEditors[s]:Ext.isDate(n)?this.editors.date:"number"==typeof n?this.editors.number:"boolean"==typeof n?this.editors.boolean:this.editors.string},destroy:function(){Ext.grid.PropertyColumnModel.superclass.destroy.call(this),this.destroyEditors(this.editors),this.destroyEditors(this.grid.customEditors)},destroyEditors:function(t){for(var e in t)Ext.destroy(t[e])}}),Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:!1,stripeRows:!1,trackMouseOver:!1,clicksToEdit:1,enableHdMenu:!1,viewConfig:{forceFit:!0},initComponent:function(){this.customRenderers=this.customRenderers||{},this.customEditors=this.customEditors||{},this.lastEditRow=null;var t=new Ext.grid.PropertyStore(this);this.propStore=t;var e=new Ext.grid.PropertyColumnModel(this,t);t.store.sort("name","ASC"),this.addEvents("beforepropertychange","propertychange"),this.cm=e,this.ds=t.store,Ext.grid.PropertyGrid.superclass.initComponent.call(this),this.mon(this.selModel,"beforecellselect",function(t,e,i){if(0===i)return this.startEditing.defer(200,this,[e,1]),!1},this)},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments),this.getGridEl().addClass("x-props-grid")},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments),this.source&&this.setSource(this.source)},setSource:function(t){this.propStore.setSource(t)},getSource:function(){return this.propStore.getSource()},setProperty:function(t,e,i){this.propStore.setValue(t,e,i)},removeProperty:function(t){this.propStore.remove(t)}}),Ext.reg("propertygrid",Ext.grid.PropertyGrid),Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{groupByText:"Group By This Field",showGroupsText:"Show in Groups",hideGroupedColumn:!1,showGroupName:!0,startCollapsed:!1,enableGrouping:!0,enableGroupingMenu:!0,enableNoGroups:!0,emptyGroupText:"(None)",ignoreAdd:!1,groupTextTpl:"{text}",groupMode:"value",cancelEditOnToggle:!0,initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this),this.state={};var t=this.grid.getSelectionModel();t.on(t.selectRow?"beforerowselect":"beforecellselect",this.onBeforeRowSelect,this),this.startGroup||(this.startGroup=new Ext.XTemplate('
    ','
    ',this.groupTextTpl,"
    ",'
    ')),this.startGroup.compile(),this.endGroup||(this.endGroup="
    ")},findGroup:function(t){return Ext.fly(t).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(t,e,i){var s;this.canGroup()&&!this.ignoreAdd?(s=this.getScrollState(),this.fireEvent("beforerowsinserted",t,i,i+(e.length-1)),this.refresh(),this.restoreScroll(s),this.fireEvent("rowsinserted",t,i,i+(e.length-1))):this.canGroup()||Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)},onRemove:function(t,e,i,s){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var n=document.getElementById(e._groupId);n&&n.childNodes[1].childNodes.length<1&&Ext.removeNode(n),this.applyEmptyText()},refreshRow:function(t){1==this.ds.getCount()?this.refresh():(this.isUpdating=!0,Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments),this.isUpdating=!1)},beforeMenuShow:function(){var t,e=this.hmenu.items,i=!1===this.cm.config[this.hdCtxIndex].groupable;(t=e.get("groupBy"))&&t.setDisabled(i),(t=e.get("showGroups"))&&(t.setDisabled(i),t.setChecked(this.canGroup(),!0))},renderUI:function(){var t=Ext.grid.GroupingView.superclass.renderUI.call(this);return this.enableGroupingMenu&&this.hmenu&&(this.hmenu.add("-",{itemId:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"}),this.enableNoGroups&&this.hmenu.add({itemId:"showGroups",text:this.showGroupsText,checked:!0,checkHandler:this.onShowGroupsClick,scope:this}),this.hmenu.on("beforeshow",this.beforeMenuShow,this)),t},processEvent:function(t,e){Ext.grid.GroupingView.superclass.processEvent.call(this,t,e);var i,s,n,r,o=e.getTarget(".x-grid-group-hd",this.mainBody);o&&(i=this.getGroupField(),s=this.getPrefix(i),r=o.id.substring(s.length),n=new RegExp("gp-"+Ext.escapeRe(i)+"--hd"),((r=r.substr(0,r.length-3))||n.test(o.id))&&this.grid.fireEvent("group"+t,this.grid,i,r,e),"mousedown"==t&&0==e.button&&this.toggleGroup(o.parentNode))},onGroupByClick:function(){var t=this.grid;this.enableGrouping=!0,t.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex)),t.fireEvent("groupchange",t,t.store.getGroupState()),this.beforeMenuShow(),this.refresh()},onShowGroupsClick:function(t,e){(this.enableGrouping=e)?this.onGroupByClick():(this.grid.store.clearGrouping(),this.grid.fireEvent("groupchange",this,null))},toggleRowIndex:function(t,e){var i;!this.canGroup()||(i=this.getRow(t))&&this.toggleGroup(this.findGroup(i),e)},toggleGroup:function(t,e){var i=Ext.get(t),s=Ext.util.Format.htmlEncode(i.id);e=Ext.isDefined(e)?e:i.hasClass("x-grid-group-collapsed"),this.state[s]!==e&&(!1!==this.cancelEditOnToggle&&this.grid.stopEditing(!0),i[(this.state[s]=e)?"removeClass":"addClass"]("x-grid-group-collapsed"))},toggleAllGroups:function(t){for(var e=this.getGroups(),i=0,s=e.length;i 640) { + if (animate && window.innerWidth > 960) { var tree = Ext.getCmp('modx-leftbar-tabpanel').getEl(); tree.dom.style.opacity = 0; this.el.dom.style.left = '-' + this.el.dom.style.width; @@ -344,7 +344,7 @@ Ext.extend(MODx.Layout, Ext.Viewport, { if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){ return; } - if (animate && window.innerWidth > 640) { + if (animate && window.innerWidth > 960) { var tree = Ext.getCmp('modx-leftbar-tabpanel').getEl(); window.setTimeout(function() { tree.dom.style.visibility = 'visible'; @@ -511,7 +511,7 @@ Ext.extend(MODx.Layout, Ext.Viewport, { ,shift: true ,fn: function() { var t = Ext.getCmp('modx-resource-tree'); - if (t) { t.quickCreate(document,{},'modDocument','web',0); } + if (t) { t.quickCreate(document,{},'MODX\\Revolution\\modDocument','web',0); } } ,stopEvent: true }); diff --git a/manager/assets/modext/modx.jsgrps-min.js b/manager/assets/modext/modx.jsgrps-min.js index c79c7eaacaf..baadfe6fc3a 100644 --- a/manager/assets/modext/modx.jsgrps-min.js +++ b/manager/assets/modext/modx.jsgrps-min.js @@ -1,2 +1,2 @@ -Ext.onReady(function(){if("en"==MODx.config.cultureKey)return!1;Date.dayNames=[_("sunday"),_("monday"),_("tuesday"),_("wednesday"),_("thursday"),_("friday"),_("saturday")],Date.monthNames=[_("january"),_("february"),_("march"),_("april"),_("may"),_("june"),_("july"),_("august"),_("september"),_("october"),_("november"),_("december")],Ext.apply(Ext.grid.GridView.prototype,{sortAscText:_("ext_sortasc"),sortDescText:_("ext_sortdesc"),lockText:_("ext_column_lock"),unlockText:_("ext_column_unlock"),columnsText:_("ext_columns"),emptyText:_("ext_emptymsg")}),Ext.apply(Ext.DatePicker.prototype,{todayText:_("today"),todayTip:_("ext_today_tip"),minText:_("ext_mindate"),maxText:_("ext_maxdate"),monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:_("ext_nextmonth"),prevText:_("ext_prevmonth"),monthYearText:_("ext_choosemonth")}),Ext.MessageBox.buttonText={yes:_("yes"),no:_("no"),ok:_("ok"),cancel:_("cancel")},Ext.apply(Ext.PagingToolbar.prototype,{afterPageText:_("ext_afterpage"),beforePageText:_("ext_beforepage"),displayMsg:_("ext_displaying"),emptyMsg:_("ext_emptymsg"),firstText:_("ext_first"),prevText:_("ext_prev"),nextText:_("ext_next"),lastText:_("ext_last"),refreshText:_("ext_refresh")}),Ext.apply(Ext.Updater.prototype,{text:_("loading")}),Ext.apply(Ext.LoadMask.prototype,{msg:_("loading")}),Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:_("ext_splittip")}),Ext.apply(Ext.form.BasicForm.prototype,{waitTitle:_("please_wait")}),Ext.apply(Ext.form.ComboBox.prototype,{loadingText:_("loading")}),Ext.apply(Ext.form.Field.prototype,{invalidText:_("ext_invalidfield")}),Ext.apply(Ext.form.TextField.prototype,{minLengthText:_("ext_minlenfield"),maxLengthText:_("ext_maxlenfield"),invalidText:_("ext_invalidfield"),blankText:_("field_required")}),Ext.apply(Ext.form.NumberField.prototype,{minText:_("ext_minvalfield"),maxText:_("ext_maxvalfield"),nanText:_("ext_nanfield")}),Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:_("disabled"),disabledDatesText:_("disabled"),minText:_("ext_datemin"),maxText:_("ext_datemax"),invalidText:_("ext_dateinv")}),Ext.apply(Ext.form.VTypes,{emailText:_("ext_inv_email"),urlText:_("ext_inv_url"),alphaText:_("ext_inv_alpha"),alphanumText:_("ext_inv_alphanum")}),Ext.apply(Ext.grid.GroupingView.prototype,{emptyGroupText:_("ext_emptygroup"),groupByText:_("ext_groupby"),showGroupsText:_("ext_showgroups")}),Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:_("name"),valueText:_("value")}),Ext.apply(Ext.form.CheckboxGroup.prototype,{blankText:_("ext_checkboxinv")}),Ext.apply(Ext.form.RadioGroup.prototype,{blankText:_("ext_checkboxinv")}),Ext.apply(Ext.form.TimeField.prototype,{minText:_("ext_timemin"),maxText:_("ext_timemax"),invalidText:_("ext_timeinv")})}),Ext.namespace("MODx.util.Progress"),Ext.namespace("MODx.util.Format"),MODx.util.JSONReader=function(config){config=config||{},Ext.applyIf(config,{successProperty:"success",totalProperty:"total",root:"data"}),MODx.util.JSONReader.superclass.constructor.call(this,config,["id","msg"])},Ext.extend(MODx.util.JSONReader,Ext.data.JsonReader),Ext.reg("modx-json-reader",MODx.util.JSONReader),MODx.util.Progress={id:0,time:function(v,id,msg){msg=msg||_("saving"),MODx.util.Progress.id===id&&v<11&&Ext.MessageBox.updateProgress(v/10,msg)},reset:function(){MODx.util.Progress.id=MODx.util.Progress.id+1}},MODx.LockMask=function(config){config=config||{},Ext.applyIf(config,{msg:_("locked"),msgCls:"modx-lockmask"}),MODx.LockMask.superclass.constructor.call(this,config.el,config)},Ext.extend(MODx.LockMask,Ext.LoadMask,{locked:!1,toggle:function(){this.locked?(this.hide(),this.locked=!1):(this.show(),this.locked=!0)},lock:function(){this.locked=!0,this.show()},unlock:function(){this.locked=!1,this.hide()}}),Ext.reg("modx-lockmask",MODx.LockMask),Ext.override(Ext.form.BasicForm,{clearDirty:function(nodeToRecurse){(nodeToRecurse=nodeToRecurse||this).items.each(function(f){f.getValue&&(f.items?this.clearDirty(f):f.originalValue!=f.getValue()&&(f.originalValue=f.getValue()))},this)}}),MODx.StaticTextField=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticTextField.superclass.onRender.apply(this,arguments)}}),Ext.reg("statictextfield",MODx.StaticTextField),MODx.StaticBoolean=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(tf){this.readOnly=!0,this.disabled=!this.initialConfig.submitValue,MODx.StaticBoolean.superclass.onRender.apply(this,arguments),this.on("change",this.onChange,this)},setValue:function(v){v=1===v?(this.addClass("green"),_("yes")):(this.addClass("red"),_("no")),MODx.StaticBoolean.superclass.setValue.apply(this,arguments)}}),Ext.reg("staticboolean",MODx.StaticBoolean),MODx.util.safeHtml=function(input,allowedTags,allowedAttributes){var strip=function(input,allowedTags,allowedAttributes){return input.replace(tags,function($0,$1){return-1")?$0:""}).replace(attributes,function($0,$1){return-1
    ")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),allowedAttributes=(((allowedAttributes||"href,class")+"").toLowerCase().match(/[a-z\-,]*/g)||[]).join("").concat(",");var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,attributes=/([a-z][a-z0-9]*)\s*=\s*".*?"/gi;for(input=input.replace(/|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/href(\s*?=\s*?(["'])javascript:.*?\2|\s*?=\s*?javascript:.*?(?![^> ]))/gi,'href="javascript:void(0)"');input.length!==(input=strip(input,allowedTags,allowedAttributes)).length;);return input.replace(/on([a-z][a-z0-9]*\s*=)/gi,"on​$1")},Ext.override(Ext.form.Checkbox,{setBoxLabel:function(boxLabel){this.boxLabel=boxLabel,this.rendered&&this.wrap.child(".x-form-cb-label").update(boxLabel)}});var FieldSetonRender=Ext.form.FieldSet.prototype.onRender;Ext.override(Ext.form.FieldSet,{onRender:function(ct,position){if(FieldSetonRender.call(this,ct,position),this.checkboxToggle){var trigger=this.el.dom.getElementsByClassName(this.headerTextCls)[0],elem=this;trigger&&trigger.addEventListener("click",function(e){elem.checkbox.dom.click(e)},!1)}}}),Array.prototype.in_array=function(p_val){for(var i=0,l=this.length;i',elbowMarkup=n.attributes.pseudoroot?'':'',buf=['
  • ','',this.indentMarkup,"",elbowMarkup,iconMarkup,cb?'':"/>"):"",'',renderer(a),"
    ",'',"
  • "].join("");!0!==bulkRender&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())?this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,buf):this.wrap=Ext.DomHelper.insertHtml("beforeEnd",targetNode,buf),this.elNode=this.wrap.childNodes[0],this.ctNode=this.wrap.childNodes[1];var cs=this.elNode.childNodes;this.indentNode=cs[0],this.ecNode=cs[1],this.iconNode=cs[2];var index=3;cb&&(this.checkbox=cs[3],this.checkbox.defaultChecked=this.checkbox.checked,index++),this.anchor=cs[index],this.textNode=cs[index].firstChild},renderItemText:function(item){return Ext.util.Format.htmlEncode(item.text)},getChildIndent:function(){if(!this.childIndent){for(var buf=[],p=this.node;p;)(!p.isRoot||p.isRoot&&p.ownerTree.rootVisible)&&!p.attributes.pseudoroot&&(p.isLast()?buf.unshift(''):buf.unshift('')),p=p.parentNode;this.childIndent=buf.join("")}return this.childIndent}}),Ext.override(Ext.form.Action.Submit,{handleResponse:function(response){var m=Ext.decode(response.responseText);if(this.form.errorReader){var rs=this.form.errorReader.read(response),errors=[];if(rs.records)for(var i=0,len=rs.records.length;i';document.getElementById("flashcopier").innerHTML=divinfo}}},MODx.util.Format={dateFromTimestamp:function(timestamp,date,time,defaultValue){if(void 0===date&&(date=!0),void 0===time&&(time=!0),void 0===defaultValue&&(defaultValue=""),!(0<(timestamp=parseInt(timestamp))))return defaultValue;10===timestamp.toString().length&&(timestamp*=1e3);var format=[];return!0===date&&format.push(MODx.config.manager_date_format),!0===time&&format.push(MODx.config.manager_time_format),0===format.length?defaultValue:(format=format.join(" "),new Date(timestamp).format(format))}},MODx.util.getHeaderBreadCrumbs=function(header,trail){return"string"==typeof header&&(header={id:header,xtype:"modx-header"}),void 0===trail&&(trail=[]),Array.isArray(trail)||(trail=[trail]),{xtype:"modx-breadcrumbs-panel",id:"modx-header-breadcrumbs",cls:"modx-header-breadcrumbs",desc:"",bdMarkup:'',init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0})},trail:trail,listeners:{afterrender:function(){this.renderTrail()}},renderTrail:function(){this.tpl.overwrite(this.body.dom.lastElementChild,{trail:this.trail})},updateTrail:function(trail,replace){if(void 0===replace&&(replace=!1),!0===replace)return this.trail=Array.isArray(trail)?trail:[trail],this.renderTrail(),!0;if(Array.isArray(trail)){for(var i=0;i
    ux-action-right {cls}" style="{style}" qtip="{qtip}">{text}
    ',tplRow:'
    ux-row-action-text" style="{hide}{style}" qtip="{qtip}">{text}
    ',hideMode:"visibility",widthIntercept:4,widthSlope:21,init:function(g){this.grid=g,this.id=this.id||Ext.id();var h=g.getColumnModel().lookup;delete h[void 0],(h[this.id]=this).tpl||(this.tpl=this.processActions(this.actions)),this.autoWidth&&(this.width=this.widthSlope*this.actions.length+this.widthIntercept,this.fixed=!0);var i=g.getView(),j={scope:this};j[this.actionEvent]=this.onClick,g.afterRender=g.afterRender.createSequence(function(){i.mainBody.on(j),g.on("destroy",this.purgeListeners,this)},this),this.renderer||(this.renderer=function(a,b,c,d,e,f){return b.css+=(b.css?" ":"")+"ux-row-action-cell",this.tpl.apply(this.getData(a,b,c,d,e,f))}.createDelegate(this)),i.groupTextTpl&&this.groupActions&&(i.interceptMouse=i.interceptMouse.createInterceptor(function(e){if(e.getTarget(".ux-grow-action-item"))return!1}),i.groupTextTpl='
    '+i.groupTextTpl+"
    "+this.processActions(this.groupActions,this.tplGroup).apply()),!0===this.keepSelection&&(g.processEvent=g.processEvent.createInterceptor(function(a,e){if("mousedown"===a)return!this.getAction(e)},this))},getData:function(a,b,c,d,e,f){return c.data||{}},processActions:function(b,c){var d=[];Ext.each(b,function(a,i){a.iconCls&&"function"==typeof(a.callback||a.cb)&&(this.callbacks=this.callbacks||{},this.callbacks[a.iconCls]=a.callback||a.cb);var o={cls:a.iconIndex?"{"+a.iconIndex+"}":a.iconCls?a.iconCls:"",qtip:a.qtipIndex?"{"+a.qtipIndex+"}":a.tooltip||a.qtip?a.tooltip||a.qtip:"",text:a.textIndex?"{"+a.textIndex+"}":a.text?a.text:"",hide:a.hideIndex?''+("display"===this.hideMode?"display:none":"visibility:hidden")+";":a.hide?"display"===this.hideMode?"display:none":"visibility:hidden;":"",align:a.align||"right",style:a.style?a.style:""};d.push(o)},this);var e=new Ext.XTemplate(c||this.tplRow);return new Ext.XTemplate(e.apply({actions:d}))},getAction:function(e){var a=!1,t=e.getTarget(".ux-row-action-item");return t&&(a=t.className.replace(/ux-row-action-item /,""))&&(a=(a=a.replace(/ ux-row-action-text/,"")).trim()),a},onClick:function(e,a){var b=this.grid.getView(),c=e.getTarget(".x-grid3-row"),d=b.findCellIndex(a.parentNode.parentNode),f=this.getAction(e);if(!1!==c&&!1!==d&&!1!==f){var g=this.grid.store.getAt(c.rowIndex);if(this.callbacks&&"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,g,f,c.rowIndex,d),!0!==this.eventsSuspended&&!1===this.fireEvent("beforeaction",this.grid,g,f,c.rowIndex,d))return;!0!==this.eventsSuspended&&this.fireEvent("action",this.grid,g,f,c.rowIndex,d)}if(t=e.getTarget(".ux-grow-action-item"),t){var j,h=b.findGroup(a),i=h?h.id.replace(/ext-gen[0-9]+-gp-/,""):null;if(i){var k=new RegExp(RegExp.escape(i));j=(j=this.grid.store.queryBy(function(r){return r._groupId.match(k)}))?j.items:[]}if(f=t.className.replace(/ux-grow-action-item (ux-action-right )*/,""),"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,j,f,i),!0!==this.eventsSuspended&&!1===this.fireEvent("beforegroupaction",this.grid,j,f,i))return!1;this.fireEvent("groupaction",this.grid,j,f,i)}}}),Ext.reg("rowactions",Ext.ux.grid.RowActions),Ext.SwitchButton=Ext.extend(Ext.Component,{initComponent:function(){Ext.SwitchButton.superclass.initComponent.call(this);var mc=new Ext.util.MixedCollection;mc.addAll(this.items),this.items=mc,this.addEvents("change"),this.handler&&this.on("change",this.handler,this.scope||this)},onRender:function(ct,position){var el=document.createElement("table");el.cellSpacing=0,el.className="x-rbtn",el.id=this.id;var row=document.createElement("tr");el.appendChild(document.createElement("tbody")).appendChild(row);var count=this.items.length,last=count-1;this.activeItem=this.items.get(this.activeItem);for(var i=0;idata.rowIndex&&this.rowPosition<0&&rindex--,rindexdata.rowIndex&&1','
    {value}
    ',""),MODx.grid||(MODx.grid={}),MODx.grid.ComboColumn=Ext.extend(Ext.grid.Column,{gridId:void 0,constructor:function(cfg){MODx.grid.ComboColumn.superclass.constructor.call(this,cfg),this.renderer=this.editor&&this.editor.triggerAction?MODx.grid.ComboBoxRenderer(this.editor,this.gridId,cfg.renderer):function(value){return value}}}),Ext.grid.Column.types.combocolumn=MODx.grid.ComboColumn,MODx.grid.ComboBoxRenderer=function(combo,gridId,currentRenderer){return function(value,metaData,record,rowIndex,colIndex,store){if(currentRenderer){if("function"==typeof currentRenderer.fn){var scope=!!currentRenderer.scope&¤tRenderer.scope;currentRenderer=currentRenderer.fn.bind(scope)}"function"==typeof currentRenderer&&(value=currentRenderer(value,metaData,record,rowIndex,colIndex,store))}return 0==combo.store.getCount()&&gridId?(combo.store.on("load",function(){var grid=Ext.getCmp(gridId);grid&&grid.getView().refresh()},this,{single:!0}),value):function(value){var idx=combo.store.find(combo.valueField,value),rec=combo.store.getAt(idx);return rec?rec.get(combo.displayField):value}(value)}},Ext.Button.buttonTemplate=new Ext.Template(''),Ext.Button.buttonTemplate.compile(),Ext.TabPanel.prototype.itemTpl=new Ext.Template('
  • ','{text}
  • '),Ext.TabPanel.prototype.itemTpl.disableFormats=!0,Ext.TabPanel.prototype.itemTpl.compile(),Ext.override(Ext.form.TimeField,{initDate:"2/1/2008"}),Ext.ns("Ext.ux.form"),Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{dateValidator:null,defaultAutoCreate:{tag:"input",type:"hidden"},dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",hiddenFormatForTimeHidden:"Y-m-d 00:00:00",otherToNow:!0,timePosition:"right",timeValidator:null,timeWidth:100,dateFormat:"m/d/y",timeFormat:"g:i A",maxDateValue:"",minDateValue:"",timeIncrement:15,maxTimeValue:null,minTimeValue:null,disabledDates:null,hideTime:!1,initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this),this.hasOwnProperty("offset_time")&&!isNaN(this.offset_time)||(this.offset_time=0),this.hideTime&&(this.hiddenFormat=this.hiddenFormatForTimeHidden);var dateConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.dateValidator,disabledDates:this.disabledDates||null,disabledDays:this.disabledDays||[],showToday:this.showToday||!0,maxValue:this.maxDateValue||"",minValue:this.minDateValue||"",startDay:this.startDay||0,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig);this.df=new Ext.form.DateField(dateConfig),delete(this.df.ownerCt=this).dateFormat,delete this.disabledDates,delete this.disabledDays,delete this.maxDateValue,delete this.minDateValue,delete this.startDay;var timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.timeValidator,increment:this.timeIncrement||15,maxValue:this.maxTimeValue||null,minValue:this.minTimeValue||null,hidden:this.hideTime,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig),delete(this.tf.ownerCt=this).timeFormat,delete this.maxTimeValue,delete this.minTimeValue,delete this.timeIncrement,this.relayEvents(this.df,["focus","specialkey","invalid","valid"]),this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]),this.on("specialkey",this.onSpecialKey,this)},onRender:function(ct,position){if(!this.isRendered){var t;if(Ext.ux.form.DateTime.superclass.onRender.call(this,ct,position),t="below"===this.timePosition||"bellow"===this.timePosition?Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},!0):Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},!0),this.tableEl=t,this.wrap=t.wrap({cls:"x-form-field-wrap x-datetime-wrap"}),this.wrap.on("mousedown",this.onMouseDown,this,{delay:10}),this.df.render(t.child("td.ux-datetime-date")),this.tf.render(t.child("td.ux-datetime-time")),this.df.el.swallowEvent(["keydown","keypress"]),this.tf.el.swallowEvent(["keydown","keypress"]),"side"===this.msgTarget){var elp=this.el.findParent(".x-form-element",10,!0);elp&&(this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"}));var o={errorIcon:this.errorIcon,msgTarget:"side",alignErrorIcon:this.alignErrorIcon.createDelegate(this)};Ext.apply(this.df,o),Ext.apply(this.tf,o)}this.el.dom.name=this.hiddenName||this.name||this.id,this.df.el.dom.removeAttribute("name"),this.tf.el.dom.removeAttribute("name"),this.isRendered=!0,this.updateHidden()}},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0])},initDateValue:function(){this.dateValue=this.otherToNow?new Date:new Date(1970,0,1,0,0,0)},clearInvalid:function(){this.df.clearInvalid(),this.tf.clearInvalid()},markInvalid:function(msg){this.df.markInvalid(msg),this.tf.markInvalid(msg)},beforeDestroy:function(){this.isRendered&&(this.wrap.removeAllListeners(),this.wrap.remove(),this.tableEl.remove(),this.df.destroy(),this.tf.destroy())},disable:function(){return this.isRendered&&(this.df.disabled=this.disabled,this.df.onDisable(),this.tf.onDisable()),this.disabled=!0,this.df.disabled=!0,this.tf.disabled=!0,this.fireEvent("disable",this),this},enable:function(){return this.rendered&&(this.df.onEnable(),this.tf.onEnable()),this.disabled=!1,this.df.disabled=!1,this.tf.disabled=!1,this.fireEvent("enable",this),this},focus:function(){this.df.focus()},getPositionEl:function(){return this.wrap},getResizeEl:function(){return this.wrap},getValue:function(){return this.dateValue?new Date(this.dateValue):""},isValid:function(){return this.df.isValid()&&this.tf.isValid()},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible()},onBlur:function(f){this.wrapClick&&(f.focus(),this.wrapClick=!1),f===this.df?this.updateDate():this.updateTime(),this.updateHidden(),this.validate(),function(){if(!this.df.hasFocus&&!this.tf.hasFocus){var v=this.getValue();String(v)!==String(this.startValue)&&this.fireEvent("change",this,v,this.startValue),this.hasFocus=!1,this.fireEvent("blur",this)}}.defer(100,this)},onFocus:function(){this.hasFocus||(this.hasFocus=!0,this.startValue=this.getValue(),this.fireEvent("focus",this))},onMouseDown:function(e){this.disabled||(this.wrapClick="td"===e.target.nodeName.toLowerCase())},onSpecialKey:function(t,e){var key=e.getKey();key===e.TAB&&(t!==this.df||e.shiftKey||(e.stopEvent(),this.tf.focus()),t===this.tf&&e.shiftKey&&(e.stopEvent(),this.df.focus()),this.updateValue()),key===e.ENTER&&this.updateValue()},reset:function(){this.df.setValue(this.originalValue),this.tf.setValue(this.originalValue)},setDate:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.df.setValue(date)},setTime:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.tf.setValue(date)},setSize:function(w,h){w&&("below"===this.timePosition?(this.df.setSize(w,h),this.tf.setSize(w,h),Ext.isIE&&(this.df.el.up("td").setWidth(w),this.tf.el.up("td").setWidth(w))):(this.df.setSize(w-this.timeWidth-4,h),this.tf.setSize(this.timeWidth,h),Ext.isIE&&(this.df.el.up("td").setWidth(w-this.timeWidth-4),this.tf.el.up("td").setWidth(this.timeWidth))))},setValue:function(val){if(val||!0!==this.emptyToNow){if(!val)return this.setDate(""),this.setTime(""),void this.updateValue();var da;"number"==typeof val?val=new Date(val):"string"==typeof val&&this.hiddenFormat&&(val=Date.parseDate(val,this.hiddenFormat)),(val=val||new Date(1970,0,1,0,0,0))instanceof Date?(this.setDate(val),this.setTime(val),this.dateValue=new Date(Ext.isIE?val.getTime():val)):(da=val.split(this.dtSeparator),this.setDate(da[0]),da[1]&&(da[2]&&(da[1]+=da[2]),this.setTime(da[1]))),this.updateValue()}else this.setValue(new Date)},setVisible:function(visible){return visible?(this.df.show(),this.tf.show()):(this.df.hide(),this.tf.hide()),this},show:function(){return this.setVisible(!0)},hide:function(){return this.setVisible(!1)},updateDate:function(){var d=this.df.getValue();d?(this.dateValue instanceof Date||(this.initDateValue(),this.tf.getValue()||this.setTime(this.dateValue)),this.dateValue.setMonth(0),this.dateValue.setFullYear(d.getFullYear()),this.dateValue.setMonth(d.getMonth(),d.getDate())):(this.dateValue="",this.setTime(""))},updateTime:function(){var t=this.tf.getValue();!t||t instanceof Date||(t=Date.parseDate(t,this.tf.format)),t&&!this.df.getValue()&&(this.initDateValue(),this.setDate(this.dateValue)),this.dateValue instanceof Date&&(t?(this.dateValue.setHours(t.getHours()),this.dateValue.setMinutes(t.getMinutes()),this.dateValue.setSeconds(t.getSeconds())):(this.dateValue.setHours(0),this.dateValue.setMinutes(0),this.dateValue.setSeconds(0)))},updateHidden:function(){if(this.isRendered){var value="";this.dateValue instanceof Date&&(value=this.dateValue.add(Date.MINUTE,0-60*new Number(this.offset_time)).format(this.hiddenFormat)),this.el.dom.value=value}},updateValue:function(){this.updateDate(),this.updateTime(),this.updateHidden()},validate:function(){return this.df.validate()&&this.tf.validate()},renderer:function(field){var format=field.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;return format+=" "+(field.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat),function(val){return Ext.util.Format.date(val,format)}}}),Ext.reg("xdatetime",Ext.ux.form.DateTime),Ext.namespace("Ext.ux.Utils"),Ext.ux.Utils.EventQueue=function(handler,scope){if(!handler)throw"Handler is required.";this.handler=handler,this.scope=scope||window,this.queue=[],this.is_processing=!1,this.postEvent=function(event,data){data=data||null,this.queue.push({event:event,data:data}),this.is_processing||this.process()},this.flushEventQueue=function(){this.queue=[]},this.process=function(){for(;0 ").compile()},createForm:function(){this.form=Ext.DomHelper.append(this.body,{tag:"form",method:"post",action:this.url,style:"position: absolute; left: -100px; top: -100px; width: 100px; height: 100px; clear: both;"})},createProgressBar:function(){this.progress_bar=this.add(new Ext.ProgressBar({x:0,y:0,anchor:"0",value:0,text:this.i18n.progress_waiting_text}))},createGrid:function(){var store=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},Ext.ux.UploadDialog.FileRecord),sortInfo:{field:"state",direction:"DESC"},pruneModifiedRecords:!0}),cm=new Ext.grid.ColumnModel([{header:this.i18n.state_col_title,width:this.i18n.state_col_width,resizable:!1,dataIndex:"state",sortable:!0,renderer:this.renderStateCell.createDelegate(this)},{header:this.i18n.filename_col_title,width:this.i18n.filename_col_width,dataIndex:"filename",sortable:!0,renderer:this.renderFilenameCell.createDelegate(this)},{header:this.i18n.note_col_title,width:this.i18n.note_col_width,dataIndex:"note",sortable:!0,renderer:this.renderNoteCell.createDelegate(this)}]);this.grid_panel=new Ext.grid.GridPanel({ds:store,cm:cm,layout:"fit",height:this.height-100,region:"center",x:0,y:22,border:!0,viewConfig:{autoFill:!0,forceFit:!0},bbar:new Ext.Toolbar}),this.grid_panel.on("render",this.onGridRender,this),this.add(this.grid_panel),this.grid_panel.getSelectionModel().on("selectionchange",this.onGridSelectionChange,this)},fillToolbar:function(){var tb=this.grid_panel.getBottomToolbar();tb.x_buttons={},tb.x_buttons.add=tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({input_name:this.post_var_name,text:this.i18n.add_btn_text,tooltip:this.i18n.add_btn_tip,iconCls:"ext-ux-uploaddialog-addbtn",handler:this.onAddButtonFileSelected,scope:this})),tb.x_buttons.remove=tb.addButton({text:this.i18n.remove_btn_text,tooltip:this.i18n.remove_btn_tip,iconCls:"ext-ux-uploaddialog-removebtn",handler:this.onRemoveButtonClick,scope:this}),tb.x_buttons.reset=tb.addButton({text:this.i18n.reset_btn_text,tooltip:this.i18n.reset_btn_tip,iconCls:"ext-ux-uploaddialog-resetbtn",handler:this.onResetButtonClick,scope:this}),tb.x_buttons.upload=tb.addButton({text:this.i18n.upload_btn_start_text,tooltip:this.i18n.upload_btn_start_tip,iconCls:"ext-ux-uploaddialog-uploadstartbtn",handler:this.onUploadButtonClick,scope:this}),tb.x_buttons.close=tb.addButton({text:this.i18n.close_btn_text,tooltip:this.i18n.close_btn_tip,handler:this.onCloseButtonClick,scope:this})},renderStateCell:function(data,cell,record,row_index,column_index,store){return this.state_tpl.apply({state:data})},renderFilenameCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},renderNoteCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},getFileExtension:function(filename){var result=null,parts=filename.split(".");return 1((?:.|\n)*)<\/pre>$/i);filter&&(rt=filter[1]),json_response=Ext.util.JSON.decode(rt)}catch(e){}var data={record:options.record,response:json_response};"success"in json_response&&json_response.success?this.fsa.postEvent("file-upload-success",data):this.fsa.postEvent("file-upload-error",data)},onAjaxFailure:function(response,options){var data={record:options.record,response:{success:!1,error:this.i18n.note_upload_failed}};this.fsa.postEvent("file-upload-failed",data)},startUpload:function(){this.fsa.postEvent("start-upload")},stopUpload:function(){this.fsa.postEvent("stop-upload")},getUrl:function(){return this.url},setUrl:function(url){this.url=url},getBaseParams:function(){return this.base_params},setBaseParams:function(params){this.base_params=params},getUploadAutostart:function(){return this.upload_autostart},setUploadAutostart:function(value){this.upload_autostart=value},getMakeReload:function(){return this.Make_Reload},setMakeReload:function(value){this.Make_Reload=value},getAllowCloseOnUpload:function(){return this.allow_close_on_upload},setAllowCloseOnUpload:function(value){this.allow_close_on_upload},getResetOnHide:function(){return this.reset_on_hide},setResetOnHide:function(value){this.reset_on_hide=value},getPermittedExtensions:function(){return this.permitted_extensions},setPermittedExtensions:function(value){this.permitted_extensions=value},isUploading:function(){return this.is_uploading},isNotEmptyQueue:function(){return 0=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(store,records,options){var q=options.params[this.queryParam]||store.baseParams[this.queryParam]||"",isValuesQuery=options.params[this.queryValuesIndicator]||store.baseParams[this.queryValuesIndicator];if(this.removeValuesFromStore&&this.store.each(function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)},this),isValuesQuery){var params=q.split(this.queryValuesDelimiter);Ext.each(params,function(p){this.remoteLookup.remove(p);var rec=this.findRecord(this.valueField,p);rec&&this.addRecord(rec)},this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())}""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,function(r){if("object"==typeof r&&r[this.valueField]===q){if(this.remoteLookup.remove(r),records.length&&records[0].get(this.valueField)===q)return void this.addRecord(records[0]);var rec=this.createRecord(r);return this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),void function(){this.isExpanded()&&this.collapse()}.defer(10,this)}},this);var toAdd=[];if(""===q)Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)},this);else{var re=new RegExp(Ext.escapeRe(q)+".*","i");Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)},this)}this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;if(o.clearCurrentFocus().collapse(),o.navigateItemsWithTab)this.focus();else{o.el.dom.focus();(function(){this.onLnkFocus(),o.currentFocus=this}).defer(10,this)}},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(ct,position){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,ct,position);var el=this.el;el&&el.remove(),this.el=el=ct.createChild({tag:"li"},ct.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);var cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"===btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(dir){var el=this.el["left"==dir?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){var actionDestroy=function(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()};return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields)if(this.config.fields.hasOwnProperty(i)){var f=this.config.fields[i];f.xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f)}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "].indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id:id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,function(e){"yes"===e&&Ext.callback(el.handler,this)},el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j'+_("file_err_filter")+"",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update('
    '+_("data_err_load")+"
    ")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn,targs=this.getTemplateArgs();targs.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,targs,!0):this.template.append(ct,targs,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,12]],triggerConfig:{tag:"button",id:"modx-uberbar-trigger",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off",tabindex:"0",hasfocus:!0,"aria-label":_("search")},hasfocus:!0,minChars:1,displayField:"name",valueField:"_action",width:380,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','
    ','','',"

    {label:htmlEncode}

    ","
    ",'

    {name:htmlEncode} – {description:htmlEncode}

    ',"
    ","
    ",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"modDocument":return"file";case"modSymLink":return"files-o";case"modWebLink":return"link";case"modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label?values.label:_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"Search/Search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,afterrender:function(){document.getElementById("modx-manager-search").onclick=function(e){e.stopPropagation()}},scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.blur(),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){if(!this.list){var cls="x-combo-list",listParent=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:listParent,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(listParent)}),this.list.on("click",function(e){e.stopPropagation()});var lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='
    {'+this.displayField+"}
    "),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()},this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()},this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px"))}},onTypeAhead:function(){},onSelect:function(record,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();var target="?a="+record.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},hideBar:function(){},focusBar:function(){this.selectText()},blurBar:function(){},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()}),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,a){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,a]),this.fireEvent("success",{form:f,result:a.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);var lastActiveEle=Ext.state.Manager.get("curFocus");if(lastActiveEle&&""!=lastActiveEle){Ext.state.Manager.clear("curFocus");var initFocus=document.getElementById(lastActiveEle);initFocus&&initFocus.focus()}}}),!0)},focusFirstField:function(){if(0",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'

    {text}

    ',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:'
      '+"{text}

    {text}

    ",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var newInstance=srcInstance.constructor();for(var i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data).hasOwnProperty("trail")&&data.trail.unshift(this.root);this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(e){for(var target=e.getTarget(),index=1,parent=target.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;0";MODx.msg.alert(_("error"),status+resp.responseText)}}}})}),!0===getStore?(config.store.load(),config.store):(MODx.combo.ComboBox.superclass.constructor.call(this,config),this.config=config,this.addEvents({loaded:!0}),this.on("collapse",function(){this.wrap.removeClass("x-trigger-wrap-open")}),this.store.on("load",function(){this.fireEvent("loaded",this),this.loaded=!0},this,{single:!0}),this)},Ext.extend(MODx.combo.ComboBox,Ext.form.ComboBox,{expand:function(){if(!this.isExpanded()&&this.hasFocus){if(this.wrap.addClass("x-trigger-wrap-open"),"remote"==this.mode&&!this.loaded&&this.tries<4)return this.tries+=1,Ext.defer(this.expand,250,this),!1;this.tries=0,(this.title||this.pageSize)&&(this.assetHeight=0,this.title&&(this.assetHeight+=this.header.getHeight()),this.pageSize
    {name:htmlEncode}',"
    {description:htmlEncode}
    ")}),MODx.combo.UserGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-usergroup",MODx.combo.UserGroup),MODx.combo.UserGroupRole=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList"}}),MODx.combo.UserGroupRole.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroupRole,MODx.combo.ComboBox),Ext.reg("modx-combo-usergrouprole",MODx.combo.UserGroupRole),MODx.combo.EventGroup=function(config){config=config||{},Ext.applyIf(config,{name:"group",hiddenName:"group",displayField:"name",valueField:"name",fields:["name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Event/GroupList"},tpl:new Ext.XTemplate('
    {name:htmlEncode}',"
    ")}),MODx.combo.EventGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.EventGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-eventgroup",MODx.combo.EventGroup),MODx.combo.ResourceGroup=function(config){config=config||{},Ext.applyIf(config,{name:"resourcegroup",hiddenName:"resourcegroup",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/ResourceGroup/GetList"}}),MODx.combo.ResourceGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ResourceGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-resourcegroup",MODx.combo.ResourceGroup),MODx.combo.Context=function(config){config=config||{},Ext.applyIf(config,{name:"context",hiddenName:"context",displayField:"key",valueField:"key",fields:["key","name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Context/GetList",exclude:config.exclude||""},tpl:new Ext.XTemplate('
    {name:htmlEncode} ({key:htmlEncode})
    ')}),MODx.combo.Context.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Context,MODx.combo.ComboBox),Ext.reg("modx-combo-context",MODx.combo.Context),MODx.combo.Policy=function(config){config=config||{},Ext.applyIf(config,{name:"policy",hiddenName:"policy",displayField:"name",valueField:"id",fields:["id","name","permissions"],allowBlank:!1,editable:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Access/Policy/GetList"}}),MODx.combo.Policy.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Policy,MODx.combo.ComboBox),Ext.reg("modx-combo-policy",MODx.combo.Policy),MODx.combo.Template=function(config){config=config||{},Ext.applyIf(config,{name:"template",hiddenName:"template",displayField:"templatename",valueField:"id",pageSize:20,fields:["id","templatename","description","category_name"],tpl:new Ext.XTemplate('
    {templatename:htmlEncode}',' - {category_name:htmlEncode}',"
    {description:htmlEncode()}
    "),url:MODx.config.connector_url,baseParams:{action:"Element/Template/GetList",combo:1},allowBlank:!0}),MODx.combo.Template.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Template,MODx.combo.ComboBox),Ext.reg("modx-combo-template",MODx.combo.Template),MODx.combo.Category=function(config){config=config||{},Ext.applyIf(config,{name:"category",hiddenName:"category",displayField:"name",valueField:"id",mode:"remote",fields:["id","category","parent","name"],forceSelection:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Element/Category/GetList",showNone:!0,limit:0}}),MODx.combo.Category.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Category,MODx.combo.ComboBox,{_onblur:function(t,e){var v=this.getRawValue();this.setRawValue(v),this.setValue(v,!0)}}),Ext.reg("modx-combo-category",MODx.combo.Category),MODx.combo.Language=function(config){config=config||{},Ext.applyIf(config,{name:"language",hiddenName:"language",displayField:"name",valueField:"name",fields:["name"],typeAhead:!0,minChars:1,editable:!0,allowBlank:!0,url:MODx.config.connector_url,baseParams:{action:"System/Language/GetList"}}),MODx.combo.Language.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Language,MODx.combo.ComboBox),Ext.reg("modx-combo-language",MODx.combo.Language),MODx.combo.Charset=function(config){config=config||{},Ext.applyIf(config,{name:"charset",hiddenName:"charset",displayField:"text",valueField:"value",fields:["value","text"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Charset/GetList"}}),MODx.combo.Charset.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Charset,MODx.combo.ComboBox),Ext.reg("modx-combo-charset",MODx.combo.Charset),MODx.combo.RTE=function(config){config=config||{},Ext.applyIf(config,{name:"rte",hiddenName:"rte",displayField:"value",valueField:"value",fields:["value"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Rte/GetList"}}),MODx.combo.RTE.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.RTE,MODx.combo.ComboBox),Ext.reg("modx-combo-rte",MODx.combo.RTE),MODx.combo.Role=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList",addNone:!0}}),MODx.combo.Role.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Role,MODx.combo.ComboBox),Ext.reg("modx-combo-role",MODx.combo.Role),MODx.combo.ContentType=function(config){config=config||{},Ext.applyIf(config,{name:"content_type",hiddenName:"content_type",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/ContentType/GetList"}}),MODx.combo.ContentType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentType,MODx.combo.ComboBox),Ext.reg("modx-combo-content-type",MODx.combo.ContentType),MODx.combo.ContentDisposition=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("inline"),0],[_("attachment"),1]]}),name:"content_dispo",hiddenName:"content_dispo",displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),MODx.combo.ContentDisposition.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentDisposition,MODx.combo.ComboBox),Ext.reg("modx-combo-content-disposition",MODx.combo.ContentDisposition),MODx.combo.ClassMap=function(config){config=config||{},Ext.applyIf(config,{name:"class",hiddenName:"class",url:MODx.config.connector_url,baseParams:{action:"System/ClassMap/GetList"},displayField:"class",valueField:"class",fields:["class"],editable:!1,pageSize:20}),MODx.combo.ClassMap.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ClassMap,MODx.combo.ComboBox),Ext.reg("modx-combo-class-map",MODx.combo.ClassMap),MODx.combo.ClassDerivatives=function(config){config=config||{},Ext.applyIf(config,{name:"class",hiddenName:"class",url:MODx.config.connector_url,baseParams:{action:"System/Derivatives/GetList",class:"MODX\\Revolution\\modResource"},displayField:"name",valueField:"id",fields:["id","name"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20}),MODx.combo.ClassDerivatives.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ClassDerivatives,MODx.combo.ComboBox),Ext.reg("modx-combo-class-derivatives",MODx.combo.ClassDerivatives),MODx.combo.Namespace=function(config){config=config||{},Ext.applyIf(config,{name:"namespace",hiddenName:"namespace",typeAhead:!0,minChars:1,queryParam:"search",editable:!0,allowBlank:!0,preselectValue:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Workspace/PackageNamespace/GetList"},fields:["name"],displayField:"name",valueField:"name"}),MODx.combo.Namespace.superclass.constructor.call(this,config),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),this.store.load())},Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox,{preselectFirstValue:function(r){var item;if(""==this.config.preselectValue)item=r.getAt(0);else{var found=r.find("name",this.config.preselectValue);item=-1!=found?r.getAt(found):r.getAt(0)}item&&(this.setValue(item.data.name),this.fireEvent("select",this,item))}}),Ext.reg("modx-combo-namespace",MODx.combo.Namespace),MODx.combo.Browser=function(config){config=config||{},Ext.applyIf(config,{width:400,triggerAction:"all",triggerClass:"x-form-file-trigger",source:config.source||MODx.config.default_media_source}),MODx.combo.Browser.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.combo.Browser,Ext.form.TriggerField,{browser:null,onTriggerClick:function(btn){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},onDestroy:function(){MODx.combo.Browser.superclass.onDestroy.call(this)}}),Ext.reg("modx-combo-browser",MODx.combo.Browser),MODx.combo.Country=function(config){config=config||{},Ext.applyIf(config,{name:"country",hiddenName:"country",url:MODx.config.connector_url,baseParams:{action:"System/Country/GetList"},displayField:"country",valueField:"iso",fields:["iso","country","value"],editable:!0,value:0,typeAhead:!0}),MODx.combo.Country.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Country,MODx.combo.ComboBox),Ext.reg("modx-combo-country",MODx.combo.Country),MODx.combo.Gender=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[["",0],[_("user_male"),1],[_("user_female"),2],[_("user_other"),3]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1}),MODx.combo.Gender.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Gender,Ext.form.ComboBox),Ext.reg("modx-combo-gender",MODx.combo.Gender),MODx.combo.PropertySet=function(config){config=config||{},Ext.applyIf(config,{name:"propertyset",hiddenName:"propertyset",url:MODx.config.connector_url,baseParams:{action:"Element/PropertySet/GetList"},displayField:"name",valueField:"id",fields:["id","name"],editable:!1,pageSize:20,width:300}),MODx.combo.PropertySet.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.PropertySet,MODx.combo.ComboBox),Ext.reg("modx-combo-property-set",MODx.combo.PropertySet),MODx.ChangeParentField=function(config){config=config||{},Ext.applyIf(config,{triggerAction:"all",editable:!1,readOnly:!1,formpanel:"modx-panel-resource",parentcmp:"modx-resource-parent-hidden",contextcmp:"modx-resource-context-key",currentid:MODx.request.id}),MODx.ChangeParentField.superclass.constructor.call(this,config),this.config=config,this.on("click",this.onTriggerClick,this),this.addEvents({end:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()},this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(this.oldDisplayValue=this.getValue(),this.oldValue=Ext.getCmp(this.config.parentcmp).getValue(),this.setValue(_("resource_parent_select_node")),t.expand(),t.removeListener("click",t._handleClick),t.on("click",this.handleChangeParent,this),t.disableHref=!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var t=Ext.getCmp("modx-resource-tree");if(!t)return!1;t.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);if(ctxf){var ctxv=ctxf.getValue();node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)}return this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),Ext.reg("modx-field-parent-change",MODx.ChangeParentField),MODx.combo.TVWidget=function(config){config=config||{},Ext.applyIf(config,{name:"widget",hiddenName:"widget",displayField:"name",valueField:"value",fields:["value","name"],editable:!1,url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetOutputs"},value:"default"}),MODx.combo.TVWidget.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVWidget,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-widget",MODx.combo.TVWidget),MODx.combo.TVInputType=function(config){config=config||{},Ext.applyIf(config,{name:"type",hiddenName:"type",displayField:"name",valueField:"value",editable:!1,fields:["value","name"],url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetInputs"},value:"text"}),MODx.combo.TVInputType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVInputType,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-input-type",MODx.combo.TVInputType),MODx.combo.Dashboard=function(config){config=config||{},Ext.applyIf(config,{name:"dashboard",hiddenName:"dashboard",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Dashboard/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.Dashboard.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Dashboard,MODx.combo.ComboBox),Ext.reg("modx-combo-dashboard",MODx.combo.Dashboard),MODx.combo.MediaSource=function(config){config=config||{},Ext.applyIf(config,{name:"source",hiddenName:"source",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.MediaSource.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSource,MODx.combo.ComboBox),Ext.reg("modx-combo-source",MODx.combo.MediaSource),MODx.combo.MediaSourceType=function(config){config=config||{},Ext.applyIf(config,{name:"class_key",hiddenName:"class_key",displayField:"name",valueField:"class",fields:["id","class","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/Type/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.MediaSourceType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSourceType,MODx.combo.ComboBox),Ext.reg("modx-combo-source-type",MODx.combo.MediaSourceType),MODx.combo.Authority=function(config){config=config||{},Ext.applyIf(config,{name:"authority",hiddenName:"authority",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetAuthorityList",addNone:!0}}),MODx.combo.Authority.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Authority,MODx.combo.ComboBox),Ext.reg("modx-combo-authority",MODx.combo.Authority),MODx.combo.ManagerTheme=function(config){config=config||{},Ext.applyIf(config,{name:"theme",hiddenName:"theme",displayField:"theme",valueField:"theme",fields:["theme"],url:MODx.config.connector_url,baseParams:{action:"Workspace/Theme/GetList"},typeAhead:!1,editable:!1}),MODx.combo.ManagerTheme.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ManagerTheme,MODx.combo.ComboBox),Ext.reg("modx-combo-manager-theme",MODx.combo.ManagerTheme),MODx.combo.SettingKey=function(config){config=config||{},Ext.applyIf(config,{name:"key",hiddenName:"key",displayField:"key",valueField:"key",fields:["key"],url:MODx.config.connector_url,baseParams:{action:"System/Settings/GetList"},typeAhead:!1,triggerAction:"all",editable:!0,forceSelection:!1,queryParam:"key",pageSize:20}),MODx.combo.SettingKey.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.SettingKey,MODx.combo.ComboBox),Ext.reg("modx-combo-setting-key",MODx.combo.SettingKey),MODx.combo.Visibility=function(config){config=config||{},Ext.applyIf(config,{name:"visibility",hiddenName:"visibility",store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("file_folder_visibility_public"),"public"],[_("file_folder_visibility_private"),"private"]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1,preventRender:!0,forceSelection:!0,enableKeyEvents:!0}),MODx.combo.Visibility.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Visibility,MODx.combo.ComboBox),Ext.reg("modx-combo-visibility",MODx.combo.Visibility),MODx.combo.Permission=function(config){config=config||{},Ext.applyIf(config,{name:"permission",hiddenName:"permission",displayField:"name",valueField:"name",fields:["name","description"],editable:!0,typeAhead:!1,forceSelection:!1,enableKeyEvents:!0,autoSelect:!1,pageSize:20,tpl:new Ext.XTemplate('
    {name:htmlEncode}','

    {description:htmlEncode}

    '),url:MODx.config.connector_url,baseParams:{action:"Security/Access/Permission/GetList"}}),MODx.combo.Permission.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Permission,MODx.combo.ComboBox),Ext.reg("modx-combo-permission",MODx.combo.Permission),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,showActionsColumn:!0,disableContextMenuAction:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'};Ext.applyIf(config.groupingConfig,groupingConfig),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})}if(config.tbar)for(var ix=0;ix":"")+data.msg},this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg)}},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(r){if(this.fireEvent("afterRemoveRow",r)){var rx=this.getSelectionModel().getSelected();this.getStore().remove(rx)}},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){if(e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),this.getMenu){var m=this.getMenu(g,ri,e);m&&m.length&&0
    ',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,[record,rowIndex,colIndex,store]);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions:actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(record,rowIndex,colIndex,store){return[]},onClickHandler:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)},makeUrl:function(){if(Array.isArray(this.config.urlFilters)&&0 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i
    ',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,arguments);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions:actions})},renderLink:function(v,attr){var el=new Ext.Element(document.createElement("a"));for(var i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(value,metaData,record,rowIndex,colIndex,store){return[]},onClick:function(e){var target=e.getTarget();if(target.classList.contains("x-grid-action")&&target.dataset.action){var actionHandler="action"+target.dataset.action.charAt(0).toUpperCase()+target.dataset.action.slice(1);if(this[actionHandler]&&"function"==typeof this[actionHandler]||this[actionHandler=target.dataset.action]&&"function"==typeof this[actionHandler]){var record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record);this.menu.record=record.data,this[actionHandler](record,recordIndex,e)}}},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)}}),Ext.reg("grid-local",MODx.grid.LocalGrid),Ext.reg("modx-grid-local",MODx.grid.LocalGrid),Ext.ns("Ext.ux.grid"),Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:!0,expandOnDblClick:!0,header:"",width:20,sortable:!1,fixed:!0,hideable:!1,menuDisabled:!0,dataIndex:"",id:"expander",lazyRender:!0,enableCaching:!0,constructor:function(config){Ext.apply(this,config),this.addEvents({beforeexpand:!0,expand:!0,beforecollapse:!0,collapse:!0}),Ext.ux.grid.RowExpander.superclass.constructor.call(this),this.tpl&&("string"==typeof this.tpl&&(this.tpl=new Ext.Template(this.tpl)),this.tpl.compile()),this.state={},this.bodyContent={}},getRowClass:function(record,rowIndex,p,ds){p.cols=p.cols-1;var content=this.bodyContent[record.id];return content||this.lazyRender||(content=this.getBodyContent(record,rowIndex)),content&&(p.body=content),this.state[record.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed"},init:function(grid){var view=(this.grid=grid).getView();view.getRowClass=this.getRowClass.createDelegate(this),view.enableRowBody=!0,grid.on("render",this.onRender,this),grid.on("destroy",this.onDestroy,this)},onRender:function(){var grid=this.grid;grid.getView().mainBody.on("mousedown",this.onMouseDown,this,{delegate:".x-grid3-row-expander"}),this.expandOnEnter&&(this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{enter:this.onEnter,scope:this})),this.expandOnDblClick&&grid.on("rowdblclick",this.onRowDblClick,this)},onDestroy:function(){this.keyNav&&(this.keyNav.disable(),delete this.keyNav);var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)},onRowDblClick:function(grid,rowIdx,e){this.toggleRow(rowIdx)},onEnter:function(e){for(var g=this.grid,sels=g.getSelectionModel().getSelections(),i=0,len=sels.length;i '},beforeExpand:function(record,body,rowIndex){return!1!==this.fireEvent("beforeexpand",this,record,body,rowIndex)&&(this.tpl&&this.lazyRender&&(body.innerHTML=this.getBodyContent(record,rowIndex)),!0)},toggleRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row)),this[Ext.fly(row).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](row)},expandRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",row);this.beforeExpand(record,body,row.rowIndex)&&(this.state[record.id]=!0,Ext.fly(row).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded"),this.fireEvent("expand",this,record,body,row.rowIndex))},collapseRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.fly(row).child("tr:nth(1) div.x-grid3-row-body",!0);!1!==this.fireEvent("beforecollapse",this,record,body,row.rowIndex)&&(this.state[record.id]=!1,Ext.fly(row).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed"),this.fireEvent("collapse",this,record,body,row.rowIndex))}}),Ext.preg("rowexpander",Ext.ux.grid.RowExpander),Ext.grid.RowExpander=Ext.ux.grid.RowExpander,Ext.ns("Ext.ux.grid"),Ext.ux.grid.CheckColumn=function(a){Ext.apply(this,a),this.id||(this.id=Ext.id()),this.renderer=this.renderer.createDelegate(this)},Ext.ux.grid.CheckColumn.prototype={init:function(b){this.grid=b,this.grid.on("render",function(){this.grid.getView().mainBody.on("mousedown",this.onMouseDown,this)},this),this.grid.on("destroy",this.onDestroy,this)},onMouseDown:function(e,t){if(this.grid.fireEvent("rowclick"),t.className&&-1!=t.className.indexOf("x-grid3-cc-"+this.id)){e.stopEvent();var a=this.grid.getView().findRowIndex(t),b=this.grid.store.getAt(a),sv=b.data[this.dataIndex];b.set(this.dataIndex,!sv),this.grid.fireEvent("afteredit",{grid:this.grid,record:b,field:this.dataIndex,originalValue:sv,value:b.data[this.dataIndex],cancel:!1})}},renderer:function(v,p,a){return p.css+=" x-grid3-check-col-td",'
     
    '},onDestroy:function(){var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)}},Ext.preg("checkcolumn",Ext.ux.grid.CheckColumn),Ext.grid.CheckColumn=Ext.ux.grid.CheckColumn,Ext.grid.PropertyColumnModel=function(a,b){var g=Ext.grid,f=Ext.form;this.grid=a,g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:!0,dataIndex:"name",id:"name",menuDisabled:!0},{header:this.valueText,width:50,resizable:!1,dataIndex:"value",id:"value",menuDisabled:!0}]),this.store=b;var c=new f.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]},getValue:function(){return"true"==this.el.dom.value}});this.editors={date:new g.GridEditor(new f.DateField({selectOnFocus:!0})),string:new g.GridEditor(new f.TextField({selectOnFocus:!0})),number:new g.GridEditor(new f.NumberField({selectOnFocus:!0,style:"text-align:left;"})),boolean:new g.GridEditor(c)},this.renderCellDelegate=this.renderCell.createDelegate(this),this.renderPropDelegate=this.renderProp.createDelegate(this)},Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return a?"true":"false"},isCellEditable:function(a,b){return 1==a},getRenderer:function(a){return 1==a?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(v){return this.getPropertyName(v)},renderCell:function(a){var b=a;return Ext.isDate(a)?b=this.renderDate(a):"boolean"==typeof a&&(b=this.renderBool(a)),Ext.util.Format.htmlEncode(b)},getPropertyName:function(a){var b=this.grid.propertyNames;return b&&b[a]?b[a]:a},getCellEditor:function(a,b){var p=this.store.getProperty(b),n=p.data.name,val=p.data.value;return this.grid.customEditors[n]?this.grid.customEditors[n]:Ext.isDate(val)?this.editors.date:"number"==typeof val?this.editors.number:"boolean"==typeof val?this.editors.boolean:this.editors.string},destroy:function(){for(var a in Ext.grid.PropertyColumnModel.superclass.destroy.call(this),this.editors)Ext.destroy(a)}}),MODx.grid.JsonGrid=function(config){config=config||{},this.ident=config.ident||"jsongrid-mecitem"+Ext.id(),this.hiddenField=new Ext.form.TextArea({name:config.hiddenName||config.name,hidden:!0}),this.fieldConfig=config.fieldConfig||[{name:"key"},{name:"value"}],this.fieldConfig.push({name:"id",hidden:!0}),this.fieldColumns=[],this.fieldNames=[],Ext.each(this.fieldConfig,function(el){this.fieldNames.push(el.name),this.fieldColumns.push({header:el.header||_(el.name),dataIndex:el.name,editable:!0,hidden:el.hidden||!1,editor:{xtype:el.xtype||"textfield",allowBlank:el.allowBlank||!0,listeners:{change:{fn:this.saveValue,scope:this}}},renderer:function(value,metadata){return metadata.css+="x-editable-column ",value},width:el.width||100})},this),Ext.applyIf(config,{id:this.ident+"-json-grid",fields:this.fieldNames,autoHeight:!0,store:new Ext.data.JsonStore({fields:this.fieldNames,data:this.loadValue(config.value)}),enableDragDrop:!0,ddGroup:this.ident+"-json-grid-dd",labelStyle:"position: absolute",columns:this.fieldColumns,disableContextMenuAction:!0,tbar:["->",{text:' '+_("add"),cls:"primary-button",handler:this.addElement,scope:this}],listeners:{render:{fn:this.renderListener,scope:this}}}),MODx.grid.JsonGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.grid.JsonGrid,MODx.grid.LocalGrid,{getMenu:function(){var m=[];return m.push({text:_("remove"),handler:this.removeElement}),m},getActions:function(){return[{action:"removeElement",icon:"trash-o",text:_("remove")}]},addElement:function(){var ds=this.getStore(),row={};Ext.each(this.fieldNames,function(fieldname){row[fieldname]=""}),row.id=this.getStore().getCount(),this.getStore().insert(this.getStore().getCount(),new ds.recordType(row)),this.getView().refresh(),this.getSelectionModel().selectRow(0)},removeElement:function(){Ext.Msg.confirm(_("remove")||"",_("confirm_remove")||"",function(e){if("yes"===e){var ds=this.getStore(),rows=this.getSelectionModel().getSelections();if(!rows.length)return!1;for(var i=0;id[1]){match=!0;break}}pos=(match&&p?pos:c.items.getCount())+(overSelf?-1:0);var j=this.createEvent(a,e,b,g,c,pos);return!1!==portal.fireEvent("validatedrop",j)&&!1!==portal.fireEvent("beforedragover",j)&&(px.getProxy().setWidth("auto"),p?px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null):px.moveProxy(c.el.dom,null),this.lastPos={c:c,col:g,p:!!(overSelf||match&&p)&&pos},this.scrollPos=portal.body.getScroll(),portal.fireEvent("dragover",j)),j.status},notifyOut:function(){delete this.grid},notifyDrop:function(a,e,b){if(delete this.grid,this.lastPos){var c=this.lastPos.c,col=this.lastPos.col,pos=this.lastPos.p,f=this.createEvent(a,e,b,col,c,!1!==pos?pos:c.items.getCount());if(!1!==this.portal.fireEvent("validatedrop",f)&&!1!==this.portal.fireEvent("beforedrop",f)){a.proxy.getProxy().remove(),a.panel.el.dom.parentNode.removeChild(a.panel.el.dom),!1!==pos?(c==a.panel.ownerCt&&c.items.items.indexOf(a.panel)<=pos&&pos++,c.insert(pos,a.panel)):c.add(a.panel),c.doLayout(),this.portal.fireEvent("drop",f);var g=this.scrollPos.top;if(g){var d=this.portal.body.dom;setTimeout(function(){d.scrollTop=g},10)}}delete this.lastPos}},getGrid:function(){var a=this.portal.bwrap.getBox();return a.columnX=[],this.portal.items.each(function(c){a.columnX.push({x:c.el.getX(),w:c.el.getWidth()})}),a},unreg:function(){Ext.ux.Portal.DropZone.superclass.unreg.call(this)}}),MODx.portal.Column=Ext.extend(Ext.Container,{layout:"anchor",defaultType:"portlet",cls:"x-portal-column",style:"padding:10px;",columnWidth:1,defaults:{collapsible:!0,autoHeight:!0,titleCollapse:!0,draggable:!0,style:"padding: 5px 0;",bodyStyle:"padding: 15px;"}}),Ext.reg("portalcolumn",MODx.portal.Column),MODx.portal.Portlet=Ext.extend(Ext.Panel,{anchor:Ext.isSafari?"98%":"100%",frame:!0,collapsible:!0,draggable:!0,cls:"x-portlet",stateful:!1,layout:"form"}),Ext.reg("portlet",MODx.portal.Portlet),MODx.window.DuplicateResource=function(config){config=config||{},this.ident=config.ident||"dupres"+Ext.id(),Ext.applyIf(config,{title:config.pagetitle?_("duplicate")+" "+config.pagetitle:_("duplication_options"),id:this.ident}),MODx.window.DuplicateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateResource,MODx.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record))return!(this.fp.getForm().baseParams={action:"Resource/Updateduplicate",prefixDuplicate:!0,id:this.config.resource});var items=[];items.push({xtype:"textfield",id:"modx-"+this.ident+"-name",fieldLabel:_("resource_name_new"),name:"name",anchor:"100%",value:""}),this.config.hasChildren&&items.push({xtype:"xcheckbox",boxLabel:_("duplicate_children")+" ("+this.config.childCount+")",hideLabel:!0,name:"duplicate_children",id:"modx-"+this.ident+"-duplicate-children",checked:!0}),items.push({xtype:"xcheckbox",boxLabel:_("duplicate_redirect"),hideLabel:!0,name:"redirect",id:"modx-"+this.ident+"-duplicate-redirect",checked:this.config.redirect});var pov=MODx.config.default_duplicate_publish_option||"preserve";items.push({xtype:"fieldset",title:_("publishing_options"),items:[{xtype:"radiogroup",hideLabel:!0,columns:1,value:pov,items:[{boxLabel:_("po_make_all_unpub"),hideLabel:!0,name:"published_mode",inputValue:"unpublish"},{boxLabel:_("po_make_all_pub"),hideLabel:!0,name:"published_mode",inputValue:"publish"},{boxLabel:_("po_preserve"),hideLabel:!0,name:"published_mode",inputValue:"preserve"}]}]}),this.fp=this.createForm({url:this.config.url||MODx.config.connector_url,baseParams:this.config.baseParams||{action:"Resource/Duplicate",id:this.config.resource,prefixDuplicate:!0},labelWidth:125,defaultType:"textfield",autoHeight:!0,items:items}),this.renderForm()}}),Ext.reg("modx-window-resource-duplicate",MODx.window.DuplicateResource),MODx.window.DuplicateElement=function(config){config=config||{},this.ident=config.ident||"dupeel-"+Ext.id();var flds=[{xtype:"hidden",name:"id",id:"modx-"+this.ident+"-id"},{xtype:"hidden",name:"source",id:"modx-"+this.ident+"-source"},{xtype:"textfield",fieldLabel:_("element_name_new"),name:"template"==config.record.type?"templatename":"name",id:"modx-"+this.ident+"-name",anchor:"100%",enableKeyEvents:!0,listeners:{afterRender:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}},keyup:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}}}}];"tv"==config.record.type&&(flds.push({xtype:"textfield",fieldLabel:_("element_caption_new"),name:"caption",id:"modx-"+this.ident+"-caption",anchor:"100%"}),flds.push({xtype:"xcheckbox",hideLabel:!0,boxLabel:_("element_duplicate_values"),labelSeparator:"",name:"duplicateValues",id:"modx-"+this.ident+"-duplicate-values",anchor:"100%",inputValue:1,checked:!1})),!0===config.record.static&&flds.push({xtype:"textfield",fieldLabel:_("static_file"),name:"static_file",id:"modx-"+this.ident+"-static_file",anchor:"100%"}),flds.push({xtype:"xcheckbox",boxLabel:_("duplicate_redirect"),hideLabel:!0,name:"redirect",id:"modx-"+this.ident+"-duplicate-redirect",checked:config.redirect}),Ext.applyIf(config,{title:_("duplicate_"+config.record.type),url:MODx.config.connector_url,action:"element/"+config.record.type+"/duplicate",width:600,fields:flds,labelWidth:150}),MODx.window.DuplicateElement.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateElement,MODx.Window,{setStaticElementsPath:function(f){if(!0===this.config.record.static){var category=this.config.record.category;if("number"!=typeof category){0"+_("session_logging_out")+"

    ",xtype:"modx-description"},{xtype:"textfield",id:"modx-"+this.ident+"-username",fieldLabel:_("username"),name:"username",anchor:"100%"},{xtype:"textfield",inputType:"password",id:"modx-"+this.ident+"-password",fieldLabel:_("password"),name:"password",anchor:"100%"},{xtype:"hidden",name:"rememberme",value:1}],buttons:[{text:_("logout"),scope:this,handler:function(){location.href="?logout=1"}},{text:_("login"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.Login.superclass.constructor.call(this,config),this.on("success",this.onLogin,this)},Ext.extend(MODx.window.Login,MODx.Window,{onLogin:function(o){var r=o.a.result;r.object&&r.object.token&&(Ext.Ajax.defaultHeaders={modAuth:r.object.token},Ext.Ajax.extraParams={HTTP_MODAUTH:r.object.token},MODx.siteId=r.object.token,MODx.msg.status({message:_("session_extended")}))}}),Ext.reg("modx-window-login",MODx.window.Login),function(window){"use strict";var CanvasPrototype=window.HTMLCanvasElement&&window.HTMLCanvasElement.prototype,hasBlobConstructor=window.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),hasArrayBufferViewSupport=hasBlobConstructor&&window.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dataURLtoBlob=(hasBlobConstructor||BlobBuilder)&&window.atob&&window.ArrayBuffer&&window.Uint8Array&&function(dataURI){var byteString,arrayBuffer,intArray,i,mimeString,bb;for(byteString=0<=dataURI.split(",")[0].indexOf("base64")?atob(dataURI.split(",")[1]):decodeURIComponent(dataURI.split(",")[1]),arrayBuffer=new ArrayBuffer(byteString.length),intArray=new Uint8Array(arrayBuffer),i=0;i>2,enc2=(3&byte1)<<4|byte2>>4;isNaN(byte2)?enc3=enc4=64:(enc3=(15&byte2)<<2|byte3>>6,enc4=isNaN(byte3)?64:63&byte3),outStr+=b64.charAt(enc1)+b64.charAt(enc2)+b64.charAt(enc3)+b64.charAt(enc4)}return outStr}};function _emit(target,fn,name,res,ext){var evt={type:name.type||name,target:target,result:res};_extend(evt,ext),fn(evt)}function _hasSupportReadAs(method){return FileReader&&!!FileReader.prototype["readAs"+method]}function _readAs(file,fn,method,encoding){if(api.isBlob(file)&&_hasSupportReadAs(method)){var Reader=new FileReader;_on(Reader,_readerEvents,function _fn(evt){var type=evt.type;"progress"==type?_emit(file,fn,evt,evt.target.result,{loaded:evt.loaded,total:evt.total}):"loadend"==type?(_off(Reader,_readerEvents,_fn),Reader=null):_emit(file,fn,evt,evt.target.result)});try{encoding?Reader["readAs"+method](file,encoding):Reader["readAs"+method](file)}catch(err){_emit(file,fn,"error",void 0,{error:err.toString()})}}else _emit(file,fn,"error",void 0,{error:"filreader_not_support_"+method})}function _isEntry(item){return item&&(item.isFile||item.isDirectory)}function _getAsEntry(item){var entry;return item.getAsEntry?entry=item.getAsEntry():item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry()),entry}function isInputFile(el){return _rinput.test(el&&el.tagName)}function _getDataTransfer(evt){return(evt.originalEvent||evt||"").dataTransfer||{}}api.addInfoReader(/^image/,function(file,callback){if(!file.__dimensions){var defer=file.__dimensions=api.defer();api.readAsImage(file,function(evt){var img=evt.target;defer.resolve("load"!=evt.type&&"error",{width:img.width,height:img.height}),img.src=api.EMPTY_PNG,img=null})}file.__dimensions.then(callback)}),api.event.dnd=function(el,onHover,onDrop){var _id,_type;onDrop||(onDrop=onHover,onHover=api.F),FileReader?(_on(el,"dragenter dragleave dragover",onHover.ff=onHover.ff||function(evt){for(var types=_getDataTransfer(evt).types,i=types&&types.length,debounceTrigger=!1;i--;)if(~types[i].indexOf("File")){evt.preventDefault(),_type!==evt.type&&("dragleave"!=(_type=evt.type)&&onHover.call(evt.currentTarget,!0,evt),debounceTrigger=!0);break}debounceTrigger&&(clearTimeout(_id),_id=setTimeout(function(){onHover.call(evt.currentTarget,"dragleave"!=_type,evt)},50))}),_on(el,"drop",onDrop.ff=onDrop.ff||function(evt){evt.preventDefault(),_type=0,api.getDropFiles(evt,function(files,all){onDrop.call(evt.currentTarget,files,all,evt)}),onHover.call(evt.currentTarget,!1,evt)})):api.log("Drag'n'Drop -- not supported")},api.event.dnd.off=function(el,onHover,onDrop){_off(el,"dragenter dragleave dragover",onHover.ff),_off(el,"drop",onDrop.ff)},jQuery&&!jQuery.fn.dnd&&(jQuery.fn.dnd=function(onHover,onDrop){return this.each(function(){api.event.dnd(this,onHover,onDrop)})},jQuery.fn.offdnd=function(onHover,onDrop){return this.each(function(){api.event.dnd.off(this,onHover,onDrop)})}),window.FileAPI=_extend(api,window.FileAPI),api.log("FileAPI: "+api.version),api.log("protocol: "+window.location.protocol),api.log("doctype: ["+doctype.name+"] "+doctype.publicId+" "+doctype.systemId),_each(document.getElementsByTagName("meta"),function(meta){/x-ua-compatible/i.test(meta.getAttribute("http-equiv"))&&api.log("meta.http-equiv: "+meta.getAttribute("content"))});try{_supportConsoleLog=!!console.log,_supportConsoleLogApply=!!console.log.apply}catch(err){}api.flashUrl||(api.flashUrl=api.staticPath+"FileAPI.flash.swf"),api.flashImageUrl||(api.flashImageUrl=api.staticPath+"FileAPI.flash.image.swf"),api.flashWebcamUrl||(api.flashWebcamUrl=api.staticPath+"FileAPI.flash.camera.swf")}(window),function(api,document,undef){"use strict";var min=Math.min,round=Math.round,getCanvas=function(){return document.createElement("canvas")},support=!1,exifOrientation={8:270,3:180,6:90,7:270,4:180,5:90};try{support=-1params.maxWidth||img.height>params.maxHeight)&&ImgTrans.resize(params.maxWidth,params.maxHeight,"max"),params.crop){var crop=params.crop;ImgTrans.crop(0|crop.x,0|crop.y,crop.w||crop.width,crop.h||crop.height)}void 0===params.rotate&&autoOrientation&&(params.rotate="auto"),ImgTrans.set({type:ImgTrans.matrix.type||params.type||file.type||"image/png"}),isFn||ImgTrans.set({deg:params.rotate,overlay:params.overlay,filter:params.filter,quality:params.quality||1}),queue.inc(),ImgTrans.toData(function(err,image){err?queue.fail():(images[name]=image,queue.next())})}})}file.width?_transform(!1,file):api.getInfo(file,_transform)},api.each(["TOP","CENTER","BOTTOM"],function(x,i){api.each(["LEFT","CENTER","RIGHT"],function(y,j){Image[x+"_"+y]=3*i+j,Image[y+"_"+x]=3*i+j})}),Image.toCanvas=function(el){var canvas=document.createElement("canvas");return canvas.width=el.videoWidth||el.width,canvas.height=el.videoHeight||el.height,canvas.getContext("2d").drawImage(el,0,0),canvas},Image.fromDataURL=function(dataURL,size,callback){var img=api.newImage(dataURL);api.extend(img,size),callback(img)},Image.applyFilter=function(canvas,filter,doneFn){"function"==typeof filter?filter(canvas,doneFn):window.Caman&&window.Caman("IMG"==canvas.tagName?Image.toCanvas(canvas):canvas,function(){"string"==typeof filter?this[filter]():api.each(filter,function(val,method){this[method](val)},this),this.render(doneFn)})},api.renderImageToCanvas=function(canvas,img,sx,sy,sw,sh,dx,dy,dw,dh){try{return canvas.getContext("2d").drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh)}catch(ex){throw api.log("renderImageToCanvas failed"),ex}},api.support.canvas=api.support.transform=support,api.Image=Image}(FileAPI,document),function(factory){"use strict";!function(loadImage){if(!window.navigator||!window.navigator.platform||!/iP(hone|od|ad)/.test(window.navigator.platform))return;var originalRenderMethod=loadImage.renderImageToCanvas;loadImage.detectSubsampling=function(img){var canvas,context;return 1048576>1;return py/naturalHeight||1},loadImage.renderImageToCanvas=function(canvas,img,sourceX,sourceY,sourceWidth,sourceHeight,destX,destY,destWidth,destHeight){if("image/jpeg"===img._type){var subsampled,vertSquashRatio,tileX,tileY,context=canvas.getContext("2d"),tmpCanvas=document.createElement("canvas"),tmpContext=tmpCanvas.getContext("2d");if(tmpCanvas.width=1024,tmpCanvas.height=1024,context.save(),(subsampled=loadImage.detectSubsampling(img))&&(sourceX/=2,sourceY/=2,sourceWidth/=2,sourceHeight/=2),vertSquashRatio=loadImage.detectVerticalSquash(img,subsampled),subsampled||1!==vertSquashRatio){for(sourceY*=vertSquashRatio,destWidth=Math.ceil(1024*destWidth/sourceWidth),destHeight=Math.ceil(1024*destHeight/sourceHeight/vertSquashRatio),tileY=destY=0;tileY'+(jsonp&&options.url.indexOf("=?")<0?'':"")+"";var form=xhr.getElementsByTagName("form")[0],transport=xhr.getElementsByTagName("iframe")[0];form.appendChild(data),api.log(form.parentNode.innerHTML),document.body.appendChild(xhr),_this.xhr.node=xhr,_this.readyState=2;try{form.submit()}catch(err){api.log("iframe.error: "+err)}form=null}else{if(url=url.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted)return void api.log("Error: already aborted");if(xhr=_this.xhr=api.getXHR(),data.params&&(url+=(url.indexOf("?")<0?"?":"&")+data.params.join("&")),xhr.open("POST",url,!0),api.withCredentials&&(xhr.withCredentials="true"),options.headers&&options.headers["X-Requested-With"]||xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),api.each(options.headers,function(val,key){xhr.setRequestHeader(key,val)}),options._chunked){xhr.upload&&xhr.upload.addEventListener("progress",api.throttle(function(evt){data.retry||options.progress({type:evt.type,total:data.size,loaded:data.start+evt.loaded,totalSize:data.size},_this,options)},100),!1),xhr.onreadystatechange=function(){var lkb=parseInt(xhr.getResponseHeader("X-Last-Known-Byte"),10);if(_this.status=xhr.status,_this.statusText=xhr.statusText,_this.readyState=xhr.readyState,4==xhr.readyState){for(var k in _xhrResponsePostfix)_this["response"+k]=xhr["response"+k];if(xhr.onreadystatechange=null,!xhr.status||0 js).ping:",[evt.status,evt.savedStatus],evt.error):"log"===type?api.log("(flash -> js).log:",evt.target):type in flash&&setTimeout(function(){api.log("FlashAPI.event."+evt.type+":",evt),flash[type](evt)},1)},mouseenter:function(evt){var node=flash.getInput(evt.flashId);if(node){flash.cmd(evt,"multiple",null!=node.getAttribute("multiple"));var accept=[],exts={};_each((node.getAttribute("accept")||"").split(/,\s*/),function(mime){api.accept[mime]&&_each(api.accept[mime].split(" "),function(ext){exts[ext]=1})}),_each(exts,function(i,ext){accept.push(ext)}),flash.cmd(evt,"accept",accept.length?accept.join(",")+","+accept.join(",").toUpperCase():"*")}},get:function(id){return document[id]||window[id]||document.embeds[id]},getInput:function(id){if(!api.multiFlash)return flash.curInp;try{var node=flash.getWrapper(flash.get(id));if(node)return node.getElementsByTagName("input")[0]}catch(e){api.log('[err] Can not find "input" by flashId:',id,e)}},select:function(evt){var event,inp=flash.getInput(evt.flashId),uid=api.uid(inp),files=evt.target.files;_each(files,function(file){api.checkFileObj(file)}),_files[uid]=files,document.createEvent?((event=document.createEvent("Event")).files=files,event.initEvent("change",!0,!0),inp.dispatchEvent(event)):jQuery?jQuery(inp).trigger({type:"change",files:files}):((event=document.createEventObject()).files=files,inp.fireEvent("onchange",event))},cmd:function(id,name,data,last){try{return api.log("(js -> flash)."+name+":",data),flash.get(id.flashId||id).cmd(name,data)}catch(err){api.log("(js -> flash).onError:",err.toString()),last||setTimeout(function(){flash.cmd(id,name,data,!0)},50)}},patch:function(){api.flashEngine=!0,_inherit(api,{getFiles:function(input,filter,callback){if(callback)return api.filterFiles(api.getFiles(input),filter,callback),null;var files=api.isArray(input)?input:_files[api.uid(input.target||input.srcElement||input)];return files?(filter&&(filter=api.getFilesFilter(filter),files=api.filter(files,function(file){return filter.test(file.name)})),files):this.parent.apply(this,arguments)},getInfo:function(file,fn){if(_isHtmlFile(file))this.parent.apply(this,arguments);else if(file.isShot)fn(null,file.info={width:file.width,height:file.height});else{if(!file.__info){var defer=file.__info=api.defer();flash.cmd(file,"getFileInfo",{id:file.id,callback:_wrap(function _(err,info){_unwrap(_),defer.resolve(err,file.info=info)})})}file.__info.then(fn)}}}),api.support.transform=!0,api.Image&&_inherit(api.Image.prototype,{get:function(fn,scaleMode){return this.set({scaleMode:scaleMode||"noScale"}),this.parent(fn)},_load:function(file,fn){if(api.log("FlashAPI.Image._load:",file),_isHtmlFile(file))this.parent.apply(this,arguments);else{var _this=this;api.getInfo(file,function(err){fn.call(_this,err,file)})}},_apply:function(file,fn){if(api.log("FlashAPI.Image._apply:",file),_isHtmlFile(file))this.parent.apply(this,arguments);else{var m=this.getMatrix(file.info),doneFn=fn;flash.cmd(file,"imageTransform",{id:file.id,matrix:m,callback:_wrap(function _(err,base64){api.log("FlashAPI.Image._apply.callback:",err),_unwrap(_),err?doneFn(err):api.support.html5||api.support.dataURI&&!(3e4 "+fileId),_this.xhr={headers:{},abort:function(){flash.cmd(flashId,"abort",{id:fileId})},getResponseHeader:function(name){return this.headers[name]},getAllResponseHeaders:function(){return this.headers}};var queue=api.queue(function(){flash.cmd(flashId,"upload",{url:_getUrl(options.url.replace(/([a-z]+)=(\?)&?/i,"")),data:data,files:fileId?files:null,headers:options.headers||{},callback:_wrap(function upload(evt){var type=evt.type,result=evt.result;api.log("FlashAPI.upload."+type),"progress"==type?(evt.loaded=Math.min(evt.loaded,evt.total),evt.lengthComputable=!0,options.progress(evt)):"complete"==type?(_unwrap(upload),"string"==typeof result&&(_this.responseText=result.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),_this.end(evt.status||200)):"abort"!=type&&"error"!=type||(_this.end(evt.status||0,evt.message),_unwrap(upload))})})});_each(files,function(file){queue.inc(),api.getInfo(file,queue.next)}),queue.check()}})}};function _makeFlashHTML(opts){return('').replace(/#(\w+)#/gi,function(a,name){return opts[name]})}function _css(el,css){var key,val;if(el&&el.style)for(key in css){"number"==typeof(val=css[key])&&(val+="px");try{el.style[key]=val}catch(e){}}}function _inherit(obj,methods){_each(methods,function(fn,name){var prev=obj[name];obj[name]=function(){return this.parent=prev,fn.apply(this,arguments)}})}function _isHtmlFile(file){return file&&!file.flashId}function _wrap(fn){var id=fn.wid=api.uid();return flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{flash._fn[fn.wid]=null,delete flash._fn[fn.wid]}catch(e){}}function _getUrl(url,params){if(!_rhttp.test(url)){if(/^\.\//.test(url)||"/"!=url.charAt(0)){var path=location.pathname;url=((path=path.substr(0,path.lastIndexOf("/")))+"/"+url).replace("/./","/")}"//"!=url.substr(0,2)&&(url="//"+location.host+url),_rhttp.test(url)||(url=location.protocol+url)}return params&&(url+=(/\?/.test(url)?"&":"?")+params),url}function _makeFlashImage(opts,base64,fn){var key,flashId=api.uid(),el=document.createElement("div"),attempts=10;for(key in opts)el.setAttribute(key,opts[key]),el[key]=opts[key];_css(el,opts),opts.width="100%",opts.height="100%",el.innerHTML=_makeFlashHTML(api.extend({id:flashId,src:_getUrl(api.flashImageUrl,"r="+api.uid()),wmode:"opaque",flashvars:"scale="+opts.scale+"&callback="+_wrap(function _(){return _unwrap(_),0<--attempts&&function(){try{var img=flash.get(flashId);img.setImage(base64)}catch(e){api.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',e)}}(),!0})},opts)),fn(!1,el),el=null}api.Flash=flash,api.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(err,img){api.support.dataURI=!(1!=img.width||1!=img.height),flash.init()})}()}(window,window.jQuery,FileAPI),function(window,jQuery,api){"use strict";var _each=api.each,_cameraQueue=[];!api.support.flash||!api.media||api.support.media&&api.html5&&!api.insecureChrome||function(){function _wrap(fn){var id=fn.wid=api.uid();return api.Flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{api.Flash._fn[fn.wid]=null,delete api.Flash._fn[fn.wid]}catch(e){}}var flash=api.Flash;api.extend(api.Flash,{patchCamera:function(){api.Camera.fallback=function(el,options,callback){var camId=api.uid();api.log("FlashAPI.Camera.publish: "+camId),flash.publish(el,camId,api.extend(options,{camera:!0,onEvent:_wrap(function _(evt){"camera"===evt.type&&(_unwrap(_),evt.error?(api.log("FlashAPI.Camera.publish.error: "+evt.error),callback(evt.error)):(api.log("FlashAPI.Camera.publish.success: "+camId),callback(null)))})}))},_each(_cameraQueue,function(args){api.Camera.fallback.apply(api.Camera,args)}),_cameraQueue=[],api.extend(api.Camera.prototype,{_id:function(){return this.video.id},start:function(callback){var _this=this;flash.cmd(this._id(),"camera.on",{callback:_wrap(function _(evt){_unwrap(_),evt.error?(api.log("FlashAPI.camera.on.error: "+evt.error),callback(evt.error,_this)):(api.log("FlashAPI.camera.on.success: "+_this._id()),_this._active=!0,callback(null,_this))})})},stop:function(){this._active=!1,flash.cmd(this._id(),"camera.off")},shot:function(){api.log("FlashAPI.Camera.shot:",this._id());var shot=api.Flash.cmd(this._id(),"shot",{});return shot.type="image/png",shot.flashId=this._id(),shot.isShot=!0,new api.Camera.Shot(shot)}})}}),api.Camera.fallback=function(){_cameraQueue.push(arguments)}}()}(window,window.jQuery,FileAPI),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}),function(){Ext.namespace("MODx.util.MultiUploadDialog");var maxFileSize=parseInt(MODx.config.upload_maxsize,10),permittedFileTypes=MODx.config.upload_files.toLowerCase().split(",");FileAPI.debug=!1,FileAPI.support.flash=!1,FileAPI.staticPath=MODx.config.manager_url+"assets/fileapi/";var api={humanFileSize:function(bytes,si){var thresh=si?1e3:1024;if(bytes: "+this.errors[i]+"
    ");""!=errors&&MODx.msg.alert(_("error"),errors),this.errors={}}}),MODx.util.MultiUploadDialog.BrowseButton=Ext.extend(Ext.Button,{input_name:"file",input_file:null,original_handler:null,original_scope:null,initComponent:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.initComponent.call(this),this.original_handler=this.handler||null,this.original_scope=this.scope||window,this.handler=null,this.scope=null},onRender:function(ct,position){MODx.util.MultiUploadDialog.BrowseButton.superclass.onRender.call(this,ct,position),this.createInputFile()},createInputFile:function(){var button_container=this.el.child("button").wrap();this.input_file=button_container.createChild({tag:"input",type:"file",size:1,name:this.input_name||Ext.id(this.el),style:"cursor: pointer; display: inline-block; opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%;",multiple:!0}),this.handleMouseEvents&&(this.input_file.on("mouseover",this.onMouseOver,this),this.input_file.on("mousedown",this.onMouseDown,this)),this.tooltip&&("object"==typeof this.tooltip?Ext.QuickTips.register(Ext.apply({target:this.input_file},this.tooltip)):this.input_file.dom[this.tooltipType]=this.tooltip),this.input_file.on("change",this.onInputFileChange,this),this.input_file.on("click",function(e){e.stopPropagation()})},detachInputFile:function(no_create){var result=this.input_file;return"object"==typeof this.tooltip?Ext.QuickTips.unregister(this.input_file):this.input_file.dom[this.tooltipType]=null,this.input_file.removeAllListeners(),this.input_file=null,result},getInputFile:function(){return this.input_file},disable:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.disable.call(this),this.input_file.dom.disabled=!0},enable:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.enable.call(this),this.input_file.dom.disabled=!1},destroy:function(){var input_file=this.detachInputFile(!0);input_file.remove(),input_file=null,MODx.util.MultiUploadDialog.BrowseButton.superclass.destroy.call(this)},reset:function(){var form=new Ext.Element(document.createElement("form")),buttonParent=this.input_file.parent();form.appendChild(this.input_file),form.dom.reset(),buttonParent.appendChild(this.input_file)},onInputFileChange:function(ev){this.original_handler&&this.original_handler.call(this.original_scope,this,ev),this.fireEvent("click",this,ev)}}),Ext.reg("multiupload-browse-btn",MODx.util.MultiUploadDialog.BrowseButton),MODx.util.MultiUploadDialog.FilesGrid=function(config){config=config||{},Ext.applyIf(config,{height:300,autoScroll:!0,border:!1,fields:["name","size","file","permitted","message","uploaded"],paging:!1,remoteSort:!1,viewConfig:{forceFit:!0,getRowClass:function(record,index,rowParams){return record.get("permitted")?record.get("uploaded")?"upload-success":void 0:"upload-error"}},sortInfo:{field:"name",direction:"ASC"},deferRowRender:!0,anchor:"100%",autoExpandColumn:"state",columns:[{header:_("upload.columns.file"),dataIndex:"name",sortable:!0,width:200,renderer:function(value,meta,record){var id=Ext.id();return FileAPI.Image(record.get("file")).resize(100,50,"max").get(function(err,img){err||(img=new Ext.Element(img).addClass("upload-thumb"),Ext.get(id).insertFirst(img))}),'

    '+value+"

    "}},{header:_("upload.columns.state"),id:"state",width:100,renderer:function(value,meta,record){if(!record.get("permitted")||record.get("uploaded"))return'

    '+record.get("message")+"

    ";var id=Ext.id();return function(){record.progressbar=new Ext.ProgressBar({renderTo:id,value:0,text:"0 / "+record.get("size")})}.defer(25),'
    '}}],getMenu:function(){return[{text:_("upload.contextmenu.remove_entry"),handler:this.removeFile}]}}),MODx.util.MultiUploadDialog.FilesGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.util.MultiUploadDialog.FilesGrid,MODx.grid.LocalGrid,{removeFile:function(){var selected=this.getSelectionModel().getSelections();this.getStore().remove(selected)}}),Ext.reg("multiupload-grid-files",MODx.util.MultiUploadDialog.FilesGrid),MODx.util.MultiUploadDialog.Dialog=function(config){this.filesGridId=Ext.id(),config=config||{},Ext.applyIf(config,{permitted_extensions:permittedFileTypes,autoHeight:!0,width:600,closeAction:"hide",layout:"anchor",listeners:{show:{fn:this.onShow},hide:{fn:this.onHide}},items:[{xtype:"multiupload-grid-files",id:this.filesGridId,anchor:"100%"}],buttons:[{xtype:"multiupload-browse-btn",text:_("upload.buttons.choose"),cls:"primary-button",listeners:{click:{scope:this,fn:function(btn,ev){var files=FileAPI.getFiles(ev);this.addFiles(files),btn.reset()}}}},{xtype:"splitbutton",text:_("upload.buttons.clear"),listeners:{click:{scope:this,fn:this.clearStore}},menu:new Ext.menu.Menu({items:[{text:_("upload.clear_list.all"),listeners:{click:{scope:this,fn:this.clearStore}}},{text:_("upload.clear_list.notpermitted"),listeners:{click:{scope:this,fn:this.clearNotPermittedItems}}}]})},{xtype:"button",text:_("upload.buttons.upload"),cls:"primary-button",listeners:{click:{scope:this,fn:this.startUpload}}},{xtype:"button",text:_("upload.buttons.close"),listeners:{click:{scope:this,fn:this.hideDialog}}}]}),MODx.util.MultiUploadDialog.Dialog.superclass.constructor.call(this,config)};var originalWindowOnShow=Ext.Window.prototype.onShow,originalWindowOnHide=Ext.Window.prototype.onHide;Ext.extend(MODx.util.MultiUploadDialog.Dialog,Ext.Window,{addFiles:function(files){var store=Ext.getCmp(this.filesGridId).getStore(),dialog=this;FileAPI.each(files,function(file){var permitted=!0,message="";api.isFileSizePermitted(file.size)||(message=_("upload.notpermitted.filesize",{size:api.humanFileSize(file.size),max:api.humanFileSize(maxFileSize)}),permitted=!1),api.isFileTypePermitted(file.name,dialog.permitted_extensions)||(message=_("upload.notpermitted.extension",{ext:api.getFileExtension(file.name)}),permitted=!1);var data={name:file.name,size:api.humanFileSize(file.size),file:file,permitted:permitted,message:message,uploaded:!1},p=new store.recordType(data);store.insert(0,p)})},startUpload:function(){var dialog=this,files=[],params=Ext.apply(this.base_params,{HTTP_MODAUTH:MODx.siteId});Ext.getCmp(this.filesGridId).getStore().each(function(){var file=this.get("file");this.get("permitted")&&!this.get("uploaded")&&(file.record=this,files.push(file))});FileAPI.upload({url:this.url,data:params,files:{file:files},fileprogress:function(evt,file){file.record.progressbar.updateProgress(evt.loaded/evt.total,_("upload.upload_progress",{loaded:api.humanFileSize(evt.loaded),total:file.record.get("size")}),!0)},filecomplete:function(err,xhr,file,options){if(err)401!==xhr.status&&MODx.msg.alert(_("upload.msg.title.error"),err);else{var resp=Ext.util.JSON.decode(xhr.response);resp.success?(file.record.set("uploaded",!0),file.record.set("message",_("upload.upload.success"))):(file.record.set("permitted",!1),file.record.set("message",resp.message))}},complete:function(err,xhr){dialog.fireEvent("uploadsuccess")}})},removeEntry:function(record){Ext.getCmp(this.filesGridId).getStore().remove(record)},clearStore:function(){Ext.getCmp(this.filesGridId).getStore().removeAll()},clearNotPermittedItems:function(){var store=Ext.getCmp(this.filesGridId).getStore(),notPermitted=store.query("permitted",!1);store.remove(notPermitted.getRange())},hideDialog:function(){this.hide()},onDDrag:function(ev){ev&&ev.preventDefault()},onDDrop:function(ev){ev&&ev.preventDefault();var dialog=this;FileAPI.getDropFiles(ev.browserEvent,function(files){files.length&&dialog.addFiles(files)})},onShow:function(){var ret=originalWindowOnShow.apply(this,arguments);return Ext.getCmp(this.filesGridId).getStore().removeAll(),this.isDDSet||(this.el.on("dragenter",this.onDDrag,this),this.el.on("dragover",this.onDDrag,this),this.el.on("dragleave",this.onDDrag,this),this.el.on("drop",this.onDDrop,this),this.isDDSet=!0),ret},onHide:function(){var ret=originalWindowOnHide.apply(this,arguments);return this.el.un("dragenter",this.onDDrag,this),this.el.un("dragover",this.onDDrag,this),this.el.un("dragleave",this.onDDrag,this),this.el.un("drop",this.onDDrop,this),this.isDDSet=!1,ret},setBaseParams:function(params){this.base_params=params,this.setTitle(_("upload.title.destination_path",{path:this.base_params.path}))}}),Ext.reg("multiupload-window-dialog",MODx.util.MultiUploadDialog.Dialog)}(),Ext.namespace("MODx.tree"),MODx.tree.Tree=function(config){var tl,root;if(config=config||{},Ext.applyIf(config,{baseParams:{},action:"getNodes",loaderConfig:{}}),config.action&&(config.baseParams.action=config.action),config.loaderConfig.dataUrl=config.url,config.loaderConfig.baseParams=config.baseParams,Ext.applyIf(config.loaderConfig,{preloadChildren:!0,clearOnLoad:!0}),this.config=config,root=this.config.url?((tl=new MODx.tree.TreeLoader(config.loaderConfig)).on("beforeload",function(l,node){tl.dataUrl=this.config.url+"?action="+this.config.action+"&id="+node.attributes.id,node.attributes.type&&(tl.dataUrl+="&type="+node.attributes.type)},this),tl.on("load",this.onLoad,this),{nodeType:"async",text:config.root_name||config.rootName||"",qtip:config.root_qtip||config.rootQtip||"",draggable:!1,id:config.root_id||config.rootId||"root",pseudoroot:!0,attributes:{pseudoroot:!0},cls:"tree-pseudoroot-node",iconCls:config.root_iconCls||config.rootIconCls||""}):(tl=new Ext.tree.TreeLoader({preloadChildren:!0,baseAttrs:{uiProvider:MODx.tree.CheckboxNodeUI}}),new Ext.tree.TreeNode({text:this.config.rootName||"",draggable:!1,id:this.config.rootId||"root",children:this.config.data||[],pseudoroot:!0})),Ext.applyIf(config,{useArrows:!0,autoScroll:!0,animate:!0,enableDD:!0,enableDrop:!0,ddAppendOnly:!1,containerScroll:!0,collapsible:!0,border:!1,autoHeight:!0,rootVisible:!0,loader:tl,header:!1,hideBorders:!0,bodyBorder:!1,cls:"modx-tree",root:root,preventRender:!1,stateful:!0,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1,listeners:{show:function(){var node=this.activeNode;node&&node.ui.addClass("x-tree-selected")},hide:function(){var node=this.activeNode;node&&(node.isSelected()||node.ui&&node.ui.removeClass("x-tree-selected"))}}}}),!0!==config.remoteToolbar||void 0!==config.tbar&&null!==config.tbar){var tb=this.getToolbar();if(config.tbar&&config.useDefaultToolbar)for(var i=0;i"+node.attributes.text+"
    ",target:this}),node:node,handler:function(btn,evt){evt.stopPropagation(evt),node.getOwnerTree().handleDirectCreateClick(node)},iconCls:"icon-plus-circle",renderTo:elId,listeners:{mouseover:function(button,e){button.tooltip.onTargetOver(e)},mouseout:function(button,e){button.tooltip.onTargetOut(e)}}})}},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll();var handled=!1;if(!Ext.isEmpty(node.attributes.treeHandler)||node.isRoot&&!Ext.isEmpty(node.childNodes[0].attributes.treeHandler)){var h=Ext.getCmp(node.isRoot?node.childNodes[0].attributes.treeHandler:node.attributes.treeHandler);h&&(node.isRoot&&(node.attributes.type="root"),m=h.getMenu(this,node,e),handled=!0)}handled||(this.getMenu?m=this.getMenu(node,e):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items)),m&&0s[i].length&&(f=!0):s.splice(i,1);f||s.push(p)}}else for(s=s.remove(p),i=0;i',id:"modx-iprops-container"}]}],modps:[]}),MODx.window.InsertElement.superclass.constructor.call(this,config),this.on("show",function(){this.center(),this.mask=new Ext.LoadMask(Ext.get("modx-iprops-container"),{msg:_("loading")}),this.mask.show()},this)},Ext.extend(MODx.window.InsertElement,MODx.Window,{changePropertySet:function(cb){var fp=Ext.getCmp("modx-iprops-fp");fp&&fp.destroy();var resourceCmp=Ext.get("modx-resource-id"),resourceId=null!==resourceCmp?resourceCmp.getValue():0;Ext.getCmp("modx-dise-proplist").getUpdater().update({url:MODx.config.connector_url,params:{action:"Element/GetInsertProperties",classKey:this.config.record.classKey,pk:this.config.record.pk,resourceId:resourceId,propertySet:cb.getValue()},scripts:!0,callback:this.onPropFormLoad,scope:this}),this.modps=[],this.mask.show()},createStore:function(data){return new Ext.data.SimpleStore({fields:["v","d"],data:data})},onPropFormLoad:function(el,s,r){this.mask.hide();var vs=Ext.decode(r.responseText);if(!vs||vs.length<=0)return!1;for(var i=0;i]+)>)/gi,"")))}var menuindexField=Ext.getCmp("modx-resource-menuindex");menuindexField&&void 0!==o.result.object.menuindex&&menuindexField.setValue(o.result.object.menuindex);var isfolderFieldCmb=Ext.getCmp("modx-resource-isfolder");isfolderFieldCmb&&"boolean"==typeof o.result.object.isfolder&&isfolderFieldCmb.setValue(o.result.object.isfolder)}},_handleDrop:function(e){var dropNode=e.dropNode,targetParent=e.target;if(null!==targetParent.findChild("id",dropNode.attributes.id))return!1;if("modContext"==dropNode.attributes.type&&(1";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record.pagetitle)+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target,function(){Ext.isSafari?w.setPosition(null,30):w.center()},this)},scope:this}}})},_getModContextMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&m.push({text:_("edit_context"),handler:function(){var at=this.cm.activeNode.attributes;this.loadAction("a=context/update&key="+at.pk)}}),m.push({text:_("context_refresh"),handler:function(){this.refreshNode(this.cm.activeNode.id,!0)}}),ui.hasClass("pnewdoc")&&(m.push("-"),this._getCreateMenus(m,"0",ui)),ui.hasClass("pnew")&&m.push({text:_("context_duplicate"),handler:this.duplicateContext}),ui.hasClass("pdelete")&&(m.push("-"),m.push({text:_("context_remove"),handler:this.removeContext})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),m},overviewResource:function(){this.loadAction("a=resource/data")},quickUpdateResource:function(itm,e){this.quickUpdate(itm,e,itm.classKey)},editResource:function(){this.loadAction("a=resource/update")},_getModResourceMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pview")&&m.push({text:_("resource_overview"),handler:this.overviewResource}),ui.hasClass("pedit")&&m.push({text:_("resource_edit"),handler:this.editResource}),ui.hasClass("pqupdate")&&m.push({text:_("quick_update_resource"),classKey:a.classKey,handler:this.quickUpdateResource}),ui.hasClass("pduplicate")&&m.push({text:_("resource_duplicate"),handler:this.duplicateResource}),m.push({text:_("resource_refresh"),handler:this.refreshResource,scope:this}),ui.hasClass("pnew")&&(m.push("-"),this._getCreateMenus(m,null,ui)),ui.hasClass("psave")&&(m.push("-"),ui.hasClass("ppublish")&&ui.hasClass("unpublished")?m.push({text:_("resource_publish"),handler:this.publishDocument}):ui.hasClass("punpublish")&&m.push({text:_("resource_unpublish"),handler:this.unpublishDocument}),ui.hasClass("pundelete")&&ui.hasClass("deleted")?m.push({text:_("resource_undelete"),handler:this.undeleteDocument}):ui.hasClass("pdelete")&&!ui.hasClass("deleted")&&m.push({text:_("resource_delete"),handler:this.deleteDocument})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),ui.hasClass("pview")&&""!=a.preview_url&&(m.push("-"),m.push({text:_("resource_view"),handler:this.preview})),m},refreshResource:function(){this.refreshNode(this.cm.activeNode.id)},createResourceHere:function(itm){var at=this.cm.activeNode.attributes,p=itm.usePk?itm.usePk:at.pk;this.loadAction("a=resource/create&class_key="+itm.classKey+"&parent="+p+(at.ctx?"&context_key="+at.ctx:""))},createResource:function(itm,e){var at=this.cm.activeNode.attributes,p=itm.usePk?itm.usePk:at.pk;this.quickCreate(itm,e,itm.classKey,at.ctx,p)},_getCreateMenus:function(m,pk,ui){var types=MODx.config.resource_classes,o=this.fireEvent("loadCreateMenus",types);Ext.isObject(o)&&Ext.apply(types,o);var coreTypes=["modDocument","modWebLink","modSymLink","modStaticResource"],ct=[],qct=[];for(var k in types)(-1==coreTypes.indexOf(k)||ui.hasClass("pnew_"+k))&&(ct.push({text:types[k].text_create_here,classKey:k,usePk:pk||!1,handler:this.createResourceHere,scope:this}),ui&&ui.hasClass("pqcreate")&&qct.push({text:types[k].text_create,classKey:k,handler:this.createResource,scope:this}));return m.push({text:_("create"),handler:function(){return!1},menu:{items:ct}}),ui&&ui.hasClass("pqcreate")&&m.push({text:_("quick_create"),handler:function(){return!1},menu:{items:qct}}),m},_handleDrag:function(dropEvent){var encNodes=Ext.encode(function simplifyNodes(node){for(var resultNode={},kids=node.childNodes,len=kids.length,i=0;i[[*pagetitle]]

    "+_("resource_pagetitle_help"),anchor:"100%",allowBlank:!1},{xtype:"textfield",name:"longtitle",id:"modx-"+this.ident+"-longtitle",fieldLabel:_("resource_longtitle"),description:"[[*longtitle]]
    "+_("resource_longtitle_help"),anchor:"100%"},{xtype:"textarea",name:"description",id:"modx-"+this.ident+"-description",fieldLabel:_("resource_description"),description:"[[*description]]
    "+_("resource_description_help"),anchor:"100%",grow:!1,height:50},{xtype:"textarea",name:"introtext",id:"modx-"+this.ident+"-introtext",fieldLabel:_("resource_summary"),description:"[[*introtext]]
    "+_("resource_summary_help"),anchor:"100%",height:50}]},{columnWidth:.4,border:!1,layout:"form",items:[{xtype:"modx-combo-template",name:"template",id:"modx-"+this.ident+"-template",fieldLabel:_("resource_template"),description:"[[*template]]
    "+_("resource_template_help"),editable:!1,anchor:"100%",baseParams:{action:"Element/Template/GetList",combo:"1",limit:0},value:MODx.config.default_template},{xtype:"textfield",name:"alias",id:"modx-"+this.ident+"-alias",fieldLabel:_("resource_alias"),description:"[[*alias]]
    "+_("resource_alias_help"),anchor:"100%"},{xtype:"textfield",name:"menutitle",id:"modx-"+this.ident+"-menutitle",fieldLabel:_("resource_menutitle"),description:"[[*menutitle]]
    "+_("resource_menutitle_help"),anchor:"100%"},{xtype:"textfield",fieldLabel:_("resource_link_attributes"),description:"[[*link_attributes]]
    "+_("resource_link_attributes_help"),name:"link_attributes",id:"modx-"+this.ident+"-attributes",maxLength:255,anchor:"100%"},{xtype:"xcheckbox",boxLabel:_("resource_hide_from_menus"),description:"[[*hidemenu]]
    "+_("resource_hide_from_menus_help"),hideLabel:!0,name:"hidemenu",id:"modx-"+this.ident+"-hidemenu",inputValue:1,checked:"1"==MODx.config.hidemenu_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_published"),description:"[[*published]]
    "+_("resource_published_help"),hideLabel:!0,name:"published",id:"modx-"+this.ident+"-published",inputValue:1,checked:"1"==MODx.config.publish_default?1:0},{xtype:"xcheckbox",boxLabel:_("deleted"),description:"[[*deleted]]
    "+_("resource_delete"),hideLabel:!0,name:"deleted",id:"modx-"+this.ident+"-deleted",inputValue:1,checked:"1"==MODx.config.deleted_default?1:0}]}]},MODx.getQRContentField(this.ident,config.record.class_key)]},{id:"modx-"+this.ident+"-settings",title:_("settings"),layout:"form",cls:"modx-panel",autoHeight:!0,forceLayout:!0,labelWidth:100,defaults:{autoHeight:!0,border:!1},items:MODx.getQRSettings(this.ident,config.record)}]}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateResource,MODx.Window),Ext.reg("modx-window-quick-create-modResource",MODx.window.QuickCreateResource),MODx.window.QuickUpdateResource=function(config){config=config||{},this.ident=config.ident||"qur"+Ext.id(),Ext.applyIf(config,{title:_("quick_update_resource"),id:this.ident,action:"Resource/Update",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateResource,MODx.window.QuickCreateResource),Ext.reg("modx-window-quick-update-modResource",MODx.window.QuickUpdateResource),MODx.getQRContentField=function(id,cls){id=id||"qur",cls=cls||"MODX\\Revolution\\modDocument";Ext.getBody().getViewSize();var o={};switch(cls){case"MODX\\Revolution\\modSymLink":o={xtype:"textfield",fieldLabel:_("symlink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255};break;case"MODX\\Revolution\\modWebLink":o={xtype:"textfield",fieldLabel:_("weblink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"http://"};break;case"MODX\\Revolution\\modStaticResource":o={xtype:"modx-combo-browser",browserEl:"modx-browser",prependPath:!1,prependUrl:!1,fieldLabel:_("static_resource"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"",listeners:{select:{fn:function(data){"/"==data.url.substring(0,1)&&Ext.getCmp("modx-"+id+"-content").setValue(data.url.substring(1))},scope:this}}};break;case"MODX\\Revolution\\modResource":case"MODX\\Revolution\\modDocument":default:o={xtype:"textarea",name:"content",id:"modx-"+id+"-content",fieldLabel:_("content"),labelSeparator:"",anchor:"100%",style:"min-height: 200px",grow:!0}}return o},MODx.getQRSettings=function(id,va){return[{layout:"column",border:!1,anchor:"100%",defaults:{labelSeparator:"",labelAlign:"top",border:!1,layout:"form"},items:[{columnWidth:.5,items:[{xtype:"hidden",name:"parent",id:"modx-"+(id=id||"qur")+"-parent",value:va.parent},{xtype:"hidden",name:"context_key",id:"modx-"+id+"-context_key",value:va.context_key},{xtype:"hidden",name:"class_key",id:"modx-"+id+"-class_key",value:va.class_key},{xtype:"hidden",name:"publishedon",id:"modx-"+id+"-publishedon",value:va.publishedon},{xtype:"modx-field-parent-change",fieldLabel:_("resource_parent"),description:"[[*parent]]
    "+_("resource_parent_help"),name:"parent-cmb",id:"modx-"+id+"-parent-change",value:va.parent||0,anchor:"100%",parentcmp:"modx-"+id+"-parent",contextcmp:"modx-"+id+"-context_key",currentid:va.id},{xtype:"modx-combo-class-derivatives",fieldLabel:_("resource_type"),description:"[[*class_key]]
    ",name:"class_key",hiddenName:"class_key",id:"modx-"+id+"-class-key",anchor:"100%",value:null!=va.class_key?va.class_key:"modDocument"},{xtype:"modx-combo-content-type",fieldLabel:_("resource_content_type"),description:"[[*content_type]]
    "+_("resource_content_type_help"),name:"content_type",hiddenName:"content_type",id:"modx-"+id+"-type",anchor:"100%",value:null!=va.content_type?va.content_type:MODx.config.default_content_type||1},{xtype:"modx-combo-content-disposition",fieldLabel:_("resource_contentdispo"),description:"[[*content_dispo]]
    "+_("resource_contentdispo_help"),name:"content_dispo",hiddenName:"content_dispo",id:"modx-"+id+"-dispo",anchor:"100%",value:null!=va.content_dispo?va.content_dispo:0},{xtype:"numberfield",fieldLabel:_("resource_menuindex"),description:"[[*menuindex]]
    "+_("resource_menuindex_help"),name:"menuindex",id:"modx-"+id+"-menuindex",width:75,value:va.menuindex||0}]},{columnWidth:.5,items:[{xtype:"xdatetime",fieldLabel:_("resource_publishedon"),description:"[[*publishedon]]
    "+_("resource_publishedon_help"),name:"publishedon",id:"modx-"+id+"-publishedon",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.publishedon},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_publishdate"),description:"[[*pub_date]]
    "+_("resource_publishdate_help"),name:"pub_date",id:"modx-"+id+"-pub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.pub_date},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_unpublishdate"),description:"[[*unpub_date]]
    "+_("resource_unpublishdate_help"),name:"unpub_date",id:"modx-"+id+"-unpub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.unpub_date},{xtype:"xcheckbox",boxLabel:_("resource_folder"),description:_("resource_folder_help"),hideLabel:!0,name:"isfolder",id:"modx-"+id+"-isfolder",inputValue:1,checked:null!=va.isfolder&&va.isfolder},{xtype:"xcheckbox",boxLabel:_("resource_show_in_tree"),description:_("resource_show_in_tree_help"),hideLabel:!0,name:"show_in_tree",id:"modx-"+id+"-show_in_tree",inputValue:1,checked:null!=va.show_in_tree?va.show_in_tree:1},{xtype:"xcheckbox",boxLabel:_("resource_hide_children_in_tree"),description:_("resource_hide_children_in_tree_help"),hideLabel:!0,name:"hide_children_in_tree",id:"modx-"+id+"-hide_children_in_tree",inputValue:1,checked:null!=va.hide_children_in_tree&&va.hide_children_in_tree},{xtype:"xcheckbox",boxLabel:_("resource_alias_visible"),description:_("resource_alias_visible_help"),hideLabel:!0,name:"alias_visible",id:"modx-"+id+"-alias-visible",inputValue:1,checked:null!=va.alias_visible?va.alias_visible:1},{xtype:"xcheckbox",boxLabel:_("resource_uri_override"),description:_("resource_uri_override_help"),hideLabel:!0,name:"uri_override",id:"modx-"+id+"-uri-override",value:1,checked:!!parseInt(va.uri_override),listeners:{check:{fn:MODx.handleFreezeUri}}},{xtype:"textfield",fieldLabel:_("resource_uri"),description:"[[*uri]]
    "+_("resource_uri_help"),name:"uri",id:"modx-"+id+"-uri",maxLength:255,anchor:"100%",value:va.uri||"",hidden:!va.uri_override},{xtype:"xcheckbox",boxLabel:_("resource_richtext"),description:_("resource_richtext_help"),hideLabel:!0,name:"richtext",id:"modx-"+id+"-richtext",inputValue:1,checked:void 0!==va.richtext?va.richtext?1:0:"1"==MODx.config.richtext_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_searchable"),description:_("resource_searchable_help"),hideLabel:!0,name:"searchable",id:"modx-"+id+"-searchable",inputValue:1,checked:void 0!==va.searchable?va.searchable?1:0:"1"==MODx.config.search_default?1:0,listeners:{check:{fn:MODx.handleQUCB}}},{xtype:"xcheckbox",boxLabel:_("resource_cacheable"),description:_("resource_cacheable_help"),hideLabel:!0,name:"cacheable",id:"modx-"+id+"-cacheable",inputValue:1,checked:void 0!==va.cacheable?va.cacheable?1:0:"1"==MODx.config.cache_default?1:0},{xtype:"xcheckbox",name:"clearCache",id:"modx-"+id+"-clearcache",boxLabel:_("resource_syncsite"),description:_("resource_syncsite_help"),hideLabel:!0,inputValue:1,checked:void 0!==va.clearCache?va.clearCache?1:0:"1"==MODx.config.syncsite_default?1:0}]}]}]},MODx.handleQUCB=function(cb){var h=Ext.getCmp(cb.id+"-hd");cb.checked&&h?(cb.setValue(1),h.setValue(1)):h&&(cb.setValue(0),h.setValue(0))},MODx.handleFreezeUri=function(cb){var uri=Ext.getCmp(cb.id.replace("-override",""));if(!uri)return!1;cb.checked?uri.show():uri.hide()},Ext.override(Ext.tree.AsyncTreeNode,{listeners:{click:{fn:function(){return console.log("Clicked me!",arguments),!1},scope:this}}}),MODx.tree.Element=function(config){config=config||{},Ext.applyIf(config,{rootVisible:!1,enableDD:!Ext.isEmpty(MODx.config.enable_dragdrop),ddGroup:"modx-treedrop-elements-dd",title:"",url:MODx.config.connector_url,action:"Element/GetNodes",sortAction:"Element/Sort",baseParams:{currentElement:MODx.request.id||0,currentAction:MODx.request.a||0}}),MODx.tree.Element.superclass.constructor.call(this,config),this.on("afterSort",this.afterSort)},Ext.extend(MODx.tree.Element,MODx.tree.Tree,{forms:{},windows:{},stores:{},getToolbar:function(){return[]},createCategory:function(n,e){var r={};this.cm.activeNode&&this.cm.activeNode.attributes.data&&(r.parent=this.cm.activeNode.attributes.data.id),MODx.load({xtype:"modx-window-category-create",record:r,listeners:{success:{fn:function(){var node=this.cm.activeNode?this.cm.activeNode.id:"n_category",self=-1!==node.indexOf("_category_");this.refreshNode(node,self)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameCategory:function(itm,e){var r=this.cm.activeNode.attributes.data;MODx.load({xtype:"modx-window-category-rename",record:r,listeners:{success:{fn:function(r){var c=r.a.result.object,n=this.cm.activeNode;n.setText(c.category+" ("+c.id+")"),Ext.get(n.getUI().getEl()).frame(),n.attributes.data.id=c.id,n.attributes.data.category=c.category},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeCategory:function(itm,e){var id=this.cm.activeNode.attributes.data.id;MODx.msg.confirm({title:_("warning"),text:_("category_confirm_delete"),url:MODx.config.connector_url,params:{action:"Element/Category/Remove",id:id},listeners:{success:{fn:function(){this.cm.activeNode.remove()},scope:this}}})},duplicateElement:function(itm,e,id,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:id},listeners:{success:{fn:function(results){var rec={id:id,type:type,name:_("duplicate_of",{name:this.cm.activeNode.attributes.name}),caption:_("duplicate_of",{name:this.cm.activeNode.attributes.caption}),category:results.object.category,source:results.object.source,static:results.object.static,static_file:results.object.static_file};MODx.load({xtype:"modx-window-element-duplicate",record:rec,redirect:!1,listeners:{success:{fn:function(r){var response=Ext.decode(r.a.response.responseText);response.object.redirect?MODx.loadPage("element/"+rec.type+"/update","id="+response.object.id):this.refreshNode(this.cm.activeNode.id)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},removeElement:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.msg.confirm({title:_("warning"),text:_("remove_this_confirm",{type:_(oar[0]),name:this.cm.activeNode.attributes.name}),url:MODx.config.connector_url,params:{action:"element/"+oar[0]+"/remove",id:oar[2]},listeners:{success:{fn:function(){this.cm.activeNode.remove(),MODx.request.a=="element/"+oar[0]+"/update"&&MODx.request.id==oar[2]&&MODx.loadPage("welcome")},scope:this}}})},activatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Element/Plugin/Activate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},deactivatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Element/Plugin/Deactivate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},quickCreate:function(itm,e,type){var r={category:this.cm.activeNode.attributes.pk||""},w=MODx.load({xtype:"modx-window-quick-create-"+type,record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id,!0)},scope:this},hide:{fn:function(){this.destroy()}}}});w.setValues(r),w.show(e.target)},quickUpdate:function(itm,e,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:this.cm.activeNode.attributes.pk},listeners:{success:{fn:function(r){var nameField="template"==type?"templatename":"name",w=MODx.load({xtype:"modx-window-quick-update-"+type,record:r.object,listeners:{success:{fn:function(r){this.refreshNode(this.cm.activeNode.id);var newTitle=''+r.f.findField(nameField).getValue()+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+w.record[nameField]+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target)},scope:this}}})},_createElement:function(itm,e,t){var oar=this.cm.activeNode.id.substr(2).split("_"),type="type"==oar[0]?oar[1]:oar[0],cat_id="type"==oar[0]?0:"category"==oar[1]?oar[2]:oar[3],a="element/"+type+"/create";return this.redirect("?a="+a+"&category="+cat_id),this.cm.hide(),!1},afterSort:function(o){var tn=o.event.target.attributes;if("category"==tn.type){var dn=o.event.dropNode.attributes;"n_category"!=tn.id&&"category"==dn.type?o.event.target.expand():(this.refreshNode(o.event.target.attributes.id,!0),this.refreshNode("n_type_"+o.event.dropNode.attributes.type,!0))}},_handleDrop:function(e){var target=e.target;return"above"!=e.point&&"below"!=e.point&&(("MODX\\Revolution\\modCategory"==target.attributes.classKey||"root"==target.attributes.classKey)&&(!!this.isCorrectType(e.dropNode,target)&&("category"==target.attributes.type&&"append"==e.point||0"+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&(m.push({text:_("edit_"+a.type),type:a.type,pk:a.pk,handler:function(itm,e){MODx.loadPage("element/"+itm.type+"/update","id="+itm.pk)}}),m.push({text:_("quick_update_"+a.type),type:a.type,handler:function(itm,e){this.quickUpdate(itm,e,itm.type)}}),"modPlugin"==a.classKey&&(a.active?m.push({text:_("plugin_deactivate"),type:a.type,handler:this.deactivatePlugin}):m.push({text:_("plugin_activate"),type:a.type,handler:this.activatePlugin}))),ui.hasClass("pnew")&&m.push({text:_("duplicate_"+a.type),pk:a.pk,type:a.type,handler:function(itm,e){this.duplicateElement(itm,e,itm.pk,itm.type)}}),ui.hasClass("pdelete")&&m.push({text:_("remove_"+a.type),handler:this.removeElement}),m.push("-"),ui.hasClass("pnew")&&m.push({text:_("add_to_category_"+a.type),handler:this._createElement}),ui.hasClass("pnewcat")&&m.push({text:_("new_category"),handler:this.createCategory}),m},_getCategoryMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pnewcat")&&m.push({text:_("category_create"),handler:this.createCategory}),ui.hasClass("peditcat")&&m.push({text:_("category_rename"),handler:this.renameCategory}),2",{cls:"x-btn-icon icon-file_manager",tooltip:{text:_("modx_browser")},handler:this.loadFileManager,scope:this,hidden:!(MODx.perm.file_manager&&!MODx.browserOpen)}],tbarCfg:{id:config.id+"-tbar"}}),MODx.tree.Directory.superclass.constructor.call(this,config),this.addEvents({beforeUpload:!0,afterUpload:!0,afterQuickCreate:!0,afterRename:!0,afterRemove:!0,fileBrowserSelect:!0,changeSource:!0,afterSort:!0}),this.on("click",function(n,e){n.select(),this.cm.activeNode=n},this),this.on("render",function(){var el=Ext.get(this.config.id);el.createChild({tag:"div",id:this.config.id+"_tb"}),el.createChild({tag:"div",id:this.config.id+"_filter"}),this.addSourceToolbar()},this),this.on("show",function(){if(!this.config.hideSourceCombo)try{this.sourceCombo.show()}catch(e){}},this),this._init(),this.on("afterrender",this.showRefresh,this),this.on("afterSort",this._handleAfterDrop,this),this.on("click",function(e){null!=this.uploader&&this.uploader.setBaseParams({path:e.id})}),this.uploader=new MODx.util.MultiUploadDialog.Upload({url:MODx.config.connector_url,base_params:{action:"Browser/File/Upload",wctx:MODx.ctx||"",source:this.getSource()}}),this.uploader.on("beforeupload",this.beforeUpload,this),this.uploader.on("uploadsuccess",this.uploadSuccess,this),this.uploader.on("uploaderror",this.uploadError,this),this.uploader.on("uploadfailed",this.uploadFailed,this)},Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{windows:{},getRootMenu:function(node){var menu=[];return MODx.perm.directory_create&&menu.push({text:_("file_folder_create"),handler:this.createDirectory,scope:this}),MODx.perm.file_create&&menu.push({text:_("file_create"),handler:this.createFile,scope:this}),MODx.perm.file_upload&&menu.push({text:_("upload_files"),handler:this.uploadFiles,scope:this}),node.ownerTree.el.hasClass("pupdate")&&menu.push(["-",{text:_("update"),handler:function(){MODx.loadPage("source/update","id="+node.ownerTree.source)}}]),menu},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll(),node.isRoot?m=this.getRootMenu(node):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items),m&&0]+)>)/gi,"")))}targetNode.reload(!0)},_handleDrag:function(dropEvent){var from=dropEvent.dropNode.attributes.id,to=dropEvent.target.attributes.id,orgSource="number"==typeof dropEvent.dropNode.attributes.sid?dropEvent.dropNode.attributes.sid:this.config.baseParams.source,destSource="number"==typeof dropEvent.target.attributes.sid?dropEvent.target.attributes.sid:0;destSource||(destSource=dropEvent.tree.source),MODx.Ajax.request({url:this.config.url,params:{source:orgSource,from:from,destSource:destSource,to:to,action:this.config.sortAction||"Browser/Directory/Sort",point:dropEvent.point},listeners:{success:{fn:function(r){var el=dropEvent.dropNode.getUI().getTextEl();el&&Ext.get(el).frame(),this.fireEvent("afterSort",{event:dropEvent,result:r})},scope:this},failure:{fn:function(r){return MODx.form.Handler.errorJSON(r),this.refresh(),""!=r.message?MODx.msg.alert(_("error"),r.message):r.data&&r.data[0]&&MODx.msg.alert(r.data[0].id,r.data[0].msg),!1},scope:this}}})},getPath:function(node){var p,a,path="";if(null!=node&&null!=node)if(node!==this.root){for(p=node.parentNode,a=[node.text];p&&p!==this.root;)a.unshift(p.text),p=p.parentNode;a.unshift(this.root.attributes.path||""),path=a.join(this.pathSeparator)}else path=node.attributes.path||"";return(path=path.replace(/^[\/\.]*/,""))+"/"},editFile:function(itm,e){MODx.loadPage("system/file/edit","file="+this.cm.activeNode.attributes.id+"&source="+this.config.source)},openFile:function(itm,e){this.cm.activeNode.attributes.urlExternal&&window.open(this.cm.activeNode.attributes.urlExternal)},quickUpdateFile:function(itm,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Browser/File/Get",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(response){var r={file:node.attributes.id,name:node.text,path:node.attributes.pathRelative,source:this.getSource(),content:response.object.content};MODx.load({xtype:"modx-window-file-quick-update",record:r,listeners:{hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},createFile:function(itm,e){var active=this.cm.activeNode,dir="";if(active&&active.attributes)if(active.isRoot||"dir"===active.attributes.type)dir=active.attributes.id;else if("file"===active.attributes.type){var path=active.attributes.path;dir=path.substr(0,path.lastIndexOf("/")+1)}MODx.loadPage("system/file/create","directory="+dir+"&source="+this.getSource())},quickCreateFile:function(itm,e){var r={directory:this.cm.activeNode.attributes.id,source:this.getSource()};MODx.load({xtype:"modx-window-file-quick-create",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterQuickCreate"),this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},browser:null,loadFileManager:function(btn,e){var refresh=!1;null===this.browser?this.browser=MODx.load({xtype:"modx-browser",hideFiles:MODx.config.modx_browser_tree_hide_files,rootId:"/",wctx:MODx.ctx,source:this.config.baseParams.source,listeners:{select:{fn:function(data){this.fireEvent("fileBrowserSelect",data)},scope:this}}}):refresh=!0,this.browser&&(this.browser.setSource(this.config.baseParams.source),refresh&&this.browser.win.tree.refresh(),this.browser.show())},renameNode:function(field,nv,ov){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Browser/File/Rename",new_name:nv,old_name:ov,file:this.treeEditor.editNode.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshActiveNode()},scope:this}}})},renameDirectory:function(item,e){var node=this.cm.activeNode,r={old_name:node.text,name:node.text,path:node.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-directory-rename",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameFile:function(item,e){var node=this.cm.activeNode,r={old_name:node.text,name:node.text,path:node.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-file-rename",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshParentNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},createDirectory:function(item,e){var node=!(!this.cm||!this.cm.activeNode)&&this.cm.activeNode,r={parent:node&&"dir"==node.attributes.type?node.attributes.pathRelative:"/",source:this.getSource()};MODx.load({xtype:"modx-window-directory-create",record:r,listeners:{success:{fn:function(){var parent=Ext.getCmp("folder-parent").getValue();"constructor"===this.cm.activeNode.constructor.name||""===parent||"/"===parent?this.refresh():this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e?e.target:Ext.getBody())},setVisibility:function(item,e){var node=this.cm.activeNode,r={path:node.attributes.path,visibility:node.attributes.visibility,source:this.getSource()};MODx.load({xtype:"modx-window-set-visibility",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeDirectory:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_folder_remove_confirm"),url:MODx.config.connector_url,params:{action:"Browser/Directory/Remove",dir:node.attributes.path,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},removeFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_confirm_remove"),url:MODx.config.connector_url,params:{action:"Browser/File/Remove",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},_afterRemove:function(){this.fireEvent("afterRemove"),this.refreshParentNode(),this.cm.activeNode=null},unpackFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_download_unzip")+" "+node.attributes.id,url:MODx.config.connectors_url,params:{action:"Browser/File/Unpack",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource(),path:node.attributes.directory},listeners:{success:{fn:this.refreshParentNode,scope:this}}})},downloadFile:function(item,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Browser/File/Download",file:node.attributes.pathRelative,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){Ext.isEmpty(r.object.url)||(location.href=MODx.config.connector_url+"?action=Browser/File/Download&download=1&file="+r.object.url+"&HTTP_MODAUTH="+MODx.siteId+"&source="+this.getSource()+"&wctx="+MODx.ctx)},scope:this}}})},copyRelativePath:function(item,e){var node=this.cm.activeNode,dummyRelativePathInput=document.createElement("input");document.body.appendChild(dummyRelativePathInput),dummyRelativePathInput.setAttribute("value",node.attributes.pathRelative),dummyRelativePathInput.select(),document.execCommand("copy"),document.body.removeChild(dummyRelativePathInput)},getSource:function(){return this.config.baseParams.source},uploadFiles:function(){this.uploader.setBaseParams({source:this.getSource()}),this.uploader.browser=MODx.config.browserview,this.uploader.show()},uploadError:function(dlg,file,data,rec){},uploadFailed:function(dlg,file,rec){},uploadSuccess:function(){if(this.cm.activeNode){var node=this.cm.activeNode;if(node.isLeaf()){var pn=node.isLeaf()?node.parentNode:node;pn?pn.reload():node.id.match(/.*?\/$/)&&this.refreshActiveNode(),this.fireEvent("afterUpload",node)}else this.refreshActiveNode()}else this.refresh(),this.fireEvent("afterUpload")},beforeUpload:function(){var path=this.config.openTo||this.config.rootId||"/";this.cm.activeNode&&(path=this.getPath(this.cm.activeNode),this.cm.activeNode.isLeaf()&&(path=this.getPath(this.cm.activeNode.parentNode))),this.uploader.setBaseParams({action:"Browser/File/Upload",path:path,wctx:MODx.ctx||"",source:this.getSource()}),this.fireEvent("beforeUpload",this.cm.activeNode)}}),Ext.reg("modx-tree-directory",MODx.tree.Directory),MODx.window.CreateDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_create"),url:MODx.config.connector_url,action:"Browser/Directory/Create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("file_folder_parent"),id:"folder-parent",name:"parent",xtype:"textfield",anchor:"100%"}]}),MODx.window.CreateDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.CreateDirectory,MODx.Window),Ext.reg("modx-window-directory-create",MODx.window.CreateDirectory),MODx.window.SetVisibility=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_visibility"),url:MODx.config.connector_url,action:"Browser/Visibility",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{name:"path",fieldLabel:_("file_folder_path"),xtype:"statictextfield",anchor:"100%",submitValue:!0},{fieldLabel:_("file_folder_visibility_label"),name:"visibility",xtype:"modx-combo-visibility",anchor:"100%",allowBlank:!1},{hideLabel:!0,xtype:"displayfield",value:_("file_folder_visibility_desc"),anchor:"100%",allowBlank:!1}]}),MODx.window.SetVisibility.superclass.constructor.call(this,config)},Ext.extend(MODx.window.SetVisibility,MODx.Window),Ext.reg("modx-window-set-visibility",MODx.window.SetVisibility),MODx.window.RenameDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"Browser/Directory/Rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.RenameDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameDirectory,MODx.Window),Ext.reg("modx-window-directory-rename",MODx.window.RenameDirectory),MODx.window.RenameFile=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"Browser/File/Rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{name:"dir",xtype:"hidden"}]}),MODx.window.RenameFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameFile,MODx.Window),Ext.reg("modx-window-file-rename",MODx.window.RenameFile),MODx.window.QuickUpdateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_update"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"Browser/File/Update",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{xtype:"hidden",name:"file"},{fieldLabel:_("name"),name:"name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}],buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateFile,MODx.Window),Ext.reg("modx-window-file-quick-update",MODx.window.QuickUpdateFile),MODx.window.QuickCreateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_create"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"Browser/File/Create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("directory"),name:"directory",submitValue:!0,xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateFile,MODx.Window),Ext.reg("modx-window-file-quick-create",MODx.window.QuickCreateFile),MODx.panel.FileTree=function(config){config=config||{},Ext.applyIf(config,{_treePrefix:"source-tree-",autoHeight:!0,defaults:{autoHeight:!0,border:!1}}),MODx.panel.FileTree.superclass.constructor.call(this,config),this.on("render",this.getSourceList,this)},Ext.extend(MODx.panel.FileTree,Ext.Container,{getSourceList:function(){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Source/GetList",limit:0},listeners:{success:{fn:function(data){this.onSourceListReceived(data.results)},scope:this},failure:{fn:function(data){return 0")}},formatData:function(data){var size;return data.shortName=Ext.util.Format.ellipsis(data.name,18),data.sizeString=0!=data.size?(size=data.size)<1024?size+" "+_("file_size_bytes"):Math.round(10*size/1024)/10+" "+_("file_size_kilobytes"):0,data.imageSizeString=0!=data.preview?data.image_width+"x"+data.image_height+"px":0,data.imageSizeString="xpx"===data.imageSizeString?0:data.imageSizeString,data.dateString=Ext.isEmpty(data.lastmod)?0:new Date(data.lastmod).format(MODx.config.manager_date_format+" "+MODx.config.manager_time_format),this.lookup[data.name]=data},_initTemplates:function(){this.templates.thumb=new Ext.XTemplate('','
    ','','
    ',' {name}',"
    ","
    ",'','
    ',' \t
    .{ext}
    ',"
    ","
    "," {shortName}","
    ","
    "),this.templates.thumb.compile(),this.templates.list=new Ext.XTemplate('','
    ',' ',' {name}',' ',' {sizeString}'," ",' ',' {imageSizeString}'," "," ","
    ","
    "),this.templates.list.compile(),this.templates.details=new Ext.XTemplate('
    ',' ',' ','
    ",' {name}',"
    ","
    ",' ','
    ','
    .{ext}
    ',"
    ","
    ",'
    '," "+_("file_name")+":"," {name}",' '," "+_("file_size")+":"," {sizeString}"," ",' '," "+_("image_size")+":"," {imageSizeString}"," ",' '," "+_("file_last_modified")+":"," {dateString}"," ",' '," "+_("visibility")+":"," {visibility}"," ","
    ","
    ","
    "),this.templates.details.compile()},_showContextMenu:function(v,i,n,e){e.preventDefault();var data=this.lookup[n.id],m=this.cm;if(m.removeAll(),data.menu){var menu=[];if(1",{xtype:"button",id:this.ident+"-cancel-btn",text:_("cancel"),minWidth:75,handler:this.onCancel,scope:this},{xtype:"button",id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",minWidth:75,handler:this.onSelect,scope:this}]}]}),MODx.browser.RTE.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.browser.RTE,Ext.Viewport,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var field=el.getEl().dom;if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()}else field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;callback&&(data=selNode?lookup[selNode.id]:null,Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data),window.top.opener&&(window.top.close(),window.top.opener.focus()))},onCancel:function(){var callback=this.config.onSelect||this.onSelectHandler,scope=this.config.scope;Ext.callback(callback,scope||this,[null]),this.fireEvent("select",null),window.top.opener&&(window.top.close(),window.top.opener.focus())},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-rte",MODx.browser.RTE),Ext.apply(Ext,{isFirebug:window.console&&window.console.firebug}),MODx.Layout=function(config){config=config||{},Ext.BLANK_IMAGE_URL=MODx.config.manager_url+"assets/ext3/resources/images/default/s.gif",Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},MODx.siteId=config.auth,MODx.expandHelp=!!+MODx.config.inline_help;var sp=new MODx.HttpProvider;Ext.state.Manager.setProvider(sp),sp.initState(MODx.defaultState),config.showTree=!1,config.search&&new MODx.SearchBar,Ext.applyIf(config,{layout:"border",id:"modx-layout",stateSave:!0,items:this.buildLayout(config)}),MODx.Layout.superclass.constructor.call(this,config),this.config=config,this.addEvents({afterLayout:!0,loadKeyMap:!0,loadTabs:!0}),this.loadKeys(),config.showTree||Ext.getCmp("modx-leftbar-tabs").collapse(!1),this.fireEvent("afterLayout")},Ext.extend(MODx.Layout,Ext.Viewport,{buildLayout:function(config){var items=[],north=this.getNorth(config),west=this.getWest(config),center=this.getCenter(config),south=this.getSouth(config),east=this.getEast(config);return north&&Ext.isObject(north)&&items.push(north),west&&Ext.isObject(west)&&items.push(west),center&&Ext.isObject(center)&&items.push(center),south&&Ext.isObject(south)&&items.push(south),east&&Ext.isObject(east)&&items.push(east),items},getNorth:function(config){return window.innerWidth<=640&&{xtype:"box",region:"north",applyTo:"modx-header",listeners:{afterrender:this.initPopper,scope:this}}},getWest:function(config){return window.innerWidth<=640?this.getTree(config):{region:"west",xtype:"box",id:"modx-header",applyTo:"modx-header",autoScroll:!0,width:80,listeners:{afterrender:this.initPopper,scope:this}}},getCenter:function(config){var center={region:"center",applyTo:"modx-content",padding:"0 1px 0 0",style:"width:100%",bodyStyle:"background-color:transparent;",id:"modx-content",autoScroll:!0};if(window.innerWidth<=640)return center;var tree=this.getTree(config);return center.margins={right:-80,left:-8},tree.margins={left:80},{region:"center",layout:"border",id:"modx-split-wrapper",items:[tree,center]}},getSouth:function(config){},getEast:function(config){},getTree:function(config){var tabs=[];MODx.perm.resource_tree&&(tabs.push({title:_("resources"),xtype:"modx-tree-resource",id:"modx-resource-tree"}),config.showTree=!0),MODx.perm.element_tree&&(tabs.push({title:_("elements"),xtype:"modx-tree-element",id:"modx-tree-element"}),config.showTree=!0),MODx.perm.file_tree&&(tabs.push({title:_("files"),xtype:"modx-panel-filetree",id:"modx-file-tree"}),config.showTree=!0);return{region:"west",applyTo:"modx-leftbar",id:"modx-leftbar-tabs",split:!0,width:310,minSize:288,autoScroll:!0,unstyled:!0,useSplitTips:!0,monitorResize:!0,layout:"anchor",headerCfg:window.innerWidth<=640?{}:{tag:"div",cls:"none",id:"modx-leftbar-header",html:MODx.config.site_name},items:[{xtype:"modx-tabs",plain:!0,defaults:{autoScroll:!0,fitToFrame:!0},id:"modx-leftbar-tabpanel",border:!1,anchor:"100%",activeTab:0,stateful:!0,stateEvents:["tabchange"],getState:function(){return{activeTab:this.items.indexOf(this.getActiveTab())}},items:tabs,listeners:{afterrender:function(){var tabs=this;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Resource/GetToolbar"},listeners:{success:{fn:function(res){for(var i in res.object)if(res.object.hasOwnProperty(i)&&null!=res.object[i].id&&"emptifier"==res.object[i].id){var tab=tabs.add({id:"modx-trash-link",title:'',handler:res.object[i].handler});res.object[i].disabled||tab.tabEl.classList.add("active"),res.object[i].tooltip&&(tab.tooltip=new Ext.ToolTip({target:new Ext.Element(tab.tabEl),title:res.object[i].tooltip}));break}},scope:this}}});var header=Ext.get("modx-leftbar-header");if(header){var html="";""!==MODx.config.manager_logo&&void 0!==MODx.config.manager_logo&&(html+='');var el=document.createElement("a");el.href=MODx.config.default_site_url||MODx.config.site_url,el.title=MODx.config.site_name,el.innerText=Ext.util.Format.ellipsis(MODx.config.site_name,45,!0),el.target="_blank",html+=el.outerHTML,header.dom.innerHTML=html}},beforetabchange:{fn:function(panel,tab){if(tab&&"modx-trash-link"==tab.id){if(tab.tabEl.classList.contains("active")){var tree=Ext.getCmp("modx-resource-tree");tree&&tree.redirect("?a=resource/trash")}return!1}},scope:this}}}],getState:function(){return{collapsed:this.collapsed,width:this.width}},collapse:function(animate){if(!this.collapsed&&!this.el.hasFxBlock()&&!1!==this.fireEvent("beforecollapse",this,animate)){if(animate&&640
    ")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),allowedAttributes=(((allowedAttributes||"href,class")+"").toLowerCase().match(/[a-z\-,]*/g)||[]).join("").concat(",");var length,tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,attributes=/([a-z][a-z0-9]*)\s*=\s*".*?"/gi;for(input=input.replace(/|<\?(?:php)?[\s\S]*?\?>/gi,"").replace(/href(\s*?=\s*?(["'])javascript:.*?\2|\s*?=\s*?javascript:.*?(?![^> ]))/gi,'href="javascript:void(0)"');length=input.length,input=function(input,allowedTags,allowedAttributes){return input.replace(tags,function($0,$1){return-1")?$0:""}).replace(attributes,function($0,$1){return-1',elbowMarkup=n.attributes.pseudoroot?'':'',index=['
  • ','',this.indentMarkup,"",elbowMarkup,iconMarkup,cb?'':"/>"):"",'',renderer(index),"
    ",'',"
  • "].join("");!0!==bulkRender&&n.nextSibling&&(nel=n.nextSibling.ui.getEl())?this.wrap=Ext.DomHelper.insertHtml("beforeBegin",nel,index):this.wrap=Ext.DomHelper.insertHtml("beforeEnd",cs,index),this.elNode=this.wrap.childNodes[0],this.ctNode=this.wrap.childNodes[1];cs=this.elNode.childNodes;this.indentNode=cs[0],this.ecNode=cs[1],this.iconNode=cs[2];index=3;cb&&(this.checkbox=cs[3],this.checkbox.defaultChecked=this.checkbox.checked,index++),this.anchor=cs[index],this.textNode=cs[index].firstChild},renderItemText:function(item){return Ext.util.Format.htmlEncode(item.text)},getChildIndent:function(){if(!this.childIndent){for(var buf=[],p=this.node;p;)(!p.isRoot||p.isRoot&&p.ownerTree.rootVisible)&&!p.attributes.pseudoroot&&(p.isLast()?buf.unshift(''):buf.unshift('')),p=p.parentNode;this.childIndent=buf.join("")}return this.childIndent}}),Ext.override(Ext.form.Action.Submit,{handleResponse:function(response){var m=Ext.decode(response.responseText);if(this.form.errorReader){var rs=this.form.errorReader.read(response),errors=[];if(rs.records)for(var i=0,len=rs.records.length;i
  • {text}{text}
  • ',init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0})},trail:trail,listeners:{afterrender:function(){this.renderTrail()}},renderTrail:function(){this.tpl.overwrite(this.body.dom.lastElementChild,{trail:this.trail})},updateTrail:function(trail,replace){if(void 0===replace&&(replace=!1),!0===replace)return this.trail=Array.isArray(trail)?trail:[trail],this.renderTrail(),!0;if(Array.isArray(trail)){for(var i=0;i
    ux-action-right {cls}" style="{style}" qtip="{qtip}">{text}
    ',tplRow:'
    ux-row-action-text" style="{hide}{style}" qtip="{qtip}">{text}
    ',hideMode:"visibility",widthIntercept:4,widthSlope:21,init:function(g){this.grid=g,this.id=this.id||Ext.id();var h=g.getColumnModel().lookup;delete h[void 0],(h[this.id]=this).tpl||(this.tpl=this.processActions(this.actions)),this.autoWidth&&(this.width=this.widthSlope*this.actions.length+this.widthIntercept,this.fixed=!0);var i=g.getView(),j={scope:this};j[this.actionEvent]=this.onClick,g.afterRender=g.afterRender.createSequence(function(){i.mainBody.on(j),g.on("destroy",this.purgeListeners,this)},this),this.renderer||(this.renderer=function(a,b,c,d,e,f){return b.css+=(b.css?" ":"")+"ux-row-action-cell",this.tpl.apply(this.getData(a,b,c,d,e,f))}.createDelegate(this)),i.groupTextTpl&&this.groupActions&&(i.interceptMouse=i.interceptMouse.createInterceptor(function(e){if(e.getTarget(".ux-grow-action-item"))return!1}),i.groupTextTpl='
    '+i.groupTextTpl+"
    "+this.processActions(this.groupActions,this.tplGroup).apply()),!0===this.keepSelection&&(g.processEvent=g.processEvent.createInterceptor(function(a,e){if("mousedown"===a)return!this.getAction(e)},this))},getData:function(a,b,c,d,e,f){return c.data||{}},processActions:function(b,e){var d=[];Ext.each(b,function(o,i){o.iconCls&&"function"==typeof(o.callback||o.cb)&&(this.callbacks=this.callbacks||{},this.callbacks[o.iconCls]=o.callback||o.cb);o={cls:o.iconIndex?"{"+o.iconIndex+"}":o.iconCls||"",qtip:o.qtipIndex?"{"+o.qtipIndex+"}":o.tooltip||o.qtip?o.tooltip||o.qtip:"",text:o.textIndex?"{"+o.textIndex+"}":o.text||"",hide:o.hideIndex?''+("display"===this.hideMode?"display:none":"visibility:hidden")+";":o.hide?"display"===this.hideMode?"display:none":"visibility:hidden;":"",align:o.align||"right",style:o.style||""};d.push(o)},this);e=new Ext.XTemplate(e||this.tplRow);return new Ext.XTemplate(e.apply({actions:d}))},getAction:function(t){var a=!1,t=t.getTarget(".ux-row-action-item");return t&&(a=(a=t.className.replace(/ux-row-action-item /,""))&&(a=a.replace(/ ux-row-action-text/,"")).trim()),a},onClick:function(e,i){var b=this.grid.getView(),c=e.getTarget(".x-grid3-row"),d=b.findCellIndex(i.parentNode.parentNode),f=this.getAction(e);if(!1!==c&&!1!==d&&!1!==f){var g=this.grid.store.getAt(c.rowIndex);if(this.callbacks&&"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,g,f,c.rowIndex,d),!0!==this.eventsSuspended&&!1===this.fireEvent("beforeaction",this.grid,g,f,c.rowIndex,d))return;!0!==this.eventsSuspended&&this.fireEvent("action",this.grid,g,f,c.rowIndex,d)}if(t=e.getTarget(".ux-grow-action-item"),t){var k,j,i=b.findGroup(i),i=i?i.id.replace(/ext-gen[0-9]+-gp-/,""):null;if(i&&(k=new RegExp(RegExp.escape(i)),j=(j=this.grid.store.queryBy(function(r){return r._groupId.match(k)}))?j.items:[]),f=t.className.replace(/ux-grow-action-item (ux-action-right )*/,""),"function"==typeof this.callbacks[f]&&this.callbacks[f](this.grid,j,f,i),!0!==this.eventsSuspended&&!1===this.fireEvent("beforegroupaction",this.grid,j,f,i))return!1;this.fireEvent("groupaction",this.grid,j,f,i)}}}),Ext.reg("rowactions",Ext.ux.grid.RowActions),Ext.SwitchButton=Ext.extend(Ext.Component,{initComponent:function(){Ext.SwitchButton.superclass.initComponent.call(this);var mc=new Ext.util.MixedCollection;mc.addAll(this.items),this.items=mc,this.addEvents("change"),this.handler&&this.on("change",this.handler,this.scope||this)},onRender:function(ct,position){var el=document.createElement("table");el.cellSpacing=0,el.className="x-rbtn",el.id=this.id;var row=document.createElement("tr");el.appendChild(document.createElement("tbody")).appendChild(row);var count=this.items.length,last=count-1;this.activeItem=this.items.get(this.activeItem);for(var i=0;idata.rowIndex&&this.rowPosition<0&&rindex--,rindexdata.rowIndex&&1','
    {value}
    ',""),MODx.grid||(MODx.grid={}),MODx.grid.ComboColumn=Ext.extend(Ext.grid.Column,{gridId:void 0,constructor:function(cfg){MODx.grid.ComboColumn.superclass.constructor.call(this,cfg),this.renderer=this.editor&&this.editor.triggerAction?MODx.grid.ComboBoxRenderer(this.editor,this.gridId,cfg.renderer):function(value){return value}}}),Ext.grid.Column.types.combocolumn=MODx.grid.ComboColumn,MODx.grid.ComboBoxRenderer=function(combo,gridId,currentRenderer){return function(value,metaData,record,rowIndex,colIndex,store){var scope;return currentRenderer&&("function"==typeof currentRenderer.fn&&(scope=currentRenderer.scope||!1,currentRenderer=currentRenderer.fn.bind(scope)),"function"==typeof currentRenderer&&(value=currentRenderer(value,metaData,record,rowIndex,colIndex,store))),0==combo.store.getCount()&&gridId?(combo.store.on("load",function(){var grid=Ext.getCmp(gridId);grid&&grid.getView().refresh()},this,{single:!0}),value):function(value){var rec=combo.store.find(combo.valueField,value),rec=combo.store.getAt(rec);return rec?rec.get(combo.displayField):value}(value)}},Ext.Button.buttonTemplate=new Ext.Template(''),Ext.Button.buttonTemplate.compile(),Ext.TabPanel.prototype.itemTpl=new Ext.Template('
  • ','{text}
  • '),Ext.TabPanel.prototype.itemTpl.disableFormats=!0,Ext.TabPanel.prototype.itemTpl.compile(),Ext.override(Ext.form.TimeField,{initDate:"2/1/2008"}),Ext.ns("Ext.ux.form"),Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{dateValidator:null,defaultAutoCreate:{tag:"input",type:"hidden"},dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",hiddenFormatForTimeHidden:"Y-m-d 00:00:00",otherToNow:!0,timePosition:"right",timeValidator:null,timeWidth:100,dateFormat:"m/d/y",timeFormat:"g:i A",maxDateValue:"",minDateValue:"",timeIncrement:15,maxTimeValue:null,minTimeValue:null,disabledDates:null,hideTime:!1,initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this),this.hasOwnProperty("offset_time")&&!isNaN(this.offset_time)||(this.offset_time=0),this.hideTime&&(this.hiddenFormat=this.hiddenFormatForTimeHidden);var timeConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.dateValidator,disabledDates:this.disabledDates||null,disabledDays:this.disabledDays||[],showToday:this.showToday||!0,maxValue:this.maxDateValue||"",minValue:this.minDateValue||"",startDay:this.startDay||0,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig);this.df=new Ext.form.DateField(timeConfig),delete(this.df.ownerCt=this).dateFormat,delete this.disabledDates,delete this.disabledDays,delete this.maxDateValue,delete this.minDateValue,delete this.startDay;timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,validator:this.timeValidator,increment:this.timeIncrement||15,maxValue:this.maxTimeValue||null,minValue:this.minTimeValue||null,hidden:this.hideTime,allowBlank:this.allowBlank,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig),delete(this.tf.ownerCt=this).timeFormat,delete this.maxTimeValue,delete this.minTimeValue,delete this.timeIncrement,this.relayEvents(this.df,["focus","specialkey","invalid","valid"]),this.relayEvents(this.tf,["focus","specialkey","invalid","valid"]),this.on("specialkey",this.onSpecialKey,this)},onRender:function(o,position){this.isRendered||(Ext.ux.form.DateTime.superclass.onRender.call(this,o,position),o="below"===this.timePosition||"bellow"===this.timePosition?Ext.DomHelper.append(o,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},!0):Ext.DomHelper.append(o,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},!0),this.tableEl=o,this.wrap=o.wrap({cls:"x-form-field-wrap x-datetime-wrap"}),this.wrap.on("mousedown",this.onMouseDown,this,{delay:10}),this.df.render(o.child("td.ux-datetime-date")),this.tf.render(o.child("td.ux-datetime-time")),this.df.el.swallowEvent(["keydown","keypress"]),this.tf.el.swallowEvent(["keydown","keypress"]),"side"===this.msgTarget&&((o=this.el.findParent(".x-form-element",10,!0))&&(this.errorIcon=o.createChild({cls:"x-form-invalid-icon"})),o={errorIcon:this.errorIcon,msgTarget:"side",alignErrorIcon:this.alignErrorIcon.createDelegate(this)},Ext.apply(this.df,o),Ext.apply(this.tf,o)),this.el.dom.name=this.hiddenName||this.name||this.id,this.df.el.dom.removeAttribute("name"),this.tf.el.dom.removeAttribute("name"),this.isRendered=!0,this.updateHidden())},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0])},initDateValue:function(){this.dateValue=this.otherToNow?new Date:new Date(1970,0,1,0,0,0)},clearInvalid:function(){this.df.clearInvalid(),this.tf.clearInvalid()},markInvalid:function(msg){this.df.markInvalid(msg),this.tf.markInvalid(msg)},beforeDestroy:function(){this.isRendered&&(this.wrap.removeAllListeners(),this.wrap.remove(),this.tableEl.remove(),this.df.destroy(),this.tf.destroy())},disable:function(){return this.isRendered&&(this.df.disabled=this.disabled,this.df.onDisable(),this.tf.onDisable()),this.disabled=!0,this.df.disabled=!0,this.tf.disabled=!0,this.fireEvent("disable",this),this},enable:function(){return this.rendered&&(this.df.onEnable(),this.tf.onEnable()),this.disabled=!1,this.df.disabled=!1,this.tf.disabled=!1,this.fireEvent("enable",this),this},focus:function(){this.df.focus()},getPositionEl:function(){return this.wrap},getResizeEl:function(){return this.wrap},getValue:function(){return this.dateValue?new Date(this.dateValue):""},isValid:function(){return this.df.isValid()&&this.tf.isValid()},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible()},onBlur:function(f){this.wrapClick&&(f.focus(),this.wrapClick=!1),f===this.df?this.updateDate():this.updateTime(),this.updateHidden(),this.validate(),function(){var v;this.df.hasFocus||this.tf.hasFocus||(v=this.getValue(),String(v)!==String(this.startValue)&&this.fireEvent("change",this,v,this.startValue),this.hasFocus=!1,this.fireEvent("blur",this))}.defer(100,this)},onFocus:function(){this.hasFocus||(this.hasFocus=!0,this.startValue=this.getValue(),this.fireEvent("focus",this))},onMouseDown:function(e){this.disabled||(this.wrapClick="td"===e.target.nodeName.toLowerCase())},onSpecialKey:function(t,e){var key=e.getKey();key===e.TAB&&(t!==this.df||e.shiftKey||(e.stopEvent(),this.tf.focus()),t===this.tf&&e.shiftKey&&(e.stopEvent(),this.df.focus()),this.updateValue()),key===e.ENTER&&this.updateValue()},reset:function(){this.df.setValue(this.originalValue),this.tf.setValue(this.originalValue)},setDate:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.df.setValue(date)},setTime:function(date){date&&0!=this.offset_time&&(date=date.add(Date.MINUTE,60*new Number(this.offset_time))),this.tf.setValue(date)},setSize:function(w,h){w&&("below"===this.timePosition?(this.df.setSize(w,h),this.tf.setSize(w,h),Ext.isIE&&(this.df.el.up("td").setWidth(w),this.tf.el.up("td").setWidth(w))):(this.df.setSize(w-this.timeWidth-4,h),this.tf.setSize(this.timeWidth,h),Ext.isIE&&(this.df.el.up("td").setWidth(w-this.timeWidth-4),this.tf.el.up("td").setWidth(this.timeWidth))))},setValue:function(da){if(da||!0!==this.emptyToNow){if(!da)return this.setDate(""),this.setTime(""),void this.updateValue();"number"==typeof da?da=new Date(da):"string"==typeof da&&this.hiddenFormat&&(da=Date.parseDate(da,this.hiddenFormat)),(da=da||new Date(1970,0,1,0,0,0))instanceof Date?(this.setDate(da),this.setTime(da),this.dateValue=new Date(Ext.isIE?da.getTime():da)):(da=da.split(this.dtSeparator),this.setDate(da[0]),da[1]&&(da[2]&&(da[1]+=da[2]),this.setTime(da[1]))),this.updateValue()}else this.setValue(new Date)},setVisible:function(visible){return visible?(this.df.show(),this.tf.show()):(this.df.hide(),this.tf.hide()),this},show:function(){return this.setVisible(!0)},hide:function(){return this.setVisible(!1)},updateDate:function(){var d=this.df.getValue();d?(this.dateValue instanceof Date||(this.initDateValue(),this.tf.getValue()||this.setTime(this.dateValue)),this.dateValue.setMonth(0),this.dateValue.setFullYear(d.getFullYear()),this.dateValue.setMonth(d.getMonth(),d.getDate())):(this.dateValue="",this.setTime(""))},updateTime:function(){var t=this.tf.getValue();!t||t instanceof Date||(t=Date.parseDate(t,this.tf.format)),t&&!this.df.getValue()&&(this.initDateValue(),this.setDate(this.dateValue)),this.dateValue instanceof Date&&(t?(this.dateValue.setHours(t.getHours()),this.dateValue.setMinutes(t.getMinutes()),this.dateValue.setSeconds(t.getSeconds())):(this.dateValue.setHours(0),this.dateValue.setMinutes(0),this.dateValue.setSeconds(0)))},updateHidden:function(){var value;this.isRendered&&(value="",this.dateValue instanceof Date&&(value=this.dateValue.add(Date.MINUTE,0-60*new Number(this.offset_time)).format(this.hiddenFormat)),this.el.dom.value=value)},updateValue:function(){this.updateDate(),this.updateTime(),this.updateHidden()},validate:function(){return this.df.validate()&&this.tf.validate()},renderer:function(field){var format=field.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;return format+=" "+(field.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat),function(val){return Ext.util.Format.date(val,format)}}}),Ext.reg("xdatetime",Ext.ux.form.DateTime),Ext.namespace("Ext.ux.Utils"),Ext.ux.Utils.EventQueue=function(handler,scope){if(!handler)throw"Handler is required.";this.handler=handler,this.scope=scope||window,this.queue=[],this.is_processing=!1,this.postEvent=function(event,data){data=data||null,this.queue.push({event:event,data:data}),this.is_processing||this.process()},this.flushEventQueue=function(){this.queue=[]},this.process=function(){for(;0 ").compile()},createForm:function(){this.form=Ext.DomHelper.append(this.body,{tag:"form",method:"post",action:this.url,style:"position: absolute; left: -100px; top: -100px; width: 100px; height: 100px; clear: both;"})},createProgressBar:function(){this.progress_bar=this.add(new Ext.ProgressBar({x:0,y:0,anchor:"0",value:0,text:this.i18n.progress_waiting_text}))},createGrid:function(){var store=new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},Ext.ux.UploadDialog.FileRecord),sortInfo:{field:"state",direction:"DESC"},pruneModifiedRecords:!0}),cm=new Ext.grid.ColumnModel([{header:this.i18n.state_col_title,width:this.i18n.state_col_width,resizable:!1,dataIndex:"state",sortable:!0,renderer:this.renderStateCell.createDelegate(this)},{header:this.i18n.filename_col_title,width:this.i18n.filename_col_width,dataIndex:"filename",sortable:!0,renderer:this.renderFilenameCell.createDelegate(this)},{header:this.i18n.note_col_title,width:this.i18n.note_col_width,dataIndex:"note",sortable:!0,renderer:this.renderNoteCell.createDelegate(this)}]);this.grid_panel=new Ext.grid.GridPanel({ds:store,cm:cm,layout:"fit",height:this.height-100,region:"center",x:0,y:22,border:!0,viewConfig:{autoFill:!0,forceFit:!0},bbar:new Ext.Toolbar}),this.grid_panel.on("render",this.onGridRender,this),this.add(this.grid_panel),this.grid_panel.getSelectionModel().on("selectionchange",this.onGridSelectionChange,this)},fillToolbar:function(){var tb=this.grid_panel.getBottomToolbar();tb.x_buttons={},tb.x_buttons.add=tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({input_name:this.post_var_name,text:this.i18n.add_btn_text,tooltip:this.i18n.add_btn_tip,iconCls:"ext-ux-uploaddialog-addbtn",handler:this.onAddButtonFileSelected,scope:this})),tb.x_buttons.remove=tb.addButton({text:this.i18n.remove_btn_text,tooltip:this.i18n.remove_btn_tip,iconCls:"ext-ux-uploaddialog-removebtn",handler:this.onRemoveButtonClick,scope:this}),tb.x_buttons.reset=tb.addButton({text:this.i18n.reset_btn_text,tooltip:this.i18n.reset_btn_tip,iconCls:"ext-ux-uploaddialog-resetbtn",handler:this.onResetButtonClick,scope:this}),tb.x_buttons.upload=tb.addButton({text:this.i18n.upload_btn_start_text,tooltip:this.i18n.upload_btn_start_tip,iconCls:"ext-ux-uploaddialog-uploadstartbtn",handler:this.onUploadButtonClick,scope:this}),tb.x_buttons.close=tb.addButton({text:this.i18n.close_btn_text,tooltip:this.i18n.close_btn_tip,handler:this.onCloseButtonClick,scope:this})},renderStateCell:function(data,cell,record,row_index,column_index,store){return this.state_tpl.apply({state:data})},renderFilenameCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},renderNoteCell:function(data,cell,record,row_index,column_index,store){var view=this.grid_panel.getView();return function(){try{Ext.fly(view.getCell(row_index,column_index)).child(".x-grid3-cell-inner").dom.qtip=data}catch(e){}}.defer(1e3),data},getFileExtension:function(parts){var result=null,parts=parts.split(".");return 1((?:.|\n)*)<\/pre>$/i);filter&&(rt=filter[1]),json_response=Ext.util.JSON.decode(rt)}catch(e){}data={record:data.record,response:json_response};"success"in json_response&&json_response.success?this.fsa.postEvent("file-upload-success",data):this.fsa.postEvent("file-upload-error",data)},onAjaxFailure:function(response,data){data={record:data.record,response:{success:!1,error:this.i18n.note_upload_failed}};this.fsa.postEvent("file-upload-failed",data)},startUpload:function(){this.fsa.postEvent("start-upload")},stopUpload:function(){this.fsa.postEvent("stop-upload")},getUrl:function(){return this.url},setUrl:function(url){this.url=url},getBaseParams:function(){return this.base_params},setBaseParams:function(params){this.base_params=params},getUploadAutostart:function(){return this.upload_autostart},setUploadAutostart:function(value){this.upload_autostart=value},getMakeReload:function(){return this.Make_Reload},setMakeReload:function(value){this.Make_Reload=value},getAllowCloseOnUpload:function(){return this.allow_close_on_upload},setAllowCloseOnUpload:function(value){this.allow_close_on_upload},getResetOnHide:function(){return this.reset_on_hide},setResetOnHide:function(value){this.reset_on_hide=value},getPermittedExtensions:function(){return this.permitted_extensions},setPermittedExtensions:function(value){this.permitted_extensions=value},isUploading:function(){return this.is_uploading},isNotEmptyQueue:function(){return 0=this.minChars||valuesQuery&&!Ext.isEmpty(q))&&(forcedAdd||this.forceSameValueQuery||this.shouldQuery(q)?(this.lastQuery=q,"local"==this.mode?(this.selectedIndex=-1,forceAll?this.store.clearFilter():this.store.filter(this.displayField,q),this.onLoad()):(this.store.baseParams[this.queryParam]=q,this.store.baseParams[this.queryValuesIndicator]=valuesQuery,this.store.load({params:this.getParams(q)}),forcedAdd||this.expand())):(this.selectedIndex=-1,this.onLoad()))},onStoreLoad:function(params,records,options){var q=options.params[this.queryParam]||params.baseParams[this.queryParam]||"",params=options.params[this.queryValuesIndicator]||params.baseParams[this.queryValuesIndicator];this.removeValuesFromStore&&this.store.each(function(record){this.usedRecords.containsKey(record.get(this.valueField))&&this.store.remove(record)},this),params&&(params=q.split(this.queryValuesDelimiter),Ext.each(params,function(rec){this.remoteLookup.remove(rec);rec=this.findRecord(this.valueField,rec);rec&&this.addRecord(rec)},this),this.setOriginal&&(this.setOriginal=!1,this.originalValue=this.getValue())),""!==q&&this.allowAddNewData&&Ext.each(this.remoteLookup,function(rec){"object"==typeof rec&&rec[this.valueField]===q&&(this.remoteLookup.remove(rec),records.length&&records[0].get(this.valueField)===q?this.addRecord(records[0]):(rec=this.createRecord(rec),this.store.add(rec),this.addRecord(rec),this.addedRecords.push(rec),function(){this.isExpanded()&&this.collapse()}.defer(10,this)))},this);var re,toAdd=[];""===q?Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||toAdd.push(rec)},this):(re=new RegExp(Ext.escapeRe(q)+".*","i"),Ext.each(this.addedRecords,function(rec){this.preventDuplicates&&this.usedRecords.containsKey(rec.get(this.valueField))||re.test(rec.get(this.displayField))&&toAdd.push(rec)},this)),this.store.add(toAdd),this.sortStore(),0===this.store.getCount()&&this.isExpanded()&&this.collapse()}}),Ext.reg("superboxselect",Ext.ux.form.SuperBoxSelect),Ext.ux.form.SuperBoxSelectItem=function(config){Ext.apply(this,config),Ext.ux.form.SuperBoxSelectItem.superclass.constructor.call(this)},Ext.ux.form.SuperBoxSelectItem=Ext.extend(Ext.ux.form.SuperBoxSelectItem,Ext.Component,{initComponent:function(){Ext.ux.form.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(e){var o=this.owner;o.clearCurrentFocus().collapse(),o.navigateItemsWithTab?this.focus():(o.el.dom.focus(),function(){this.onLnkFocus(),o.currentFocus=this}.defer(10,this))},onLnkClick:function(e){e&&e.stopEvent(),this.preDestroy(),this.owner.navigateItemsWithTab||this.owner.el.focus()},onLnkFocus:function(){this.el.addClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("x-superboxselect-item-focus"),this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:!0}),this.el.addClassOnOver("x-superboxselect-item x-superboxselect-item-hover")},enableLnkListeners:function(){this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this})},enableAllListeners:function(){this.enableElListeners(),this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners(),this.lnk.un("click",this.onLnkClick,this),this.lnk.un("focus",this.onLnkFocus,this),this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(cfg,el){Ext.ux.form.SuperBoxSelectItem.superclass.onRender.call(this,cfg,el);el=this.el;el&&el.remove(),this.el=el=cfg.createChild({tag:"li"},cfg.last()),el.addClass("x-superboxselect-item");var btnEl=this.owner.navigateItemsWithTab?"a":"span";this.key;Ext.apply(el,{focus:function(){var c=this.down(btnEl+".x-superboxselect-item-close");c&&c.focus()},preDestroy:function(){this.preDestroy()}.createDelegate(this)}),this.enableElListeners(),el.update(this.caption);cfg={tag:btnEl,class:"x-superboxselect-item-close",tabIndex:this.owner.navigateItemsWithTab?"0":"-1"};"a"==btnEl&&(cfg.href="#"),this.lnk=el.createChild(cfg),this.disabled?this.disableAllListeners():this.enableLnkListeners(),this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this}),this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.lnk,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE,Ext.EventObject.SPACE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var l=this.owner.items.get(0).el.focus();l&&l.el.focus()},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]),this.keyMap.stopEvent=!0},moveFocus:function(el){el=this.el["left"==el?"prev":"next"]()||this.owner.el;el.focus.defer(100,el)},preDestroy:function(supressEffect){if(!1!==this.fireEvent("remove",this)){function actionDestroy(){this.owner.navigateItemsWithTab&&this.moveFocus("right"),this.hidden.remove(),this.hidden=null,this.destroy()}return supressEffect?actionDestroy.call(this):this.el.hide({duration:.2,callback:actionDestroy,scope:this}),this}},kill:function(){this.hidden.remove(),this.hidden=null,this.purgeListeners(),this.destroy()},onDisable:function(){this.hidden&&this.hidden.dom.setAttribute("disabled","disabled"),this.keyMap.disable(),Ext.ux.form.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){this.hidden&&this.hidden.dom.removeAttribute("disabled"),this.keyMap.enable(),Ext.ux.form.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el),Ext.ux.form.SuperBoxSelectItem.superclass.onDestroy.call(this)}}),MODx.Component=function(config){config=config||{},MODx.Component.superclass.constructor.call(this,config),this.config=config,this._loadForm(),this.config.tabs&&this._loadTabs(),this._loadComponents(),this._loadActionButtons(),MODx.activePage=this},Ext.extend(MODx.Component,Ext.Component,{fields:{},form:null,action:!1,_loadForm:function(){if(!this.config.form)return!1;if(this.form=new Ext.form.BasicForm(Ext.get(this.config.form),{errorReader:MODx.util.JSONReader}),this.config.fields)for(var i in this.config.fields){var f;this.config.fields.hasOwnProperty(i)&&((f=this.config.fields[i]).xtype&&(f=Ext.ComponentMgr.create(f)),this.fields[i]=f,this.form.add(f))}return this.form.render()},_loadActionButtons:function(){return!!this.config.buttons&&(this.ab=MODx.load({xtype:"modx-actionbuttons",form:this.form||null,formpanel:this.config.formpanel||null,actions:this.config.actions||null,items:this.config.buttons||[]}),this.ab)},_loadTabs:function(){if(!this.config.tabs)return!1;var o=this.config.tabOptions||{};return Ext.applyIf(o,{xtype:"modx-tabs",renderTo:this.config.tabs_div||"tabs_div",items:this.config.tabs}),MODx.load(o)},_loadComponents:function(){if(!this.config.components)return!1;for(var l=this.config.components.length,cp=Ext.getCmp("modx-content"),i=0;i","<-",""," "].indexOf(el)||el.xtype&&"switch"==el.xtype)MODx.toolbar.ActionButtons.superclass.add.call(this,el);else{var id=el.id||Ext.id();if(Ext.applyIf(el,{xtype:"button",cls:el.icon?"x-btn-icon bmenu":"x-btn-text bmenu",scope:this,disabled:!!el.checkDirty,listeners:{},id:id}),el.button&&MODx.toolbar.ActionButtons.superclass.add.call(this,el),null===el.handler&&null===el.menu?el.handler=this.checkConfirm:el.confirm&&el.handler?el.handler=function(){Ext.Msg.confirm(_("warning"),el.confirm,function(e){"yes"===e&&Ext.callback(el.handler,this)},el.scope||this)}:el.handler||(el.handler=this.handleClick),el.javascript&&(el.listeners.click={fn:this.evalJS,scope:this}),"button"==el.xtype&&(el.listeners.render={fn:function(btn){el.checkDirty&&btn&&this.checkDirtyBtns.push(btn)},scope:this}),el.keys){el.keyMap=new Ext.KeyMap(Ext.get(document));for(var j=0;j'+_("file_err_filter")+"",closeAction:"hide"}),MODx.DataView.superclass.constructor.call(this,config),this.config=config,this.cm=new Ext.menu.Menu},Ext.extend(MODx.DataView,Ext.DataView,{lookup:{},onLoadException:function(){this.getEl().update('
    '+_("data_err_load")+"
    ")},_addContextMenuItem:function(items){for(var a=items,l=a.length,i=0;i ').compile()}),MODx.Button.superclass.constructor.call(this,config)},Ext.extend(MODx.Button,Ext.Button,{onRender:function(ct,position){this.template||(Ext.Button.buttonTemplate||(Ext.Button.buttonTemplate=new Ext.Template(' '),Ext.Button.buttonTemplate.compile()),this.template=Ext.Button.buttonTemplate);var btn=this.getTemplateArgs();btn.iconCls=this.iconCls,btn=position?this.template.insertBefore(position,btn,!0):this.template.append(ct,btn,!0),this.btnEl=btn.child("i"),this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur}),this.initButtonEl(btn,this.btnEl),Ext.ButtonToggleMgr.register(this)}}),Ext.reg("modx-button",MODx.Button),MODx.SearchBar=function(config){config=config||{},Ext.applyIf(config,{renderTo:"modx-manager-search",listClass:"modx-manager-search-results",emptyText:_("search"),id:"modx-uberbar",maxHeight:this.getViewPortSize(),typeAhead:!0,listAlign:["tl-bl?",[-12,12]],triggerConfig:{tag:"button",id:"modx-uberbar-trigger",type:"submit","aria-label":"Go",cls:"x-form-trigger icon icon-large icon-search"},defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off",tabindex:"0",hasfocus:!0,"aria-label":_("search")},hasfocus:!0,minChars:1,displayField:"name",valueField:"_action",width:380,itemSelector:".x-combo-list-item",tpl:new Ext.XTemplate('','
    ','','',"

    {label:htmlEncode}

    ","
    ",'

    {name:htmlEncode} – {description:htmlEncode}

    ',"
    ","
    ",{getClass:function(values){if(values.icon)return values.icon;if(values.class)switch(values.class){case"MODX\\Revolution\\modDocument":return"file";case"MODX\\Revolution\\modSymLink":return"files-o";case"MODX\\Revolution\\modWebLink":return"link";case"MODX\\Revolution\\modStaticResource":return"file-text-o"}switch(values.type){case"resources":return"file";case"chunks":return"th-large";case"templates":return"columns";case"snippets":return"code";case"tvs":return"list-alt";case"plugins":return"cogs";case"users":return"user";case"actions":return"mail-forward"}},getLabel:function(values){return values.label||_("search_resulttype_"+values.type)}}),store:new Ext.data.JsonStore({url:MODx.config.connector_url,baseParams:{action:"Search/Search"},root:"results",totalProperty:"total",fields:["name","_action","description","type","icon","label","class"],listeners:{beforeload:function(store,options){if(options.params._action)return!1}}}),listeners:{beforequery:{fn:function(){this.tpl.type=null}},focus:this.focusBar,blur:this.blurBar,afterrender:function(){document.getElementById("modx-manager-search").onclick=function(e){e.stopPropagation()}},scope:this}}),MODx.SearchBar.superclass.constructor.call(this,config),this.blur(),this.setKeyMap()},Ext.extend(MODx.SearchBar,Ext.form.ComboBox,{setKeyMap:function(){new Ext.KeyMap(document,{key:27,handler:function(){this.hideBar()},scope:this,stopEvent:!1})},initList:function(){var cls,lw;this.list||(cls="x-combo-list",lw=Ext.getDom(this.getListParent()||Ext.getBody()),this.list=new Ext.Layer({parentEl:lw,shadow:this.shadow,cls:[cls,this.listClass].join(" "),constrain:!1,zindex:this.getZIndex(lw)}),this.list.on("click",function(e){e.stopPropagation()}),lw=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth),this.list.setSize(lw,0),this.list.swallowEvent("mousewheel"),this.assetHeight=0,!1!==this.syncFont&&this.list.setStyle("font-size",this.el.getStyle("font-size")),this.title&&(this.header=this.list.createChild({cls:cls+"-hd",html:this.title}),this.assetHeight+=this.header.getHeight()),this.innerList=this.list.createChild({cls:cls+"-inner"}),this.mon(this.innerList,"mouseover",this.onViewOver,this),this.mon(this.innerList,"mousemove",this.onViewMove,this),this.innerList.setWidth(lw-this.list.getFrameWidth("lr")),this.pageSize&&(this.footer=this.list.createChild({cls:cls+"-ft"}),this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer}),this.assetHeight+=this.footer.getHeight()),this.tpl||(this.tpl='
    {'+this.displayField+"}
    "),this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:!0,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+cls+"-item",emptyText:this.listEmptyText,deferEmptyText:!1}),this.view.on("click",function(view,index,node,vent){view.select(node),window.event||(window.event=vent),this.onViewClick()},this),this.bindStore(this.store,!0),this.resizable&&(this.resizer=new Ext.Resizable(this.list,{pinned:!0,handles:"se"}),this.mon(this.resizer,"resize",function(r,w,h){this.maxHeight=h-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight,this.listWidth=w,this.innerList.setWidth(w-this.list.getFrameWidth("lr")),this.restrictHeight()},this),this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")))},onTypeAhead:function(){},onSelect:function(target,index){var e=Ext.EventObject;e.stopPropagation(),e.preventDefault();target="?a="+target.data._action;if(e.ctrlKey||e.metaKey||e.shiftKey)return window.open(target);MODx.loadPage(target)},hideBar:function(){},focusBar:function(){this.selectText()},blurBar:function(){},getViewPortSize:function(){var height=300;return void 0!==window.innerHeight&&(height=window.innerHeight),height-70}}),Ext.reg("modx-searchbar",MODx.SearchBar),Ext.namespace("MODx.panel"),MODx.Panel=function(config){config=config||{},Ext.applyIf(config,{cls:"modx-panel",title:""}),MODx.Panel.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.Panel,Ext.Panel),Ext.reg("modx-panel",MODx.Panel),MODx.FormPanel=function(config){config=config||{},Ext.applyIf(config,{autoHeight:!0,collapsible:!0,bodyStyle:"",layout:"anchor",border:!1,header:!1,method:"POST",cls:"modx-form",allowDrop:!0,errorReader:MODx.util.JSONReader,checkDirty:!0,useLoadingMask:!1,defaults:{collapsible:!1,autoHeight:!0,border:!1}}),config.items&&this.addChangeEvent(config.items),MODx.FormPanel.superclass.constructor.call(this,config),this.config=config,this.addEvents({setup:!0,fieldChange:!0,ready:!0,beforeSubmit:!0,success:!0,failure:!0,save:!0,actionNew:!0,actionContinue:!0,actionClose:!0,postReady:!0}),this.getForm().addEvents({success:!0,failure:!0}),this.dropTargets=[],this.on("ready",this.onReady),this.config.useLoadingMask&&this.on("render",function(){this.mask=new Ext.LoadMask(this.getEl()),this.mask.show()}),this.fireEvent("setup",config)&&this.clearDirty(),this.focusFirstField()},Ext.extend(MODx.FormPanel,Ext.FormPanel,{isReady:!1,defaultValues:[],initialized:!1,submit:function(o){var fm=this.getForm();return!(!fm.isValid()&&!o.bypassValidCheck)&&((o=o||{}).headers={"Powered-By":"MODx",modAuth:MODx.siteId},this.fireEvent("beforeSubmit",{form:fm,options:o,config:this.config})&&fm.submit({waitMsg:this.config.saveMsg||_("saving"),scope:this,headers:o.headers,clientValidation:!o.bypassValidCheck,failure:function(f,a){this.fireEvent("failure",{form:f,result:a.result,options:o,config:this.config})&&MODx.form.Handler.errorExt(a.result,f)},success:function(f,initFocus){this.config.success&&Ext.callback(this.config.success,this.config.scope||this,[f,initFocus]),this.fireEvent("success",{form:f,result:initFocus.result,options:o,config:this.config}),this.clearDirty(),this.fireEvent("setup",this.config);initFocus=Ext.state.Manager.get("curFocus");initFocus&&""!=initFocus&&(Ext.state.Manager.clear("curFocus"),(initFocus=document.getElementById(initFocus))&&initFocus.focus())}}),!0)},focusFirstField:function(){var fld;0",border:!1},MODx.TemplatePanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,startingMarkup:'

    {text}

    ',startingText:"Loading...",markup:null,plain:!0,border:!1}),MODx.TemplatePanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.TemplatePanel,Ext.Panel,{init:function(){this.defaultMarkup=new Ext.XTemplate(this.startingMarkup,{compiled:!0}),this.reset(),this.tpl=new Ext.XTemplate(this.markup,{compiled:!0})},reset:function(){this.body.hide(),this.defaultMarkup.overwrite(this.body,{text:this.startingText}),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)},updateDetail:function(data){this.body.hide(),this.tpl.overwrite(this.body,data),this.body.slideIn("r",{stopFx:!0,duration:.2}),setTimeout(function(){Ext.getCmp("modx-content").doLayout()},500)}}),Ext.reg("modx-template-panel",MODx.TemplatePanel),MODx.BreadcrumbsPanel=function(config){config=config||{},Ext.applyIf(config,{frame:!1,plain:!0,border:!1,desc:"This the description part of this panel",bdMarkup:'
      '+"{text}

    {text}

    ",root:{text:"Home",className:"first",root:!0,pnl:""},bodyCssClass:"breadcrumbs"}),MODx.BreadcrumbsPanel.superclass.constructor.call(this,config),this.on("render",this.init,this)},Ext.extend(MODx.BreadcrumbsPanel,Ext.Panel,{data:{trail:[]},init:function(){this.tpl=new Ext.XTemplate(this.bdMarkup,{compiled:!0}),this.reset(this.desc),this.body.on("click",this.onClick,this)},getResetText:function(srcInstance){if("object"!=typeof srcInstance||null==srcInstance)return srcInstance;var i,newInstance=srcInstance.constructor();for(i in srcInstance)newInstance[i]=this.getResetText(srcInstance[i]);return newInstance.hasOwnProperty("pnl")&&delete newInstance.pnl,newInstance},updateDetail:function(data){(this.data=data).hasOwnProperty("trail")&&data.trail.unshift(this.root),this._updatePanel(data)},getData:function(){return this.data},reset:function(msg){void 0===this.resetText&&(this.resetText=this.getResetText(this.root)),this.data={text:msg,trail:[this.resetText]},this._updatePanel(this.data)},onClick:function(panel){for(var last=panel.getTarget(),index=1,parent=last.parentElement;null!=(parent=parent.previousSibling);)index+=1;for(var remove=this.data.trail.length-index;0
    {name:htmlEncode}',"
    {description:htmlEncode}
    ")}),MODx.combo.UserGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-usergroup",MODx.combo.UserGroup),MODx.combo.UserGroupRole=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList"}}),MODx.combo.UserGroupRole.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.UserGroupRole,MODx.combo.ComboBox),Ext.reg("modx-combo-usergrouprole",MODx.combo.UserGroupRole),MODx.combo.EventGroup=function(config){config=config||{},Ext.applyIf(config,{name:"group",hiddenName:"group",displayField:"name",valueField:"name",fields:["name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Event/GroupList"},tpl:new Ext.XTemplate('
    {name:htmlEncode}',"
    ")}),MODx.combo.EventGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.EventGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-eventgroup",MODx.combo.EventGroup),MODx.combo.ResourceGroup=function(config){config=config||{},Ext.applyIf(config,{name:"resourcegroup",hiddenName:"resourcegroup",displayField:"name",valueField:"id",fields:["name","id"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/ResourceGroup/GetList"}}),MODx.combo.ResourceGroup.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ResourceGroup,MODx.combo.ComboBox),Ext.reg("modx-combo-resourcegroup",MODx.combo.ResourceGroup),MODx.combo.Context=function(config){config=config||{},Ext.applyIf(config,{name:"context",hiddenName:"context",displayField:"key",valueField:"key",fields:["key","name"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Context/GetList",exclude:config.exclude||""},tpl:new Ext.XTemplate('
    {name:htmlEncode} ({key:htmlEncode})
    ')}),MODx.combo.Context.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Context,MODx.combo.ComboBox),Ext.reg("modx-combo-context",MODx.combo.Context),MODx.combo.Policy=function(config){config=config||{},Ext.applyIf(config,{name:"policy",hiddenName:"policy",displayField:"name",valueField:"id",fields:["id","name","permissions"],allowBlank:!1,editable:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Access/Policy/GetList"}}),MODx.combo.Policy.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Policy,MODx.combo.ComboBox),Ext.reg("modx-combo-policy",MODx.combo.Policy),MODx.combo.Template=function(config){config=config||{},Ext.applyIf(config,{name:"template",hiddenName:"template",displayField:"templatename",valueField:"id",pageSize:20,fields:["id","templatename","description","category_name"],tpl:new Ext.XTemplate('
    {templatename:htmlEncode}',' - {category_name:htmlEncode}',"
    {description:htmlEncode()}
    "),url:MODx.config.connector_url,baseParams:{action:"Element/Template/GetList",combo:1},allowBlank:!0}),MODx.combo.Template.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Template,MODx.combo.ComboBox),Ext.reg("modx-combo-template",MODx.combo.Template),MODx.combo.Category=function(config){config=config||{},Ext.applyIf(config,{name:"category",hiddenName:"category",displayField:"name",valueField:"id",mode:"remote",fields:["id","category","parent","name"],forceSelection:!0,typeAhead:!1,allowBlank:!0,editable:!1,enableKeyEvents:!0,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Element/Category/GetList",showNone:!0,limit:0}}),MODx.combo.Category.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Category,MODx.combo.ComboBox,{_onblur:function(t,e){var v=this.getRawValue();this.setRawValue(v),this.setValue(v,!0)}}),Ext.reg("modx-combo-category",MODx.combo.Category),MODx.combo.Language=function(config){config=config||{},Ext.applyIf(config,{name:"language",hiddenName:"language",displayField:"name",valueField:"name",fields:["name"],typeAhead:!0,minChars:1,editable:!0,allowBlank:!0,url:MODx.config.connector_url,baseParams:{action:"System/Language/GetList"}}),MODx.combo.Language.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Language,MODx.combo.ComboBox),Ext.reg("modx-combo-language",MODx.combo.Language),MODx.combo.Charset=function(config){config=config||{},Ext.applyIf(config,{name:"charset",hiddenName:"charset",displayField:"text",valueField:"value",fields:["value","text"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Charset/GetList"}}),MODx.combo.Charset.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Charset,MODx.combo.ComboBox),Ext.reg("modx-combo-charset",MODx.combo.Charset),MODx.combo.RTE=function(config){config=config||{},Ext.applyIf(config,{name:"rte",hiddenName:"rte",displayField:"value",valueField:"value",fields:["value"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,url:MODx.config.connector_url,baseParams:{action:"System/Rte/GetList"}}),MODx.combo.RTE.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.RTE,MODx.combo.ComboBox),Ext.reg("modx-combo-rte",MODx.combo.RTE),MODx.combo.Role=function(config){config=config||{},Ext.applyIf(config,{name:"role",hiddenName:"role",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetList",addNone:!0}}),MODx.combo.Role.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Role,MODx.combo.ComboBox),Ext.reg("modx-combo-role",MODx.combo.Role),MODx.combo.ContentType=function(config){config=config||{},Ext.applyIf(config,{name:"content_type",hiddenName:"content_type",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/ContentType/GetList"}}),MODx.combo.ContentType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentType,MODx.combo.ComboBox),Ext.reg("modx-combo-content-type",MODx.combo.ContentType),MODx.combo.ContentDisposition=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("inline"),0],[_("attachment"),1]]}),name:"content_dispo",hiddenName:"content_dispo",displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,pageSize:20,selectOnFocus:!1,preventRender:!0}),MODx.combo.ContentDisposition.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ContentDisposition,MODx.combo.ComboBox),Ext.reg("modx-combo-content-disposition",MODx.combo.ContentDisposition),MODx.combo.ClassDerivatives=function(config){config=config||{},Ext.applyIf(config,{name:"class",hiddenName:"class",url:MODx.config.connector_url,baseParams:{action:"System/Derivatives/GetList",class:"MODX\\Revolution\\modResource"},displayField:"name",valueField:"id",fields:["id","name"],forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20}),MODx.combo.ClassDerivatives.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ClassDerivatives,MODx.combo.ComboBox),Ext.reg("modx-combo-class-derivatives",MODx.combo.ClassDerivatives),MODx.combo.Namespace=function(config){config=config||{},Ext.applyIf(config,{name:"namespace",hiddenName:"namespace",typeAhead:!0,minChars:1,queryParam:"search",editable:!0,allowBlank:!0,preselectValue:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Workspace/PackageNamespace/GetList"},fields:["name"],displayField:"name",valueField:"name"}),MODx.combo.Namespace.superclass.constructor.call(this,config),!1!==config.preselectValue&&(this.store.on("load",this.preselectFirstValue,this,{single:!0}),this.store.load())},Ext.extend(MODx.combo.Namespace,MODx.combo.ComboBox,{preselectFirstValue:function(item){var found;(item=""!=this.config.preselectValue&&-1!=(found=item.find("name",this.config.preselectValue))?item.getAt(found):item.getAt(0))&&(this.setValue(item.data.name),this.fireEvent("select",this,item))}}),Ext.reg("modx-combo-namespace",MODx.combo.Namespace),MODx.combo.Browser=function(config){config=config||{},Ext.applyIf(config,{width:400,triggerAction:"all",triggerClass:"x-form-file-trigger",source:config.source||MODx.config.default_media_source}),MODx.combo.Browser.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.combo.Browser,Ext.form.TriggerField,{browser:null,onTriggerClick:function(btn){return!this.disabled&&(this.browser=MODx.load({xtype:"modx-browser",closeAction:"close",id:Ext.id(),multiple:!0,source:this.config.source||MODx.config.default_media_source,hideFiles:this.config.hideFiles||!1,rootVisible:this.config.rootVisible||!1,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web",openTo:this.config.openTo||"",rootId:this.config.rootId||"/",hideSourceCombo:this.config.hideSourceCombo||!1,listeners:{select:{fn:function(data){this.setValue(data.relativeUrl),this.fireEvent("select",data)},scope:this}}}),this.browser.show(btn),!0)},onDestroy:function(){MODx.combo.Browser.superclass.onDestroy.call(this)}}),Ext.reg("modx-combo-browser",MODx.combo.Browser),MODx.combo.Country=function(config){config=config||{},Ext.applyIf(config,{name:"country",hiddenName:"country",url:MODx.config.connector_url,baseParams:{action:"System/Country/GetList",combo:1},displayField:"country",valueField:"iso",fields:["iso","country","value"],editable:!0,typeAhead:!0}),MODx.combo.Country.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Country,MODx.combo.ComboBox),Ext.reg("modx-combo-country",MODx.combo.Country),MODx.combo.Gender=function(config){config=config||{},Ext.applyIf(config,{store:new Ext.data.SimpleStore({fields:["d","v"],data:[["",0],[_("user_male"),1],[_("user_female"),2],[_("user_other"),3]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1}),MODx.combo.Gender.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Gender,Ext.form.ComboBox),Ext.reg("modx-combo-gender",MODx.combo.Gender),MODx.combo.PropertySet=function(config){config=config||{},Ext.applyIf(config,{name:"propertyset",hiddenName:"propertyset",url:MODx.config.connector_url,baseParams:{action:"Element/PropertySet/GetList"},displayField:"name",valueField:"id",fields:["id","name"],editable:!1,pageSize:20,width:300}),MODx.combo.PropertySet.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.PropertySet,MODx.combo.ComboBox),Ext.reg("modx-combo-property-set",MODx.combo.PropertySet),MODx.ChangeParentField=function(config){config=config||{},Ext.applyIf(config,{triggerAction:"all",editable:!1,readOnly:!1,formpanel:"modx-panel-resource",parentcmp:"modx-resource-parent-hidden",contextcmp:"modx-resource-context-key",currentid:MODx.request.id}),MODx.ChangeParentField.superclass.constructor.call(this,config),this.config=config,this.on("click",this.onTriggerClick,this),this.addEvents({end:!0}),this.on("end",this.end,this)},Ext.extend(MODx.ChangeParentField,Ext.form.TriggerField,{oldValue:!1,oldDisplayValue:!1,end:function(p){var t=Ext.getCmp("modx-resource-tree");t&&(p.d=p.d||p.v,t.removeListener("click",this.handleChangeParent,this),t.on("click",t._handleClick,t),t.disableHref=!1,MODx.debug("Setting parent to: "+p.v),Ext.getCmp(this.config.parentcmp).setValue(p.v),this.setValue(p.d),this.oldValue=!1,Ext.getCmp(this.config.formpanel).fireEvent("fieldChange"))},onTriggerClick:function(){if(this.disabled)return!1;if(this.oldValue)return this.fireEvent("end",{v:this.oldValue,d:this.oldDisplayValue}),!1;if(MODx.debug("onTriggerClick"),!Ext.getCmp("modx-resource-tree")){MODx.debug("no tree found, trying to activate");var tp=Ext.getCmp("modx-leftbar-tabpanel");return tp?(tp.on("tabchange",function(tbp,tab){"modx-resource-tree-ct"==tab.id&&this.disableTreeClick()},this),tp.activate("modx-resource-tree-ct")):MODx.debug("no tabpanel"),!1}this.disableTreeClick()},disableTreeClick:function(){return MODx.debug("Disabling tree click"),t=Ext.getCmp("modx-resource-tree"),t?(this.oldDisplayValue=this.getValue(),this.oldValue=Ext.getCmp(this.config.parentcmp).getValue(),this.setValue(_("resource_parent_select_node")),t.expand(),t.removeListener("click",t._handleClick),t.on("click",this.handleChangeParent,this),t.disableHref=!0):(MODx.debug("No tree found in disableTreeClick!"),!1)},handleChangeParent:function(node,e){var ctxv=Ext.getCmp("modx-resource-tree");if(!ctxv)return!1;ctxv.disableHref=!0;var id=node.id.split("_");if((id=id[1])==this.config.currentid)return MODx.msg.alert("",_("resource_err_own_parent")),!1;var ctxf=Ext.getCmp(this.config.contextcmp);return ctxf&&(ctxv=ctxf.getValue(),node.attributes&&node.attributes.ctx!=ctxv&&ctxf.setValue(node.attributes.ctx)),this.fireEvent("end",{v:"modContext"!=node.attributes.type?id:node.attributes.pk,d:Ext.util.Format.stripTags(node.text)}),e.preventDefault(),e.stopEvent(),!0}}),Ext.reg("modx-field-parent-change",MODx.ChangeParentField),MODx.combo.TVWidget=function(config){config=config||{},Ext.applyIf(config,{name:"widget",hiddenName:"widget",displayField:"name",valueField:"value",fields:["value","name"],editable:!1,url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetOutputs"},value:"default"}),MODx.combo.TVWidget.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVWidget,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-widget",MODx.combo.TVWidget),MODx.combo.TVInputType=function(config){config=config||{},Ext.applyIf(config,{name:"type",hiddenName:"type",displayField:"name",valueField:"value",editable:!1,fields:["value","name"],url:MODx.config.connector_url,baseParams:{action:"Element/TemplateVar/Renders/GetInputs"},value:"text"}),MODx.combo.TVInputType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.TVInputType,MODx.combo.ComboBox),Ext.reg("modx-combo-tv-input-type",MODx.combo.TVInputType),MODx.combo.Dashboard=function(config){config=config||{},Ext.applyIf(config,{name:"dashboard",hiddenName:"dashboard",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"System/Dashboard/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.Dashboard.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Dashboard,MODx.combo.ComboBox),Ext.reg("modx-combo-dashboard",MODx.combo.Dashboard),MODx.combo.MediaSource=function(config){config=config||{},Ext.applyIf(config,{name:"source",hiddenName:"source",displayField:"name",valueField:"id",fields:["id","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.MediaSource.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSource,MODx.combo.ComboBox),Ext.reg("modx-combo-source",MODx.combo.MediaSource),MODx.combo.MediaSourceType=function(config){config=config||{},Ext.applyIf(config,{name:"class_key",hiddenName:"class_key",displayField:"name",valueField:"class",fields:["id","class","name","description"],pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Source/Type/GetList"},tpl:new Ext.XTemplate('','
    ','

    {name:htmlEncode}

    ','

    {description:htmlEncode}

    ',"
    ")}),MODx.combo.MediaSourceType.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.MediaSourceType,MODx.combo.ComboBox),Ext.reg("modx-combo-source-type",MODx.combo.MediaSourceType),MODx.combo.Authority=function(config){config=config||{},Ext.applyIf(config,{name:"authority",hiddenName:"authority",forceSelection:!0,typeAhead:!1,editable:!1,allowBlank:!1,pageSize:20,url:MODx.config.connector_url,baseParams:{action:"Security/Role/GetAuthorityList",addNone:!0}}),MODx.combo.Authority.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Authority,MODx.combo.ComboBox),Ext.reg("modx-combo-authority",MODx.combo.Authority),MODx.combo.ManagerTheme=function(config){config=config||{},Ext.applyIf(config,{name:"theme",hiddenName:"theme",displayField:"theme",valueField:"theme",fields:["theme"],url:MODx.config.connector_url,baseParams:{action:"Workspace/Theme/GetList"},typeAhead:!1,editable:!1}),MODx.combo.ManagerTheme.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.ManagerTheme,MODx.combo.ComboBox),Ext.reg("modx-combo-manager-theme",MODx.combo.ManagerTheme),MODx.combo.SettingKey=function(config){config=config||{},Ext.applyIf(config,{name:"key",hiddenName:"key",displayField:"key",valueField:"key",fields:["key"],url:MODx.config.connector_url,baseParams:{action:"System/Settings/GetList"},typeAhead:!1,triggerAction:"all",editable:!0,forceSelection:!1,queryParam:"key",pageSize:20}),MODx.combo.SettingKey.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.SettingKey,MODx.combo.ComboBox),Ext.reg("modx-combo-setting-key",MODx.combo.SettingKey),MODx.combo.Visibility=function(config){config=config||{},Ext.applyIf(config,{name:"visibility",hiddenName:"visibility",store:new Ext.data.SimpleStore({fields:["d","v"],data:[[_("file_folder_visibility_public"),"public"],[_("file_folder_visibility_private"),"private"]]}),displayField:"d",valueField:"v",mode:"local",triggerAction:"all",editable:!1,selectOnFocus:!1,preventRender:!0,forceSelection:!0,enableKeyEvents:!0}),MODx.combo.Visibility.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Visibility,MODx.combo.ComboBox),Ext.reg("modx-combo-visibility",MODx.combo.Visibility),MODx.combo.Permission=function(config){config=config||{},Ext.applyIf(config,{name:"permission",hiddenName:"permission",displayField:"name",valueField:"name",fields:["name","description"],editable:!0,typeAhead:!1,forceSelection:!1,enableKeyEvents:!0,autoSelect:!1,pageSize:20,tpl:new Ext.XTemplate('
    {name:htmlEncode}','

    {description:htmlEncode}

    '),url:MODx.config.connector_url,baseParams:{action:"Security/Access/Permission/GetList"}}),MODx.combo.Permission.superclass.constructor.call(this,config)},Ext.extend(MODx.combo.Permission,MODx.combo.ComboBox),Ext.reg("modx-combo-permission",MODx.combo.Permission),Ext.namespace("MODx.grid"),MODx.grid.Grid=function(config){if(config=config||{},this.config=config,this._loadStore(),this._loadColumnModel(),Ext.applyIf(config,{store:this.store,cm:this.cm,sm:new Ext.grid.RowSelectionModel({singleSelect:!0}),paging:!!config.bbar,loadMask:!0,autoHeight:!0,collapsible:!0,stripeRows:!0,header:!1,cls:"modx-grid",preventRender:!0,preventSaveRefresh:!0,showPerPage:!0,stateful:!1,showActionsColumn:!0,disableContextMenuAction:!1,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1},viewConfig:{forceFit:!0,enableRowBody:!0,autoFill:!0,showPreview:!0,scrollOffset:0,emptyText:config.emptyText||_("ext_emptymsg")},groupingConfig:{enableGroupingMenu:!0}}),config.paging){var pgItms=config.showPerPage?[_("per_page")+":",{xtype:"textfield",cls:"x-tbar-page-size",value:config.pageSize||parseInt(MODx.config.default_per_page)||20,listeners:{change:{fn:this.onChangePerPage,scope:this},render:{fn:function(cmp){new Ext.KeyMap(cmp.getEl(),{key:Ext.EventObject.ENTER,fn:this.blur,scope:cmp})},scope:this}}}]:[];if(config.pagingItems)for(var i=0;i 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'},Ext.applyIf(config.groupingConfig,isPercentage),Ext.applyIf(config,{view:new Ext.grid.GroupingView(config.groupingConfig)})),config.tbar)for(var ix=0;ix":"")+data.msg},this),Ext.isEmpty(msg)&&(msg=this.autosaveErrorMsg||_("error")),MODx.msg.alert(_("error"),msg))},onChangePerPage:function(tf,nv){if(Ext.isEmpty(nv))return!1;nv=parseInt(nv),this.getBottomToolbar().pageSize=nv,this.store.load({params:{start:0,limit:nv}})},loadWindow:function(btn,e,win,or){var r=this.menu.record;this.windows[win.xtype]&&!win.force||(Ext.applyIf(win,{record:win.blankValues?{}:r,grid:this,listeners:{success:{fn:win.success||this.refresh,scope:win.scope||this}}}),or&&Ext.apply(win,or),this.windows[win.xtype]=Ext.ComponentMgr.create(win)),this.windows[win.xtype].setValues&&!0!==win.blankValues&&null!=r&&this.windows[win.xtype].setValues(r),this.windows[win.xtype].show(e.target)},confirm:function(type,text){var p={action:type},k=this.config.primaryKey||"id";p[k]=this.menu.record[k],MODx.msg.confirm({title:_(type),text:_(text)||_("confirm_remove"),url:this.config.url,params:p,listeners:{success:{fn:this.refresh,scope:this}}})},remove:function(text,action){if(this.destroying)return MODx.grid.Grid.superclass.remove.apply(this,arguments);var r=this.menu.record;text=text||"confirm_remove";var p=this.config.saveParams||{};Ext.apply(p,{action:action||"remove"});var k=this.config.primaryKey||"id";p[k]=r[k],this.fireEvent("beforeRemoveRow",r)&&MODx.msg.confirm({title:_("warning"),text:_(text,r),url:this.config.url,params:p,listeners:{success:{fn:function(){this.removeActiveRow(r)},scope:this}}})},removeActiveRow:function(rx){this.fireEvent("afterRemoveRow",rx)&&(rx=this.getSelectionModel().getSelected(),this.getStore().remove(rx))},_loadMenu:function(){this.menu=new Ext.menu.Menu(this.config.menuConfig)},_showMenu:function(g,ri,e){var m;e.stopEvent(),e.preventDefault(),this.menu.record=this.getStore().getAt(ri).data,this.getSelectionModel().isSelected(ri)||this.getSelectionModel().selectRow(ri),this.menu.removeAll(),!this.getMenu||(m=this.getMenu(g,ri,e))&&m.length&&0
    ',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,actions){actions=this.getActions.apply(this,[record,rowIndex,colIndex,actions]);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions:actions})},renderLink:function(v,attr){var i,el=new Ext.Element(document.createElement("a"));for(i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(record,rowIndex,colIndex,store){return[]},onClickHandler:function(e){var actionHandler,record,recordIndex=e.getTarget();recordIndex.classList.contains("x-grid-action")&&(!recordIndex.dataset.action||(this[actionHandler="action"+recordIndex.dataset.action.charAt(0).toUpperCase()+recordIndex.dataset.action.slice(1)]&&"function"==typeof this[actionHandler]||this[actionHandler=recordIndex.dataset.action]&&"function"==typeof this[actionHandler])&&(record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record),this.menu.record=record.data,this[actionHandler](record,recordIndex,e)))},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)},makeUrl:function(){if(Array.isArray(this.config.urlFilters)&&0 1 ? "'+(config.pluralText||_("records"))+'" : "'+(config.singleText||_("record"))+'"]})'})}),config.tbar)for(var i=0;i
    ',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){var actions=this.getActions.apply(this,arguments);return!0!==this.config.disableContextMenuAction&&actions.push({text:_("context_menu"),action:"contextMenu",icon:"gear"}),this._getActionsColumnTpl().apply({actions:actions})},renderLink:function(v,attr){var i,el=new Ext.Element(document.createElement("a"));for(i in el.addClass("x-grid-link"),el.dom.title=_("edit"),attr)el.dom[i]=attr[i];return el.dom.innerHTML=Ext.util.Format.htmlEncode(v),el.dom.outerHTML},getActions:function(value,metaData,record,rowIndex,colIndex,store){return[]},onClick:function(e){var actionHandler,record,recordIndex=e.getTarget();recordIndex.classList.contains("x-grid-action")&&(!recordIndex.dataset.action||(this[actionHandler="action"+recordIndex.dataset.action.charAt(0).toUpperCase()+recordIndex.dataset.action.slice(1)]&&"function"==typeof this[actionHandler]||this[actionHandler=recordIndex.dataset.action]&&"function"==typeof this[actionHandler])&&(record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record),this.menu.record=record.data,this[actionHandler](record,recordIndex,e)))},actionContextMenu:function(record,recordIndex,e){this._showMenu(this,recordIndex,e)}}),Ext.reg("grid-local",MODx.grid.LocalGrid),Ext.reg("modx-grid-local",MODx.grid.LocalGrid),Ext.ns("Ext.ux.grid"),Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:!0,expandOnDblClick:!0,header:"",width:20,sortable:!1,fixed:!0,hideable:!1,menuDisabled:!0,dataIndex:"",id:"expander",lazyRender:!0,enableCaching:!0,constructor:function(config){Ext.apply(this,config),this.addEvents({beforeexpand:!0,expand:!0,beforecollapse:!0,collapse:!0}),Ext.ux.grid.RowExpander.superclass.constructor.call(this),this.tpl&&("string"==typeof this.tpl&&(this.tpl=new Ext.Template(this.tpl)),this.tpl.compile()),this.state={},this.bodyContent={}},getRowClass:function(record,rowIndex,p,ds){p.cols=p.cols-1;var content=this.bodyContent[record.id];return content||this.lazyRender||(content=this.getBodyContent(record,rowIndex)),content&&(p.body=content),this.state[record.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed"},init:function(grid){var view=(this.grid=grid).getView();view.getRowClass=this.getRowClass.createDelegate(this),view.enableRowBody=!0,grid.on("render",this.onRender,this),grid.on("destroy",this.onDestroy,this)},onRender:function(){var grid=this.grid;grid.getView().mainBody.on("mousedown",this.onMouseDown,this,{delegate:".x-grid3-row-expander"}),this.expandOnEnter&&(this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{enter:this.onEnter,scope:this})),this.expandOnDblClick&&grid.on("rowdblclick",this.onRowDblClick,this)},onDestroy:function(){this.keyNav&&(this.keyNav.disable(),delete this.keyNav);var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)},onRowDblClick:function(grid,rowIdx,e){this.toggleRow(rowIdx)},onEnter:function(e){for(var g=this.grid,sels=g.getSelectionModel().getSelections(),i=0,len=sels.length;i '},beforeExpand:function(record,body,rowIndex){return!1!==this.fireEvent("beforeexpand",this,record,body,rowIndex)&&(this.tpl&&this.lazyRender&&(body.innerHTML=this.getBodyContent(record,rowIndex)),!0)},toggleRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row)),this[Ext.fly(row).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](row)},expandRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",row);this.beforeExpand(record,body,row.rowIndex)&&(this.state[record.id]=!0,Ext.fly(row).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded"),this.fireEvent("expand",this,record,body,row.rowIndex))},collapseRow:function(row){"number"==typeof row&&(row=this.grid.view.getRow(row));var record=this.grid.store.getAt(row.rowIndex),body=Ext.fly(row).child("tr:nth(1) div.x-grid3-row-body",!0);!1!==this.fireEvent("beforecollapse",this,record,body,row.rowIndex)&&(this.state[record.id]=!1,Ext.fly(row).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed"),this.fireEvent("collapse",this,record,body,row.rowIndex))}}),Ext.preg("rowexpander",Ext.ux.grid.RowExpander),Ext.grid.RowExpander=Ext.ux.grid.RowExpander,Ext.ns("Ext.ux.grid"),Ext.ux.grid.CheckColumn=function(a){Ext.apply(this,a),this.id||(this.id=Ext.id()),this.renderer=this.renderer.createDelegate(this)},Ext.ux.grid.CheckColumn.prototype={init:function(b){this.grid=b,this.grid.on("render",function(){this.grid.getView().mainBody.on("mousedown",this.onMouseDown,this)},this),this.grid.on("destroy",this.onDestroy,this)},onMouseDown:function(sv,b){this.grid.fireEvent("rowclick"),b.className&&-1!=b.className.indexOf("x-grid3-cc-"+this.id)&&(sv.stopEvent(),sv=this.grid.getView().findRowIndex(b),sv=(b=this.grid.store.getAt(sv)).data[this.dataIndex],b.set(this.dataIndex,!sv),this.grid.fireEvent("afteredit",{grid:this.grid,record:b,field:this.dataIndex,originalValue:sv,value:b.data[this.dataIndex],cancel:!1}))},renderer:function(v,p,a){return p.css+=" x-grid3-check-col-td",'
     
    '},onDestroy:function(){var mainBody=this.grid.getView().mainBody;mainBody&&mainBody.un("mousedown",this.onMouseDown,this)}},Ext.preg("checkcolumn",Ext.ux.grid.CheckColumn),Ext.grid.CheckColumn=Ext.ux.grid.CheckColumn,Ext.grid.PropertyColumnModel=function(a,c){var g=Ext.grid,f=Ext.form;this.grid=a,g.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:!0,dataIndex:"name",id:"name",menuDisabled:!0},{header:this.valueText,width:50,resizable:!1,dataIndex:"value",id:"value",menuDisabled:!0}]),this.store=c;c=new f.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:"true"},{tag:"option",value:"false",html:"false"}]},getValue:function(){return"true"==this.el.dom.value}});this.editors={date:new g.GridEditor(new f.DateField({selectOnFocus:!0})),string:new g.GridEditor(new f.TextField({selectOnFocus:!0})),number:new g.GridEditor(new f.NumberField({selectOnFocus:!0,style:"text-align:left;"})),boolean:new g.GridEditor(c)},this.renderCellDelegate=this.renderCell.createDelegate(this),this.renderPropDelegate=this.renderProp.createDelegate(this)},Ext.extend(Ext.grid.PropertyColumnModel,Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return a?"true":"false"},isCellEditable:function(a,b){return 1==a},getRenderer:function(a){return 1==a?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(v){return this.getPropertyName(v)},renderCell:function(a){var b=a;return Ext.isDate(a)?b=this.renderDate(a):"boolean"==typeof a&&(b=this.renderBool(a)),Ext.util.Format.htmlEncode(b)},getPropertyName:function(a){var b=this.grid.propertyNames;return b&&b[a]?b[a]:a},getCellEditor:function(a,n){var val=this.store.getProperty(n),n=val.data.name,val=val.data.value;return this.grid.customEditors[n]||(Ext.isDate(val)?this.editors.date:"number"==typeof val?this.editors.number:"boolean"==typeof val?this.editors.boolean:this.editors.string)},destroy:function(){for(var a in Ext.grid.PropertyColumnModel.superclass.destroy.call(this),this.editors)Ext.destroy(a)}}),MODx.grid.JsonGrid=function(config){config=config||{},this.ident=config.ident||"jsongrid-mecitem"+Ext.id(),this.hiddenField=new Ext.form.TextArea({name:config.hiddenName||config.name,hidden:!0}),this.fieldConfig=config.fieldConfig||[{name:"key"},{name:"value"}],this.fieldConfig.push({name:"id",hidden:!0}),this.fieldColumns=[],this.fieldNames=[],Ext.each(this.fieldConfig,function(el){this.fieldNames.push(el.name),this.fieldColumns.push({header:el.header||_(el.name),dataIndex:el.name,editable:!0,menuDisabled:!0,hidden:el.hidden||!1,editor:{xtype:el.xtype||"textfield",allowBlank:el.allowBlank||!0,enableKeyEvents:!0,fieldname:el.name,listeners:{change:{fn:this.saveValue,scope:this},keyup:{fn:function(sb){var record=this.getSelectionModel().getSelected();record&&(record.set(sb.fieldname,sb.el.dom.value),this.saveValue())},scope:this}}},renderer:function(value,metadata){return metadata.css+="x-editable-column ",value},width:el.width||100})},this),Ext.applyIf(config,{id:this.ident+"-json-grid",fields:this.fieldNames,autoHeight:!0,store:new Ext.data.JsonStore({fields:this.fieldNames,data:this.loadValue(config.value)}),enableDragDrop:!0,ddGroup:this.ident+"-json-grid-dd",labelStyle:"position: absolute",columns:this.fieldColumns,disableContextMenuAction:!0,tbar:["->",{text:' '+_("add"),cls:"primary-button",handler:this.addElement,scope:this}],listeners:{render:{fn:this.renderListener,scope:this}}}),MODx.grid.JsonGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.grid.JsonGrid,MODx.grid.LocalGrid,{getMenu:function(){var m=[];return m.push({text:_("remove"),handler:this.removeElement}),m},getActions:function(){return[{action:"removeElement",icon:"trash-o",text:_("remove")}]},addElement:function(){var ds=this.getStore(),row={};Ext.each(this.fieldNames,function(fieldname){row[fieldname]=""}),row.id=this.getStore().getCount(),this.getStore().insert(this.getStore().getCount(),new ds.recordType(row)),this.getView().refresh(),this.getSelectionModel().selectRow(0)},removeElement:function(){Ext.Msg.confirm(_("remove")||"",_("confirm_remove")||"",function(e){if("yes"===e){var ds=this.getStore(),rows=this.getSelectionModel().getSelections();if(!rows.length)return!1;for(var i=0;i
    ',{compiled:!0})},actionsColumnRenderer:function(value,metaData,record,rowIndex,colIndex,store){return this._getActionsColumnTpl().apply({actions:this.getActions()})},onClick:function(e){var actionHandler,record,recordIndex=e.getTarget();recordIndex.classList.contains("x-grid-action")&&(!recordIndex.dataset.action||(this[actionHandler="action"+recordIndex.dataset.action.charAt(0).toUpperCase()+recordIndex.dataset.action.slice(1)]&&"function"==typeof this[actionHandler]||this[actionHandler=recordIndex.dataset.action]&&"function"==typeof this[actionHandler])&&(record=this.getSelectionModel().getSelected(),recordIndex=this.store.indexOf(record),this.menu.record=record.data,this[actionHandler](record,recordIndex,e)))}}),Ext.reg("grid-json",MODx.grid.JsonGrid),Ext.reg("modx-grid-json",MODx.grid.JsonGrid),MODx.Console=function(config){config=config||{},Ext.Updater.defaults.showLoadIndicator=!1,Ext.applyIf(config,{title:_("console"),modal:!Ext.isIE,closeAction:"hide",resizable:!1,collapsible:!1,closable:!0,maximizable:!0,autoScroll:!0,height:400,width:600,refreshRate:2,cls:"modx-window modx-console",items:[{itemId:"header",cls:"modx-console-text",html:_("console_running"),border:!1},{xtype:"panel",itemId:"body",cls:"x-panel-bwrap modx-console-text"}],buttons:[{text:_("console_download_output"),handler:this.download,scope:this},{text:_("ok"),cls:"primary-button",itemId:"okBtn",disabled:!0,scope:this,handler:this.hideConsole}],keys:[{key:Ext.EventObject.S,ctrl:!0,fn:this.download,scope:this},{key:Ext.EventObject.ENTER,fn:this.hideConsole,scope:this}]}),MODx.Console.superclass.constructor.call(this,config),this.config=config,this.addEvents({shutdown:!0,complete:!0}),this.on("show",this.init,this),this.on("hide",function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fireEvent("shutdown"),this.destroy()}),this.on("complete",this.onComplete,this)},Ext.extend(MODx.Console,Ext.Window,{mgr:null,running:!1,init:function(){Ext.Msg.hide(),this.fbar.setDisabled(!0),this.keyMap.setDisabled(!0),this.getComponent("body").el.dom.innerHTML="",this.provider=new Ext.direct.PollingProvider({type:"polling",url:MODx.config.connector_url,interval:1e3,baseParams:{action:"System/Console",register:this.config.register||"",topic:this.config.topic||"",clear:!1,show_filename:this.config.show_filename||0,format:this.config.format||"html_log"}}),Ext.Direct.addProvider(this.provider),Ext.Direct.on("message",this.onMessage,this)},onMessage:function(e,p){var out=this.getComponent("body");out&&(out.el.insertHtml("beforeEnd",e.data),e.data="",out.el.scroll("b",out.el.getHeight(),!0)),e.complete&&this.fireEvent("complete"),delete e},onComplete:function(){if(this.provider&&this.provider.disconnect)try{this.provider.disconnect()}catch(e){}this.fbar.setDisabled(!1),this.keyMap.setDisabled(!1)},download:function(){var c=this.getComponent("body").getEl().dom.innerHTML||" ";MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"System/DownloadOutput",data:c},listeners:{success:{fn:function(r){location.href=MODx.config.connector_url+"?action=System/DownloadOutput&HTTP_MODAUTH="+MODx.siteId+"&download="+r.message},scope:this}}})},setRegister:function(register,topic){this.config.register=register,this.config.topic=topic},hideConsole:function(){this.hide()}}),Ext.reg("modx-console",MODx.Console),Ext.namespace("MODx.portal"),Ext.ux.Portal=Ext.extend(Ext.Panel,{layout:"column",cls:"x-portal",defaultType:"portalcolumn",initComponent:function(){Ext.ux.Portal.superclass.initComponent.call(this),this.addEvents({validatedrop:!0,beforedragover:!0,dragover:!0,beforedrop:!0,drop:!0})},initEvents:function(){Ext.ux.Portal.superclass.initEvents.call(this),this.dd=new Ext.ux.Portal.DropZone(this,this.dropConfig)},beforeDestroy:function(){this.dd&&this.dd.unreg(),Ext.ux.Portal.superclass.beforeDestroy.call(this)}}),Ext.reg("portal",Ext.ux.Portal),Ext.ux.Portal.DropZone=function(a,b){this.portal=a,Ext.dd.ScrollManager.register(a.body),Ext.ux.Portal.DropZone.superclass.constructor.call(this,a.bwrap.dom,b),a.body.ddScrollConfig=this.ddScrollConfig},Ext.extend(Ext.ux.Portal.DropZone,Ext.dd.DropTarget,{ddScrollConfig:{vthresh:50,hthresh:-1,animate:!0,increment:200},createEvent:function(a,e,b,d,c,f){return{portal:this.portal,panel:b.panel,columnIndex:d,column:c,position:f,data:b,source:a,rawEvent:e,status:this.dropAllowed}},notifyOver:function(a,e,j){var d=e.getXY(),portal=this.portal,px=a.proxy;this.grid||(this.grid=this.getGrid());var c=portal.body.dom.clientWidth;this.lastCW?this.lastCW!=c&&(this.lastCW=c,portal.doLayout(),this.grid=this.getGrid()):this.lastCW=c;for(var g=0,xs=this.grid.columnX,cmatch=!1,i=xs.length;gd[1]){match=!0;break}}pos=(match&&p?pos:c.items.getCount())+(overSelf?-1:0);j=this.createEvent(a,e,j,g,c,pos);return!1!==portal.fireEvent("validatedrop",j)&&!1!==portal.fireEvent("beforedragover",j)&&(px.getProxy().setWidth("auto"),p?px.moveProxy(p.el.dom.parentNode,match?p.el.dom:null):px.moveProxy(c.el.dom,null),this.lastPos={c:c,col:g,p:!!(overSelf||match&&p)&&pos},this.scrollPos=portal.body.getScroll(),portal.fireEvent("dragover",j)),j.status},notifyOut:function(){delete this.grid},notifyDrop:function(a,e,b){var c,pos,f,g,d;delete this.grid,this.lastPos&&(c=this.lastPos.c,f=this.lastPos.col,pos=this.lastPos.p,f=this.createEvent(a,e,b,f,c,!1!==pos?pos:c.items.getCount()),!1!==this.portal.fireEvent("validatedrop",f)&&!1!==this.portal.fireEvent("beforedrop",f)&&(a.proxy.getProxy().remove(),a.panel.el.dom.parentNode.removeChild(a.panel.el.dom),!1!==pos?(c==a.panel.ownerCt&&c.items.items.indexOf(a.panel)<=pos&&pos++,c.insert(pos,a.panel)):c.add(a.panel),c.doLayout(),this.portal.fireEvent("drop",f),(g=this.scrollPos.top)&&(d=this.portal.body.dom,setTimeout(function(){d.scrollTop=g},10))),delete this.lastPos)},getGrid:function(){var a=this.portal.bwrap.getBox();return a.columnX=[],this.portal.items.each(function(c){a.columnX.push({x:c.el.getX(),w:c.el.getWidth()})}),a},unreg:function(){Ext.ux.Portal.DropZone.superclass.unreg.call(this)}}),MODx.portal.Column=Ext.extend(Ext.Container,{layout:"anchor",defaultType:"portlet",cls:"x-portal-column",style:"padding:10px;",columnWidth:1,defaults:{collapsible:!0,autoHeight:!0,titleCollapse:!0,draggable:!0,style:"padding: 5px 0;",bodyStyle:"padding: 15px;"}}),Ext.reg("portalcolumn",MODx.portal.Column),MODx.portal.Portlet=Ext.extend(Ext.Panel,{anchor:Ext.isSafari?"98%":"100%",frame:!0,collapsible:!0,draggable:!0,cls:"x-portlet",stateful:!1,layout:"form"}),Ext.reg("portlet",MODx.portal.Portlet),MODx.window.DuplicateResource=function(config){config=config||{},this.ident=config.ident||"dupres"+Ext.id(),Ext.applyIf(config,{title:config.pagetitle?_("duplicate")+" "+config.pagetitle:_("duplication_options"),id:this.ident}),MODx.window.DuplicateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateResource,MODx.Window,{_loadForm:function(){if(this.checkIfLoaded(this.config.record))return!(this.fp.getForm().baseParams={action:"Resource/Updateduplicate",prefixDuplicate:!0,id:this.config.resource});var items=[];items.push({xtype:"textfield",id:"modx-"+this.ident+"-name",fieldLabel:_("resource_name_new"),name:"name",anchor:"100%",value:""}),this.config.hasChildren&&items.push({xtype:"xcheckbox",boxLabel:_("duplicate_children")+" ("+this.config.childCount+")",hideLabel:!0,name:"duplicate_children",id:"modx-"+this.ident+"-duplicate-children",checked:!0}),items.push({xtype:"xcheckbox",boxLabel:_("duplicate_redirect"),hideLabel:!0,name:"redirect",id:"modx-"+this.ident+"-duplicate-redirect",checked:this.config.redirect});var pov=MODx.config.default_duplicate_publish_option||"preserve";items.push({xtype:"fieldset",title:_("publishing_options"),items:[{xtype:"radiogroup",hideLabel:!0,columns:1,value:pov,items:[{boxLabel:_("po_make_all_unpub"),hideLabel:!0,name:"published_mode",inputValue:"unpublish"},{boxLabel:_("po_make_all_pub"),hideLabel:!0,name:"published_mode",inputValue:"publish"},{boxLabel:_("po_preserve"),hideLabel:!0,name:"published_mode",inputValue:"preserve"}]}]}),this.fp=this.createForm({url:this.config.url||MODx.config.connector_url,baseParams:this.config.baseParams||{action:"Resource/Duplicate",id:this.config.resource,prefixDuplicate:!0},labelWidth:125,defaultType:"textfield",autoHeight:!0,items:items}),this.renderForm()}}),Ext.reg("modx-window-resource-duplicate",MODx.window.DuplicateResource),MODx.window.DuplicateElement=function(config){config=config||{},this.ident=config.ident||"dupeel-"+Ext.id();var flds=[{xtype:"hidden",name:"id",id:"modx-"+this.ident+"-id"},{xtype:"hidden",name:"source",id:"modx-"+this.ident+"-source"},{xtype:"textfield",fieldLabel:_("element_name_new"),name:"template"==config.record.type?"templatename":"name",id:"modx-"+this.ident+"-name",anchor:"100%",enableKeyEvents:!0,listeners:{afterRender:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}},keyup:{scope:this,fn:function(f,e){this.setStaticElementsPath(f)}}}}];"tv"==config.record.type&&(flds.push({xtype:"textfield",fieldLabel:_("element_caption_new"),name:"caption",id:"modx-"+this.ident+"-caption",anchor:"100%"}),flds.push({xtype:"xcheckbox",hideLabel:!0,boxLabel:_("element_duplicate_values"),labelSeparator:"",name:"duplicateValues",id:"modx-"+this.ident+"-duplicate-values",anchor:"100%",inputValue:1,checked:!1})),!0===config.record.static&&flds.push({xtype:"textfield",fieldLabel:_("static_file"),name:"static_file",id:"modx-"+this.ident+"-static_file",anchor:"100%"}),flds.push({xtype:"xcheckbox",boxLabel:_("duplicate_redirect"),hideLabel:!0,name:"redirect",id:"modx-"+this.ident+"-duplicate-redirect",checked:config.redirect}),Ext.applyIf(config,{title:_("duplicate_"+config.record.type),url:MODx.config.connector_url,action:"element/"+config.record.type+"/duplicate",width:600,fields:flds,labelWidth:150}),MODx.window.DuplicateElement.superclass.constructor.call(this,config)},Ext.extend(MODx.window.DuplicateElement,MODx.Window,{setStaticElementsPath:function(f){var category,path;!0===this.config.record.static&&("number"!=typeof(category=this.config.record.category)?(0"+_("session_logging_out")+"

    ",xtype:"modx-description"},{xtype:"textfield",id:"modx-"+this.ident+"-username",fieldLabel:_("username"),name:"username",anchor:"100%"},{xtype:"textfield",inputType:"password",id:"modx-"+this.ident+"-password",fieldLabel:_("password"),name:"password",anchor:"100%"},{xtype:"hidden",name:"rememberme",value:1}],buttons:[{text:_("logout"),scope:this,handler:function(){location.href="?logout=1"}},{text:_("login"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.Login.superclass.constructor.call(this,config),this.on("success",this.onLogin,this)},Ext.extend(MODx.window.Login,MODx.Window,{onLogin:function(r){r=r.a.result;r.object&&r.object.token&&(Ext.Ajax.defaultHeaders={modAuth:r.object.token},Ext.Ajax.extraParams={HTTP_MODAUTH:r.object.token},MODx.siteId=r.object.token,MODx.msg.status({message:_("session_extended")}))}}),Ext.reg("modx-window-login",MODx.window.Login),function(window){"use strict";var CanvasPrototype=window.HTMLCanvasElement&&window.HTMLCanvasElement.prototype,hasBlobConstructor=window.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),hasArrayBufferViewSupport=hasBlobConstructor&&window.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,dataURLtoBlob=(hasBlobConstructor||BlobBuilder)&&window.atob&&window.ArrayBuffer&&window.Uint8Array&&function(bb){for(var mimeString,byteString=(0<=bb.split(",")[0].indexOf("base64")?atob:decodeURIComponent)(bb.split(",")[1]),arrayBuffer=new ArrayBuffer(byteString.length),intArray=new Uint8Array(arrayBuffer),i=0;i>2,enc2=(3&enc2)<<4|byte2>>4;isNaN(byte2)?enc3=enc4=64:(enc3=(15&byte2)<<2|byte3>>6,enc4=isNaN(byte3)?64:63&byte3),outStr+=b64.charAt(enc1)+b64.charAt(enc2)+b64.charAt(enc3)+b64.charAt(enc4)}return outStr}};function _emit(target,fn,name,evt,ext){evt={type:name.type||name,target:target,result:evt};_extend(evt,ext),fn(evt)}function _hasSupportReadAs(method){return FileReader&&FileReader.prototype["readAs"+method]}function _readAs(file,fn,method,encoding){if(api.isBlob(file)&&_hasSupportReadAs(method)){var Reader=new FileReader;_on(Reader,_readerEvents,function _fn(evt){var type=evt.type;"progress"==type?_emit(file,fn,evt,evt.target.result,{loaded:evt.loaded,total:evt.total}):"loadend"==type?(_off(Reader,_readerEvents,_fn),Reader=null):_emit(file,fn,evt,evt.target.result)});try{encoding?Reader["readAs"+method](file,encoding):Reader["readAs"+method](file)}catch(err){_emit(file,fn,"error",void 0,{error:err.toString()})}}else _emit(file,fn,"error",void 0,{error:"filreader_not_support_"+method})}function _isEntry(item){return item&&(item.isFile||item.isDirectory)}function _getAsEntry(item){var entry;return item.getAsEntry?entry=item.getAsEntry():item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry()),entry}function isInputFile(el){return _rinput.test(el&&el.tagName)}function _getDataTransfer(evt){return(evt.originalEvent||evt||"").dataTransfer||{}}api.addInfoReader(/^image/,function(file,callback){var defer;file.__dimensions||(defer=file.__dimensions=api.defer(),api.readAsImage(file,function(evt){var img=evt.target;defer.resolve("load"!=evt.type&&"error",{width:img.width,height:img.height}),img.src=api.EMPTY_PNG,img=null})),file.__dimensions.then(callback)}),api.event.dnd=function(el,onHover,onDrop){var _id,_type;onDrop||(onDrop=onHover,onHover=api.F),FileReader?(_on(el,"dragenter dragleave dragover",onHover.ff=onHover.ff||function(evt){for(var types=_getDataTransfer(evt).types,i=types&&types.length,debounceTrigger=!1;i--;)if(~types[i].indexOf("File")){evt.preventDefault(),_type!==evt.type&&("dragleave"!=(_type=evt.type)&&onHover.call(evt.currentTarget,!0,evt),debounceTrigger=!0);break}debounceTrigger&&(clearTimeout(_id),_id=setTimeout(function(){onHover.call(evt.currentTarget,"dragleave"!=_type,evt)},50))}),_on(el,"drop",onDrop.ff=onDrop.ff||function(evt){evt.preventDefault(),_type=0,api.getDropFiles(evt,function(files,all){onDrop.call(evt.currentTarget,files,all,evt)}),onHover.call(evt.currentTarget,!1,evt)})):api.log("Drag'n'Drop -- not supported")},api.event.dnd.off=function(el,onHover,onDrop){_off(el,"dragenter dragleave dragover",onHover.ff),_off(el,"drop",onDrop.ff)},jQuery&&!jQuery.fn.dnd&&(jQuery.fn.dnd=function(onHover,onDrop){return this.each(function(){api.event.dnd(this,onHover,onDrop)})},jQuery.fn.offdnd=function(onHover,onDrop){return this.each(function(){api.event.dnd.off(this,onHover,onDrop)})}),window.FileAPI=_extend(api,window.FileAPI),api.log("FileAPI: "+api.version),api.log("protocol: "+window.location.protocol),api.log("doctype: ["+doctype.name+"] "+doctype.publicId+" "+doctype.systemId),_each(document.getElementsByTagName("meta"),function(meta){/x-ua-compatible/i.test(meta.getAttribute("http-equiv"))&&api.log("meta.http-equiv: "+meta.getAttribute("content"))});try{_supportConsoleLog=!!console.log,_supportConsoleLogApply=!!console.log.apply}catch(err){}api.flashUrl||(api.flashUrl=api.staticPath+"FileAPI.flash.swf"),api.flashImageUrl||(api.flashImageUrl=api.staticPath+"FileAPI.flash.image.swf"),api.flashWebcamUrl||(api.flashWebcamUrl=api.staticPath+"FileAPI.flash.camera.swf")}(window),function(api,document){"use strict";function getCanvas(){return document.createElement("canvas")}var min=Math.min,round=Math.round,support=!1,exifOrientation={8:270,3:180,6:90,7:270,4:180,5:90};try{support=-1params.maxWidth||img.height>params.maxHeight)&&ImgTrans.resize(params.maxWidth,params.maxHeight,"max"),params.crop&&(crop=params.crop,ImgTrans.crop(0|crop.x,0|crop.y,crop.w||crop.width,crop.h||crop.height)),void 0===params.rotate&&autoOrientation&&(params.rotate="auto"),ImgTrans.set({type:ImgTrans.matrix.type||params.type||file.type||"image/png"}),isFn||ImgTrans.set({deg:params.rotate,overlay:params.overlay,filter:params.filter,quality:params.quality||1}),queue.inc(),ImgTrans.toData(function(err,image){err?queue.fail():(images[name]=image,queue.next())}))})}file.width?_transform(!1,file):api.getInfo(file,_transform)},api.each(["TOP","CENTER","BOTTOM"],function(x,i){api.each(["LEFT","CENTER","RIGHT"],function(y,j){Image[x+"_"+y]=3*i+j,Image[y+"_"+x]=3*i+j})}),Image.toCanvas=function(el){var canvas=document.createElement("canvas");return canvas.width=el.videoWidth||el.width,canvas.height=el.videoHeight||el.height,canvas.getContext("2d").drawImage(el,0,0),canvas},Image.fromDataURL=function(img,size,callback){img=api.newImage(img);api.extend(img,size),callback(img)},Image.applyFilter=function(canvas,filter,doneFn){"function"==typeof filter?filter(canvas,doneFn):window.Caman&&window.Caman("IMG"==canvas.tagName?Image.toCanvas(canvas):canvas,function(){"string"==typeof filter?this[filter]():api.each(filter,function(val,method){this[method](val)},this),this.render(doneFn)})},api.renderImageToCanvas=function(canvas,img,sx,sy,sw,sh,dx,dy,dw,dh){try{return canvas.getContext("2d").drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh)}catch(ex){throw api.log("renderImageToCanvas failed"),ex}},api.support.canvas=api.support.transform=support,api.Image=Image}(FileAPI,document),function(){"use strict";!function(loadImage){"use strict";if(!window.navigator||!window.navigator.platform||!/iP(hone|od|ad)/.test(window.navigator.platform))return;var originalRenderMethod=loadImage.renderImageToCanvas;loadImage.detectSubsampling=function(img){var canvas,context;if(img.width*img.height>1024*1024){canvas=document.createElement("canvas");canvas.width=canvas.height=1;context=canvas.getContext("2d");context.drawImage(img,-img.width+1,0);return context.getImageData(0,0,1,1).data[3]===0}return false},loadImage.detectVerticalSquash=function(img,subsampled){var naturalHeight=img.naturalHeight||img.height,canvas=document.createElement("canvas"),context=canvas.getContext("2d"),data,sy,ey,py,alpha;if(subsampled)naturalHeight/=2;canvas.width=1;canvas.height=naturalHeight;context.drawImage(img,0,0);data=context.getImageData(0,0,1,naturalHeight).data;sy=0;ey=naturalHeight;py=naturalHeight;while(py>sy){alpha=data[(py-1)*4+3];if(alpha===0)ey=py;else sy=py;py=ey+sy>>1}return py/naturalHeight||1},loadImage.renderImageToCanvas=function(canvas,img,sourceX,sourceY,sourceWidth,sourceHeight,destX,destY,destWidth,destHeight){if(img._type==="image/jpeg"){var context=canvas.getContext("2d"),tmpCanvas=document.createElement("canvas"),tileSize=1024,tmpContext=tmpCanvas.getContext("2d"),subsampled,vertSquashRatio,tileX,tileY;tmpCanvas.width=tileSize;tmpCanvas.height=tileSize;context.save();subsampled=loadImage.detectSubsampling(img);if(subsampled){sourceX/=2;sourceY/=2;sourceWidth/=2;sourceHeight/=2}vertSquashRatio=loadImage.detectVerticalSquash(img,subsampled);if(subsampled||vertSquashRatio!==1){sourceY*=vertSquashRatio;destWidth=Math.ceil(tileSize*destWidth/sourceWidth);destHeight=Math.ceil(tileSize*destHeight/sourceHeight/vertSquashRatio);destY=0;tileY=0;while(tileY'+(slice&&options.url.indexOf("=?")<0?'':"")+"";var form=xhr.getElementsByTagName("form")[0],transport=xhr.getElementsByTagName("iframe")[0];form.appendChild(data),api.log(form.parentNode.innerHTML),document.body.appendChild(xhr),_this.xhr.node=xhr,_this.readyState=2;try{form.submit()}catch(err){api.log("iframe.error: "+err)}form=null}else url=url.replace(/([a-z]+)=(\?)&?/i,""),this.xhr&&this.xhr.aborted?api.log("Error: already aborted"):(xhr=_this.xhr=api.getXHR(),data.params&&(url+=(url.indexOf("?")<0?"?":"&")+data.params.join("&")),xhr.open("POST",url,!0),api.withCredentials&&(xhr.withCredentials="true"),options.headers&&options.headers["X-Requested-With"]||xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),api.each(options.headers,function(val,key){xhr.setRequestHeader(key,val)}),options._chunked?(xhr.upload&&xhr.upload.addEventListener("progress",api.throttle(function(evt){data.retry||options.progress({type:evt.type,total:data.size,loaded:data.start+evt.loaded,totalSize:data.size},_this,options)},100),!1),xhr.onreadystatechange=function(){var delay,lkb=parseInt(xhr.getResponseHeader("X-Last-Known-Byte"),10);if(_this.status=xhr.status,_this.statusText=xhr.statusText,_this.readyState=xhr.readyState,4==xhr.readyState){for(var k in _xhrResponsePostfix)_this["response"+k]=xhr["response"+k];xhr.onreadystatechange=null,!xhr.status||0').replace(/#(\w+)#/gi,function(a,name){return opts[name]})}function _css(el,css){var key,val;if(el&&el.style)for(key in css){"number"==typeof(val=css[key])&&(val+="px");try{el.style[key]=val}catch(e){}}}function _inherit(obj,methods){_each(methods,function(fn,name){var prev=obj[name];obj[name]=function(){return this.parent=prev,fn.apply(this,arguments)}})}function _isHtmlFile(file){return file&&!file.flashId}function _wrap(fn){var id=fn.wid=api.uid();return flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{flash._fn[fn.wid]=null,delete flash._fn[fn.wid]}catch(e){}}function _getUrl(url,params){var path;return _rhttp.test(url)||(!/^\.\//.test(url)&&"/"==url.charAt(0)||(url=((path=(path=location.pathname).substr(0,path.lastIndexOf("/")))+"/"+url).replace("/./","/")),"//"!=url.substr(0,2)&&(url="//"+location.host+url),_rhttp.test(url)||(url=location.protocol+url)),params&&(url+=(/\?/.test(url)?"&":"?")+params),url}function _makeFlashImage(opts,base64,fn){var key,flashId=api.uid(),el=document.createElement("div"),attempts=10;for(key in opts)el.setAttribute(key,opts[key]),el[key]=opts[key];_css(el,opts),opts.width="100%",opts.height="100%",el.innerHTML=_makeFlashHTML(api.extend({id:flashId,src:_getUrl(api.flashImageUrl,"r="+api.uid()),wmode:"opaque",flashvars:"scale="+opts.scale+"&callback="+_wrap(function _(){return _unwrap(_),0<--attempts&&function(){try{flash.get(flashId).setImage(base64)}catch(e){api.log('[err] FlashAPI.Preview.setImage -- can not set "base64":',e)}}(),!0})},opts)),fn(!1,el),el=null}api.support.flash=!1,api.support.flash&&(!api.html5||!api.support.html5||api.cors&&!api.support.cors||api.media&&!api.support.media||api.insecureChrome)&&(_attr=api.uid(),_retry=0,_files={},_rhttp=/^https?:/i,flash={_fn:{},init:function(){var child=document.body&&document.body.firstChild;if(child)do{if(1==child.nodeType){api.log("FlashAPI.state: awaiting");var dummy=document.createElement("div");return dummy.id="_"+_attr,_css(dummy,{top:1,right:1,width:5,height:5,position:"absolute",zIndex:"2147483647"}),child.parentNode.insertBefore(dummy,child),void flash.publish(dummy,_attr)}}while(child=child.nextSibling);_retry<10&&setTimeout(flash.init,50*++_retry)},publish:function(el,id,opts){opts=opts||{},el.innerHTML=_makeFlashHTML({id:id,src:_getUrl(api.flashUrl,"r="+api.version),wmode:opts.camera?"":"transparent",flashvars:"callback="+(opts.onEvent||"FileAPI.Flash.onEvent")+"&flashId="+id+"&storeKey="+navigator.userAgent.match(/\d/gi).join("")+"_"+api.version+(flash.isReady||(api.pingUrl?"&ping="+api.pingUrl:""))+"&timeout="+api.flashAbortTimeout+(opts.camera?"&useCamera="+_getUrl(api.flashWebcamUrl):"")+"&debug="+(api.debug?"1":"")})},ready:function(){api.log("FlashAPI.state: ready"),flash.ready=api.F,flash.isReady=!0,flash.patch(),flash.patchCamera&&flash.patchCamera(),api.event.on(document,"mouseover",flash.mouseover),api.event.on(document,"click",function(evt){flash.mouseover(evt)&&(evt.preventDefault?evt.preventDefault():evt.returnValue=!0)})},getEl:function(){return document.getElementById("_"+_attr)},getWrapper:function(node){do{if(/js-fileapi-wrapper/.test(node.className))return node}while((node=node.parentNode)&&node!==document.body)},mouseover:function(box){var target=api.event.fix(box).target;if(/input/i.test(target.nodeName)&&"file"==target.type&&!target.disabled){var dummy=target.getAttribute(_attr),box=flash.getWrapper(target);if(api.multiFlash){if("i"==dummy||"r"==dummy)return!1;if("p"!=dummy){target.setAttribute(_attr,"i");dummy=document.createElement("div");if(!box)return void api.log("[err] FlashAPI.mouseover: js-fileapi-wrapper not found");_css(dummy,{top:0,left:0,width:target.offsetWidth,height:target.offsetHeight,zIndex:"2147483647",position:"absolute"}),box.appendChild(dummy),flash.publish(dummy,api.uid()),target.setAttribute(_attr,"p")}return!0}box&&(box=function(docEl){var box=docEl.getBoundingClientRect(),body=document.body,docEl=(docEl&&docEl.ownerDocument).documentElement;return{top:box.top+(window.pageYOffset||docEl.scrollTop)-(docEl.clientTop||body.clientTop||0),left:box.left+(window.pageXOffset||docEl.scrollLeft)-(docEl.clientLeft||body.clientLeft||0),width:box.right-box.left,height:box.bottom-box.top}}(box),_css(flash.getEl(),box),flash.curInp=target)}else/object|embed/i.test(target.nodeName)||_css(flash.getEl(),{top:1,left:1,width:5,height:5})},onEvent:function(evt){var type=evt.type;if("ready"==type){try{flash.getInput(evt.flashId).setAttribute(_attr,"r")}catch(e){}return flash.ready(),setTimeout(function(){flash.mouseenter(evt)},50),!0}"ping"===type?api.log("(flash -> js).ping:",[evt.status,evt.savedStatus],evt.error):"log"===type?api.log("(flash -> js).log:",evt.target):type in flash&&setTimeout(function(){api.log("FlashAPI.event."+evt.type+":",evt),flash[type](evt)},1)},mouseenter:function(evt){var accept,exts,node=flash.getInput(evt.flashId);node&&(flash.cmd(evt,"multiple",null!=node.getAttribute("multiple")),accept=[],exts={},_each((node.getAttribute("accept")||"").split(/,\s*/),function(mime){api.accept[mime]&&_each(api.accept[mime].split(" "),function(ext){exts[ext]=1})}),_each(exts,function(i,ext){accept.push(ext)}),flash.cmd(evt,"accept",accept.length?accept.join(",")+","+accept.join(",").toUpperCase():"*"))},get:function(id){return document[id]||window[id]||document.embeds[id]},getInput:function(id){if(!api.multiFlash)return flash.curInp;try{var node=flash.getWrapper(flash.get(id));if(node)return node.getElementsByTagName("input")[0]}catch(e){api.log('[err] Can not find "input" by flashId:',id,e)}},select:function(files){var event,inp=flash.getInput(files.flashId),uid=api.uid(inp),files=files.target.files;_each(files,function(file){api.checkFileObj(file)}),_files[uid]=files,document.createEvent?((event=document.createEvent("Event")).files=files,event.initEvent("change",!0,!0),inp.dispatchEvent(event)):jQuery?jQuery(inp).trigger({type:"change",files:files}):((event=document.createEventObject()).files=files,inp.fireEvent("onchange",event))},cmd:function(id,name,data,last){try{return api.log("(js -> flash)."+name+":",data),flash.get(id.flashId||id).cmd(name,data)}catch(err){api.log("(js -> flash).onError:",err.toString()),last||setTimeout(function(){flash.cmd(id,name,data,!0)},50)}},patch:function(){api.flashEngine=!0,_inherit(api,{getFiles:function(files,filter,callback){if(callback)return api.filterFiles(api.getFiles(files),filter,callback),null;files=api.isArray(files)?files:_files[api.uid(files.target||files.srcElement||files)];return files?(filter&&(filter=api.getFilesFilter(filter),files=api.filter(files,function(file){return filter.test(file.name)})),files):this.parent.apply(this,arguments)},getInfo:function(file,fn){var defer;_isHtmlFile(file)?this.parent.apply(this,arguments):file.isShot?fn(null,file.info={width:file.width,height:file.height}):(file.__info||(defer=file.__info=api.defer(),flash.cmd(file,"getFileInfo",{id:file.id,callback:_wrap(function _(err,info){_unwrap(_),defer.resolve(err,file.info=info)})})),file.__info.then(fn))}}),api.support.transform=!0,api.Image&&_inherit(api.Image.prototype,{get:function(fn,scaleMode){return this.set({scaleMode:scaleMode||"noScale"}),this.parent(fn)},_load:function(file,fn){var _this;api.log("FlashAPI.Image._load:",file),_isHtmlFile(file)?this.parent.apply(this,arguments):(_this=this,api.getInfo(file,function(err){fn.call(_this,err,file)}))},_apply:function(file,fn){var m,doneFn;api.log("FlashAPI.Image._apply:",file),_isHtmlFile(file)?this.parent.apply(this,arguments):(m=this.getMatrix(file.info),doneFn=fn,flash.cmd(file,"imageTransform",{id:file.id,matrix:m,callback:_wrap(function _(err,base64){api.log("FlashAPI.Image._apply.callback:",err),_unwrap(_),err?doneFn(err):api.support.html5||api.support.dataURI&&!(3e4 "+fileId),_this.xhr={headers:{},abort:function(){flash.cmd(flashId,"abort",{id:fileId})},getResponseHeader:function(name){return this.headers[name]},getAllResponseHeaders:function(){return this.headers}};var queue=api.queue(function(){flash.cmd(flashId,"upload",{url:_getUrl(options.url.replace(/([a-z]+)=(\?)&?/i,"")),data:data,files:fileId?files:null,headers:options.headers||{},callback:_wrap(function upload(evt){var type=evt.type,result=evt.result;api.log("FlashAPI.upload."+type),"progress"==type?(evt.loaded=Math.min(evt.loaded,evt.total),evt.lengthComputable=!0,options.progress(evt)):"complete"==type?(_unwrap(upload),"string"==typeof result&&(_this.responseText=result.replace(/%22/g,'"').replace(/%5c/g,"\\").replace(/%26/g,"&").replace(/%25/g,"%")),_this.end(evt.status||200)):"abort"!=type&&"error"!=type||(_this.end(evt.status||0,evt.message),_unwrap(upload))})})});_each(files,function(file){queue.inc(),api.getInfo(file,queue.next)}),queue.check()}})}},api.Flash=flash,api.newImage("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",function(err,img){api.support.dataURI=!(1!=img.width||1!=img.height),flash.init()}))}(window,window.jQuery,FileAPI),function(api){"use strict";var flash,_each=api.each,_cameraQueue=[];function _wrap(fn){var id=fn.wid=api.uid();return api.Flash._fn[id]=fn,"FileAPI.Flash._fn."+id}function _unwrap(fn){try{api.Flash._fn[fn.wid]=null,delete api.Flash._fn[fn.wid]}catch(e){}}!api.support.flash||!api.media||api.support.media&&api.html5&&!api.insecureChrome||(flash=api.Flash,api.extend(api.Flash,{patchCamera:function(){api.Camera.fallback=function(el,options,callback){var camId=api.uid();api.log("FlashAPI.Camera.publish: "+camId),flash.publish(el,camId,api.extend(options,{camera:!0,onEvent:_wrap(function _(evt){"camera"===evt.type&&(_unwrap(_),evt.error?(api.log("FlashAPI.Camera.publish.error: "+evt.error),callback(evt.error)):(api.log("FlashAPI.Camera.publish.success: "+camId),callback(null)))})}))},_each(_cameraQueue,function(args){api.Camera.fallback.apply(api.Camera,args)}),_cameraQueue=[],api.extend(api.Camera.prototype,{_id:function(){return this.video.id},start:function(callback){var _this=this;flash.cmd(this._id(),"camera.on",{callback:_wrap(function _(evt){_unwrap(_),evt.error?(api.log("FlashAPI.camera.on.error: "+evt.error),callback(evt.error,_this)):(api.log("FlashAPI.camera.on.success: "+_this._id()),_this._active=!0,callback(null,_this))})})},stop:function(){this._active=!1,flash.cmd(this._id(),"camera.off")},shot:function(){api.log("FlashAPI.Camera.shot:",this._id());var shot=api.Flash.cmd(this._id(),"shot",{});return shot.type="image/png",shot.flashId=this._id(),shot.isShot=!0,new api.Camera.Shot(shot)}})}}),api.Camera.fallback=function(){_cameraQueue.push(arguments)})}((window,window.jQuery,FileAPI)),"function"==typeof define&&define.amd&&define("FileAPI",[],function(){return FileAPI}),function(){Ext.namespace("MODx.util.MultiUploadDialog");var maxFileSize=parseInt(MODx.config.upload_maxsize,10),permittedFileTypes=MODx.config.upload_files.toLowerCase().split(",");FileAPI.debug=!1,FileAPI.support.flash=!1,FileAPI.staticPath=MODx.config.manager_url+"assets/fileapi/";var api={humanFileSize:function(bytes,units){var thresh=units?1e3:1024;if(bytes");""!=errors&&MODx.msg.alert(_("error"),errors),this.errors={}}}),MODx.util.MultiUploadDialog.BrowseButton=Ext.extend(Ext.Button,{input_name:"file",input_file:null,original_handler:null,original_scope:null,initComponent:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.initComponent.call(this),this.original_handler=this.handler||null,this.original_scope=this.scope||window,this.handler=null,this.scope=null},onRender:function(ct,position){MODx.util.MultiUploadDialog.BrowseButton.superclass.onRender.call(this,ct,position),this.createInputFile()},createInputFile:function(){var button_container=this.el.child("button").wrap();this.input_file=button_container.createChild({tag:"input",type:"file",size:1,name:this.input_name||Ext.id(this.el),style:"cursor: pointer; display: inline-block; opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%;",multiple:!0}),this.handleMouseEvents&&(this.input_file.on("mouseover",this.onMouseOver,this),this.input_file.on("mousedown",this.onMouseDown,this)),this.tooltip&&("object"==typeof this.tooltip?Ext.QuickTips.register(Ext.apply({target:this.input_file},this.tooltip)):this.input_file.dom[this.tooltipType]=this.tooltip),this.input_file.on("change",this.onInputFileChange,this),this.input_file.on("click",function(e){e.stopPropagation()})},detachInputFile:function(no_create){var result=this.input_file;return"object"==typeof this.tooltip?Ext.QuickTips.unregister(this.input_file):this.input_file.dom[this.tooltipType]=null,this.input_file.removeAllListeners(),this.input_file=null,result},getInputFile:function(){return this.input_file},disable:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.disable.call(this),this.input_file.dom.disabled=!0},enable:function(){MODx.util.MultiUploadDialog.BrowseButton.superclass.enable.call(this),this.input_file.dom.disabled=!1},destroy:function(){this.detachInputFile(!0).remove(),MODx.util.MultiUploadDialog.BrowseButton.superclass.destroy.call(this)},reset:function(){var form=new Ext.Element(document.createElement("form")),buttonParent=this.input_file.parent();form.appendChild(this.input_file),form.dom.reset(),buttonParent.appendChild(this.input_file)},onInputFileChange:function(ev){this.original_handler&&this.original_handler.call(this.original_scope,this,ev),this.fireEvent("click",this,ev)}}),Ext.reg("multiupload-browse-btn",MODx.util.MultiUploadDialog.BrowseButton),MODx.util.MultiUploadDialog.FilesGrid=function(config){config=config||{},Ext.applyIf(config,{height:300,autoScroll:!0,border:!1,fields:["name","size","file","permitted","message","uploaded"],paging:!1,remoteSort:!1,viewConfig:{forceFit:!0,getRowClass:function(record,index,rowParams){return record.get("permitted")?record.get("uploaded")?"upload-success":void 0:"upload-error"}},sortInfo:{field:"name",direction:"ASC"},deferRowRender:!0,anchor:"100%",autoExpandColumn:"state",columns:[{header:_("upload.columns.file"),dataIndex:"name",sortable:!0,width:200,renderer:function(value,meta,record){var id=Ext.id();return FileAPI.Image(record.get("file")).resize(100,50,"max").get(function(err,img){err||(img=new Ext.Element(img).addClass("upload-thumb"),Ext.get(id).insertFirst(img))}),'

    '+value+"

    "}},{header:_("upload.columns.state"),id:"state",width:100,renderer:function(value,meta,record){if(!record.get("permitted")||record.get("uploaded"))return'

    '+record.get("message")+"

    ";var id=Ext.id();return function(){record.progressbar=new Ext.ProgressBar({renderTo:id,value:0,text:"0 / "+record.get("size")})}.defer(25),'
    '}}],getMenu:function(){return[{text:_("upload.contextmenu.remove_entry"),handler:this.removeFile}]}}),MODx.util.MultiUploadDialog.FilesGrid.superclass.constructor.call(this,config)},Ext.extend(MODx.util.MultiUploadDialog.FilesGrid,MODx.grid.LocalGrid,{removeFile:function(){var selected=this.getSelectionModel().getSelections();this.getStore().remove(selected)}}),Ext.reg("multiupload-grid-files",MODx.util.MultiUploadDialog.FilesGrid),MODx.util.MultiUploadDialog.Dialog=function(config){this.filesGridId=Ext.id(),config=config||{},Ext.applyIf(config,{permitted_extensions:permittedFileTypes,autoHeight:!0,width:600,closeAction:"hide",layout:"anchor",listeners:{show:{fn:this.onShow},hide:{fn:this.onHide}},items:[{xtype:"multiupload-grid-files",id:this.filesGridId,anchor:"100%"}],buttons:[{xtype:"multiupload-browse-btn",text:_("upload.buttons.choose"),cls:"primary-button",listeners:{click:{scope:this,fn:function(btn,files){files=FileAPI.getFiles(files);this.addFiles(files),btn.reset()}}}},{xtype:"splitbutton",text:_("upload.buttons.clear"),listeners:{click:{scope:this,fn:this.clearStore}},menu:new Ext.menu.Menu({items:[{text:_("upload.clear_list.all"),listeners:{click:{scope:this,fn:this.clearStore}}},{text:_("upload.clear_list.notpermitted"),listeners:{click:{scope:this,fn:this.clearNotPermittedItems}}}]})},{xtype:"button",text:_("upload.buttons.upload"),cls:"primary-button",listeners:{click:{scope:this,fn:this.startUpload}}},{xtype:"button",text:_("upload.buttons.close"),listeners:{click:{scope:this,fn:this.hideDialog}}}]}),MODx.util.MultiUploadDialog.Dialog.superclass.constructor.call(this,config)};var originalWindowOnShow=Ext.Window.prototype.onShow,originalWindowOnHide=Ext.Window.prototype.onHide;Ext.extend(MODx.util.MultiUploadDialog.Dialog,Ext.Window,{addFiles:function(files){var store=Ext.getCmp(this.filesGridId).getStore(),dialog=this;FileAPI.each(files,function(file){var permitted=!0,p="";api.isFileSizePermitted(file.size)||(p=_("upload.notpermitted.filesize",{size:api.humanFileSize(file.size),max:api.humanFileSize(maxFileSize)}),permitted=!1),api.isFileTypePermitted(file.name,dialog.permitted_extensions)||(p=_("upload.notpermitted.extension",{ext:api.getFileExtension(file.name)}),permitted=!1);p={name:file.name,size:api.humanFileSize(file.size),file:file,permitted:permitted,message:p,uploaded:!1},p=new store.recordType(p);store.insert(0,p)})},startUpload:function(){var dialog=this,files=[],params=Ext.apply(this.base_params,{HTTP_MODAUTH:MODx.siteId});Ext.getCmp(this.filesGridId).getStore().each(function(){var file=this.get("file");this.get("permitted")&&!this.get("uploaded")&&(file.record=this,files.push(file))});FileAPI.upload({url:this.url,data:params,files:{file:files},fileprogress:function(evt,file){file.record.progressbar.updateProgress(evt.loaded/evt.total,_("upload.upload_progress",{loaded:api.humanFileSize(evt.loaded),total:file.record.get("size")}),!0)},filecomplete:function(err,resp,file,options){err?401!==resp.status&&MODx.msg.alert(_("upload.msg.title.error"),err):(resp=Ext.util.JSON.decode(resp.response)).success?(file.record.set("uploaded",!0),file.record.set("message",_("upload.upload.success"))):(file.record.set("permitted",!1),file.record.set("message",resp.message))},complete:function(err,xhr){dialog.fireEvent("uploadsuccess")}})},removeEntry:function(record){Ext.getCmp(this.filesGridId).getStore().remove(record)},clearStore:function(){Ext.getCmp(this.filesGridId).getStore().removeAll()},clearNotPermittedItems:function(){var store=Ext.getCmp(this.filesGridId).getStore(),notPermitted=store.query("permitted",!1);store.remove(notPermitted.getRange())},hideDialog:function(){this.hide()},onDDrag:function(ev){ev&&ev.preventDefault()},onDDrop:function(ev){ev&&ev.preventDefault();var dialog=this;FileAPI.getDropFiles(ev.browserEvent,function(files){files.length&&dialog.addFiles(files)})},onShow:function(){var ret=originalWindowOnShow.apply(this,arguments);return Ext.getCmp(this.filesGridId).getStore().removeAll(),this.isDDSet||(this.el.on("dragenter",this.onDDrag,this),this.el.on("dragover",this.onDDrag,this),this.el.on("dragleave",this.onDDrag,this),this.el.on("drop",this.onDDrop,this),this.isDDSet=!0),ret},onHide:function(){var ret=originalWindowOnHide.apply(this,arguments);return this.el.un("dragenter",this.onDDrag,this),this.el.un("dragover",this.onDDrag,this),this.el.un("dragleave",this.onDDrag,this),this.el.un("drop",this.onDDrop,this),this.isDDSet=!1,ret},setBaseParams:function(params){this.base_params=params,this.setTitle(_("upload.title.destination_path",{path:this.base_params.path}))}}),Ext.reg("multiupload-window-dialog",MODx.util.MultiUploadDialog.Dialog)}(),Ext.namespace("MODx.tree"),MODx.tree.Tree=function(config){var tl,root;if(config=config||{},Ext.applyIf(config,{baseParams:{},action:"getNodes",loaderConfig:{}}),config.action&&(config.baseParams.action=config.action),config.loaderConfig.dataUrl=config.url,config.loaderConfig.baseParams=config.baseParams,Ext.applyIf(config.loaderConfig,{preloadChildren:!0,clearOnLoad:!0}),this.config=config,root=this.config.url?((tl=new MODx.tree.TreeLoader(config.loaderConfig)).on("beforeload",function(l,node){tl.dataUrl=this.config.url+"?action="+this.config.action+"&id="+node.attributes.id,node.attributes.type&&(tl.dataUrl+="&type="+node.attributes.type)},this),tl.on("load",this.onLoad,this),{nodeType:"async",text:config.root_name||config.rootName||"",qtip:config.root_qtip||config.rootQtip||"",draggable:!1,id:config.root_id||config.rootId||"root",pseudoroot:!0,attributes:{pseudoroot:!0},cls:"tree-pseudoroot-node",iconCls:config.root_iconCls||config.rootIconCls||""}):(tl=new Ext.tree.TreeLoader({preloadChildren:!0,baseAttrs:{uiProvider:MODx.tree.CheckboxNodeUI}}),new Ext.tree.TreeNode({text:this.config.rootName||"",draggable:!1,id:this.config.rootId||"root",children:this.config.data||[],pseudoroot:!0})),Ext.applyIf(config,{useArrows:!0,autoScroll:!0,animate:!0,enableDD:!0,enableDrop:!0,ddAppendOnly:!1,containerScroll:!0,collapsible:!0,border:!1,autoHeight:!0,rootVisible:!0,loader:tl,header:!1,hideBorders:!0,bodyBorder:!1,cls:"modx-tree",root:root,preventRender:!1,stateful:!0,menuConfig:{defaultAlign:"tl-b?",enableScrolling:!1,listeners:{show:function(){var node=this.activeNode;node&&node.ui.addClass("x-tree-selected")},hide:function(){var node=this.activeNode;node&&(node.isSelected()||node.ui&&node.ui.removeClass("x-tree-selected"))}}}}),!0!==config.remoteToolbar||void 0!==config.tbar&&null!==config.tbar){var tb=this.getToolbar();if(config.tbar&&config.useDefaultToolbar)for(var i=0;i"+node.attributes.text+"
    ",target:this}),node:node,handler:function(btn,evt){evt.stopPropagation(evt),node.getOwnerTree().handleDirectCreateClick(node)},iconCls:"icon-plus-circle",renderTo:elId,listeners:{mouseover:function(button,e){button.tooltip.onTargetOver(e)},mouseout:function(button,e){button.tooltip.onTargetOut(e)}}}))},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll();var h,handled=!1;Ext.isEmpty(node.attributes.treeHandler)&&(!node.isRoot||Ext.isEmpty(node.childNodes[0].attributes.treeHandler))||(h=Ext.getCmp((node.isRoot?node.childNodes[0]:node).attributes.treeHandler))&&(node.isRoot&&(node.attributes.type="root"),m=h.getMenu(this,node,e),handled=!0),handled||(this.getMenu?m=this.getMenu(node,e):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items)),m&&0s[i].length&&(f=!0):s.splice(i,1);f||s.push(p)}}else for(s=s.remove(p),i=0;i',id:"modx-iprops-container"}]}],modps:[]}),MODx.window.InsertElement.superclass.constructor.call(this,config),this.on("show",function(){this.center(),this.mask=new Ext.LoadMask(Ext.get("modx-iprops-container"),{msg:_("loading")}),this.mask.show()},this)},Ext.extend(MODx.window.InsertElement,MODx.Window,{changePropertySet:function(cb){var resourceId=Ext.getCmp("modx-iprops-fp");resourceId&&resourceId.destroy();resourceId=Ext.get("modx-resource-id"),resourceId=null!==resourceId?resourceId.getValue():0;Ext.getCmp("modx-dise-proplist").getUpdater().update({url:MODx.config.connector_url,params:{action:"Element/GetInsertProperties",classKey:this.config.record.classKey,pk:this.config.record.pk,resourceId:resourceId,propertySet:cb.getValue()},scripts:!0,callback:this.onPropFormLoad,scope:this}),this.modps=[],this.mask.show()},createStore:function(data){return new Ext.data.SimpleStore({fields:["v","d"],data:data})},onPropFormLoad:function(el,s,r){this.mask.hide();var vs=Ext.decode(r.responseText);if(!vs||vs.length<=0)return!1;for(var i=0;i]+)>)/gi,"")))),(isfolderFieldCmb=Ext.getCmp("modx-resource-menuindex"))&&void 0!==o.result.object.menuindex&&isfolderFieldCmb.setValue(o.result.object.menuindex),(isfolderFieldCmb=Ext.getCmp("modx-resource-isfolder"))&&"boolean"==typeof o.result.object.isfolder&&isfolderFieldCmb.setValue(o.result.object.isfolder))},_handleDrop:function(e){var dropNode=e.dropNode,targetParent=e.target;if(null!==targetParent.findChild("id",dropNode.attributes.id))return!1;if("modContext"==dropNode.attributes.type&&(1'+newTitle.f.findField("pagetitle").getValue()+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+Ext.util.Format.htmlEncode(w.record.pagetitle)+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target,function(){Ext.isSafari?w.setPosition(null,30):w.center()},this)},scope:this}}})},_getModContextMenu:function(m){var a=m.attributes,ui=m.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&m.push({text:_("edit_context"),handler:function(){var at=this.cm.activeNode.attributes;this.loadAction("a=context/update&key="+at.pk)}}),m.push({text:_("refresh_context"),handler:function(){this.refreshNode(this.cm.activeNode.id,!0)}}),ui.hasClass("pnewdoc")&&(m.push("-"),this._getCreateMenus(m,"0",ui)),ui.hasClass("pnew")&&m.push({text:_("duplicate_context"),handler:this.duplicateContext}),ui.hasClass("pdelete")&&(m.push("-"),m.push({text:_("remove_context"),handler:this.removeContext})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),m},overviewResource:function(){this.loadAction("a=resource/data")},quickUpdateResource:function(itm,e){this.quickUpdate(itm,e,itm.classKey)},editResource:function(){this.loadAction("a=resource/update")},_getModResourceMenu:function(m){var a=m.attributes,ui=m.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pview")&&m.push({text:_("resource_overview"),handler:this.overviewResource}),ui.hasClass("pedit")&&m.push({text:_("resource_edit"),handler:this.editResource}),ui.hasClass("pqupdate")&&m.push({text:_("quick_update_resource"),classKey:a.classKey,handler:this.quickUpdateResource}),ui.hasClass("pduplicate")&&m.push({text:_("resource_duplicate"),handler:this.duplicateResource}),m.push({text:_("resource_refresh"),handler:this.refreshResource,scope:this}),ui.hasClass("pnew")&&(m.push("-"),this._getCreateMenus(m,null,ui)),ui.hasClass("psave")&&(m.push("-"),ui.hasClass("ppublish")&&ui.hasClass("unpublished")?m.push({text:_("resource_publish"),handler:this.publishDocument}):ui.hasClass("punpublish")&&m.push({text:_("resource_unpublish"),handler:this.unpublishDocument}),ui.hasClass("pundelete")&&ui.hasClass("deleted")?m.push({text:_("resource_undelete"),handler:this.undeleteDocument}):ui.hasClass("pdelete")&&!ui.hasClass("deleted")&&m.push({text:_("resource_delete"),handler:this.deleteDocument})),ui.hasClass("x-tree-node-leaf")||(m.push("-"),m.push(this._getSortMenu())),ui.hasClass("pview")&&""!=a.preview_url&&(m.push("-"),m.push({text:_("resource_preview"),handler:this.preview})),m},refreshResource:function(){this.refreshNode(this.cm.activeNode.id)},createResourceHere:function(itm){var at=this.cm.activeNode.attributes,p=itm.usePk||at.pk;this.loadAction("a=resource/create&class_key="+itm.classKey+"&parent="+p+(at.ctx?"&context_key="+at.ctx:""))},createResource:function(itm,e){var at=this.cm.activeNode.attributes,p=itm.usePk||at.pk;this.quickCreate(itm,e,itm.classKey,at.ctx,p)},_getCreateMenus:function(m,pk,ui){var types=MODx.config.resource_classes,o=this.fireEvent("loadCreateMenus",types);Ext.isObject(o)&&Ext.apply(types,o);var k,coreTypes=["MODXRevolutionmodDocument","MODXRevolutionmodWebLink","MODXRevolutionmodSymLink","MODXRevolutionmodStaticResource"],ct=[],qct=[];for(k in types)-1!=coreTypes.indexOf(k)&&!ui.hasClass("pnew_"+k)||(ct.push({text:types[k].text_create_here,classKey:k,usePk:pk||!1,handler:this.createResourceHere,scope:this}),ui&&ui.hasClass("pqcreate")&&qct.push({text:types[k].text_create,classKey:k,handler:this.createResource,scope:this}));return m.push({text:_("create"),handler:function(){return!1},menu:{items:ct}}),ui&&ui.hasClass("pqcreate")&&m.push({text:_("quick_create"),handler:function(){return!1},menu:{items:qct}}),m},_handleDrag:function(dropEvent){var encNodes=Ext.encode(function simplifyNodes(node){for(var resultNode={},kids=node.childNodes,len=kids.length,i=0;i[[*pagetitle]]

    "+_("resource_pagetitle_help"),anchor:"100%",allowBlank:!1},{xtype:"textfield",name:"longtitle",id:"modx-"+this.ident+"-longtitle",fieldLabel:_("resource_longtitle"),description:"[[*longtitle]]
    "+_("resource_longtitle_help"),anchor:"100%"},{xtype:"textarea",name:"description",id:"modx-"+this.ident+"-description",fieldLabel:_("resource_description"),description:"[[*description]]
    "+_("resource_description_help"),anchor:"100%",grow:!1,height:50},{xtype:"textarea",name:"introtext",id:"modx-"+this.ident+"-introtext",fieldLabel:_("resource_summary"),description:"[[*introtext]]
    "+_("resource_summary_help"),anchor:"100%",height:50}]},{columnWidth:.4,border:!1,layout:"form",items:[{xtype:"modx-combo-template",name:"template",id:"modx-"+this.ident+"-template",fieldLabel:_("resource_template"),description:"[[*template]]
    "+_("resource_template_help"),editable:!1,anchor:"100%",baseParams:{action:"Element/Template/GetList",combo:"1",limit:0},value:MODx.config.default_template},{xtype:"textfield",name:"alias",id:"modx-"+this.ident+"-alias",fieldLabel:_("resource_alias"),description:"[[*alias]]
    "+_("resource_alias_help"),anchor:"100%"},{xtype:"textfield",name:"menutitle",id:"modx-"+this.ident+"-menutitle",fieldLabel:_("resource_menutitle"),description:"[[*menutitle]]
    "+_("resource_menutitle_help"),anchor:"100%"},{xtype:"textfield",fieldLabel:_("resource_link_attributes"),description:"[[*link_attributes]]
    "+_("resource_link_attributes_help"),name:"link_attributes",id:"modx-"+this.ident+"-attributes",maxLength:255,anchor:"100%"},{xtype:"xcheckbox",boxLabel:_("resource_hide_from_menus"),description:"[[*hidemenu]]
    "+_("resource_hide_from_menus_help"),hideLabel:!0,name:"hidemenu",id:"modx-"+this.ident+"-hidemenu",inputValue:1,checked:"1"==MODx.config.hidemenu_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_published"),description:"[[*published]]
    "+_("resource_published_help"),hideLabel:!0,name:"published",id:"modx-"+this.ident+"-published",inputValue:1,checked:"1"==MODx.config.publish_default?1:0},{xtype:"xcheckbox",boxLabel:_("deleted"),description:"[[*deleted]]
    "+_("resource_delete"),hideLabel:!0,name:"deleted",id:"modx-"+this.ident+"-deleted",inputValue:1,checked:"1"==MODx.config.deleted_default?1:0}]}]},MODx.getQRContentField(this.ident,config.record.class_key)]},{id:"modx-"+this.ident+"-settings",title:_("settings"),layout:"form",cls:"modx-panel",autoHeight:!0,forceLayout:!0,labelWidth:100,defaults:{autoHeight:!0,border:!1},items:MODx.getQRSettings(this.ident,config.record)}]}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateResource,MODx.Window),Ext.reg("modx-window-quick-create-modResource",MODx.window.QuickCreateResource),MODx.window.QuickUpdateResource=function(config){config=config||{},this.ident=config.ident||"qur"+Ext.id(),Ext.applyIf(config,{title:_("quick_update_resource"),id:this.ident,action:"Resource/Update",buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateResource.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateResource,MODx.window.QuickCreateResource),Ext.reg("modx-window-quick-update-modResource",MODx.window.QuickUpdateResource),MODx.getQRContentField=function(id,cls){id=id||"qur",cls=cls||"MODX\\Revolution\\modDocument";Ext.getBody().getViewSize();var o={};switch(cls){case"MODX\\Revolution\\modSymLink":o={xtype:"textfield",fieldLabel:_("symlink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255};break;case"MODX\\Revolution\\modWebLink":o={xtype:"textfield",fieldLabel:_("weblink"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:""};break;case"MODX\\Revolution\\modStaticResource":o={xtype:"modx-combo-browser",browserEl:"modx-browser",prependPath:!1,prependUrl:!1,fieldLabel:_("static_resource"),name:"content",id:"modx-"+id+"-content",anchor:"100%",maxLength:255,value:"",listeners:{select:{fn:function(data){"/"==data.url.substring(0,1)&&Ext.getCmp("modx-"+id+"-content").setValue(data.url.substring(1))},scope:this}}};break;case"MODX\\Revolution\\modResource":case"MODX\\Revolution\\modDocument":default:o={xtype:"textarea",name:"content",id:"modx-"+id+"-content",fieldLabel:_("content"),labelSeparator:"",anchor:"100%",style:"min-height: 200px",grow:!0}}return o},MODx.getQRSettings=function(id,va){return[{layout:"column",border:!1,anchor:"100%",defaults:{labelSeparator:"",labelAlign:"top",border:!1,layout:"form"},items:[{columnWidth:.5,items:[{xtype:"hidden",name:"parent",id:"modx-"+(id=id||"qur")+"-parent",value:va.parent},{xtype:"hidden",name:"context_key",id:"modx-"+id+"-context_key",value:va.context_key},{xtype:"hidden",name:"class_key",id:"modx-"+id+"-class_key",value:va.class_key},{xtype:"hidden",name:"publishedon",id:"modx-"+id+"-publishedon",value:va.publishedon},{xtype:"modx-field-parent-change",fieldLabel:_("resource_parent"),description:"[[*parent]]
    "+_("resource_parent_help"),name:"parent-cmb",id:"modx-"+id+"-parent-change",value:va.parent||0,anchor:"100%",parentcmp:"modx-"+id+"-parent",contextcmp:"modx-"+id+"-context_key",currentid:va.id},{xtype:"modx-combo-class-derivatives",fieldLabel:_("resource_type"),description:"[[*class_key]]
    ",name:"class_key",hiddenName:"class_key",id:"modx-"+id+"-class-key",anchor:"100%",value:null!=va.class_key?va.class_key:"MODX\\Revolution\\modDocument"},{xtype:"modx-combo-content-type",fieldLabel:_("resource_content_type"),description:"[[*content_type]]
    "+_("resource_content_type_help"),name:"content_type",hiddenName:"content_type",id:"modx-"+id+"-type",anchor:"100%",value:null!=va.content_type?va.content_type:MODx.config.default_content_type||1},{xtype:"modx-combo-content-disposition",fieldLabel:_("resource_contentdispo"),description:"[[*content_dispo]]
    "+_("resource_contentdispo_help"),name:"content_dispo",hiddenName:"content_dispo",id:"modx-"+id+"-dispo",anchor:"100%",value:null!=va.content_dispo?va.content_dispo:0},{xtype:"numberfield",fieldLabel:_("resource_menuindex"),description:"[[*menuindex]]
    "+_("resource_menuindex_help"),name:"menuindex",id:"modx-"+id+"-menuindex",width:75,value:va.menuindex||0}]},{columnWidth:.5,items:[{xtype:"xdatetime",fieldLabel:_("resource_publishedon"),description:"[[*publishedon]]
    "+_("resource_publishedon_help"),name:"publishedon",id:"modx-"+id+"-publishedon",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.publishedon},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_publishdate"),description:"[[*pub_date]]
    "+_("resource_publishdate_help"),name:"pub_date",id:"modx-"+id+"-pub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.pub_date},{xtype:va.canpublish?"xdatetime":"hidden",fieldLabel:_("resource_unpublishdate"),description:"[[*unpub_date]]
    "+_("resource_unpublishdate_help"),name:"unpub_date",id:"modx-"+id+"-unpub-date",allowBlank:!0,dateFormat:MODx.config.manager_date_format,timeFormat:MODx.config.manager_time_format,startDay:parseInt(MODx.config.manager_week_start),dateWidth:153,timeWidth:153,offset_time:MODx.config.server_offset_time,value:va.unpub_date},{xtype:"xcheckbox",boxLabel:_("resource_folder"),description:_("resource_folder_help"),hideLabel:!0,name:"isfolder",id:"modx-"+id+"-isfolder",inputValue:1,checked:null!=va.isfolder&&va.isfolder},{xtype:"xcheckbox",boxLabel:_("resource_show_in_tree"),description:_("resource_show_in_tree_help"),hideLabel:!0,name:"show_in_tree",id:"modx-"+id+"-show_in_tree",inputValue:1,checked:null!=va.show_in_tree?va.show_in_tree:1},{xtype:"xcheckbox",boxLabel:_("resource_hide_children_in_tree"),description:_("resource_hide_children_in_tree_help"),hideLabel:!0,name:"hide_children_in_tree",id:"modx-"+id+"-hide_children_in_tree",inputValue:1,checked:null!=va.hide_children_in_tree&&va.hide_children_in_tree},{xtype:"xcheckbox",boxLabel:_("resource_alias_visible"),description:_("resource_alias_visible_help"),hideLabel:!0,name:"alias_visible",id:"modx-"+id+"-alias-visible",inputValue:1,checked:null!=va.alias_visible?va.alias_visible:1},{xtype:"xcheckbox",boxLabel:_("resource_uri_override"),description:_("resource_uri_override_help"),hideLabel:!0,name:"uri_override",id:"modx-"+id+"-uri-override",value:1,checked:!!parseInt(va.uri_override),listeners:{check:{fn:MODx.handleFreezeUri}}},{xtype:"textfield",fieldLabel:_("resource_uri"),description:"[[*uri]]
    "+_("resource_uri_help"),name:"uri",id:"modx-"+id+"-uri",maxLength:255,anchor:"100%",value:va.uri||"",hidden:!va.uri_override},{xtype:"xcheckbox",boxLabel:_("resource_richtext"),description:_("resource_richtext_help"),hideLabel:!0,name:"richtext",id:"modx-"+id+"-richtext",inputValue:1,checked:void 0!==va.richtext?va.richtext?1:0:"1"==MODx.config.richtext_default?1:0},{xtype:"xcheckbox",boxLabel:_("resource_searchable"),description:_("resource_searchable_help"),hideLabel:!0,name:"searchable",id:"modx-"+id+"-searchable",inputValue:1,checked:void 0!==va.searchable?va.searchable?1:0:"1"==MODx.config.search_default?1:0,listeners:{check:{fn:MODx.handleQUCB}}},{xtype:"xcheckbox",boxLabel:_("resource_cacheable"),description:_("resource_cacheable_help"),hideLabel:!0,name:"cacheable",id:"modx-"+id+"-cacheable",inputValue:1,checked:void 0!==va.cacheable?va.cacheable?1:0:"1"==MODx.config.cache_default?1:0},{xtype:"xcheckbox",name:"clearCache",id:"modx-"+id+"-clearcache",boxLabel:_("resource_syncsite"),description:_("resource_syncsite_help"),hideLabel:!0,inputValue:1,checked:void 0!==va.clearCache?va.clearCache?1:0:"1"==MODx.config.syncsite_default?1:0}]}]}]},MODx.handleQUCB=function(cb){var h=Ext.getCmp(cb.id+"-hd");cb.checked&&h?(cb.setValue(1),h.setValue(1)):h&&(cb.setValue(0),h.setValue(0))},MODx.handleFreezeUri=function(cb){var uri=Ext.getCmp(cb.id.replace("-override",""));if(!uri)return!1;cb.checked?uri.show():uri.hide()},Ext.override(Ext.tree.AsyncTreeNode,{listeners:{click:{fn:function(){return console.log("Clicked me!",arguments),!1},scope:this}}}),MODx.tree.Element=function(config){config=config||{},Ext.applyIf(config,{rootVisible:!1,enableDD:!Ext.isEmpty(MODx.config.enable_dragdrop),ddGroup:"modx-treedrop-elements-dd",title:"",url:MODx.config.connector_url,action:"Element/GetNodes",sortAction:"Element/Sort",baseParams:{currentElement:MODx.request.id||0,currentAction:MODx.request.a||0}}),MODx.tree.Element.superclass.constructor.call(this,config),this.on("afterSort",this.afterSort)},Ext.extend(MODx.tree.Element,MODx.tree.Tree,{forms:{},windows:{},stores:{},getToolbar:function(){return[]},createCategory:function(n,e){var r={};this.cm.activeNode&&this.cm.activeNode.attributes.data&&(r.parent=this.cm.activeNode.attributes.data.id),MODx.load({xtype:"modx-window-category-create",record:r,listeners:{success:{fn:function(){var node=this.cm.activeNode?this.cm.activeNode.id:"n_category",self=-1!==node.indexOf("_category_");this.refreshNode(node,self)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameCategory:function(itm,e){var r=this.cm.activeNode.attributes.data;MODx.load({xtype:"modx-window-category-rename",record:r,listeners:{success:{fn:function(n){var c=n.a.result.object,n=this.cm.activeNode;n.setText(c.category+" ("+c.id+")"),Ext.get(n.getUI().getEl()).frame(),n.attributes.data.id=c.id,n.attributes.data.category=c.category},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeCategory:function(itm,e){var id=this.cm.activeNode.attributes.data.id;MODx.msg.confirm({title:_("warning"),text:_("category_confirm_delete"),url:MODx.config.connector_url,params:{action:"Element/Category/Remove",id:id},listeners:{success:{fn:function(){this.cm.activeNode.remove()},scope:this}}})},duplicateElement:function(itm,e,id,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:id},listeners:{success:{fn:function(results){var rec={id:id,type:type,name:_("duplicate_of",{name:this.cm.activeNode.attributes.name}),caption:_("duplicate_of",{name:this.cm.activeNode.attributes.caption}),category:results.object.category,source:results.object.source,static:results.object.static,static_file:results.object.static_file};MODx.load({xtype:"modx-window-element-duplicate",record:rec,redirect:!1,listeners:{success:{fn:function(response){response=Ext.decode(response.a.response.responseText);response.object.redirect?MODx.loadPage("element/"+rec.type+"/update","id="+response.object.id):this.refreshNode(this.cm.activeNode.id)},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},removeElement:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.msg.confirm({title:_("warning"),text:_("remove_this_confirm",{type:_(oar[0]),name:this.cm.activeNode.attributes.name}),url:MODx.config.connector_url,params:{action:"element/"+oar[0]+"/remove",id:oar[2]},listeners:{success:{fn:function(){this.cm.activeNode.remove(),MODx.request.a=="element/"+oar[0]+"/update"&&MODx.request.id==oar[2]&&MODx.loadPage("welcome")},scope:this}}})},activatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Element/Plugin/Activate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},deactivatePlugin:function(itm,e){var oar=this.cm.activeNode.id.substr(2).split("_");MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Element/Plugin/Deactivate",id:oar[2]},listeners:{success:{fn:function(){this.refreshParentNode()},scope:this}}})},quickCreate:function(itm,e,w){var r={category:this.cm.activeNode.attributes.pk||""},w=MODx.load({xtype:"modx-window-quick-create-"+w,record:r,listeners:{success:{fn:function(){this.refreshNode(this.cm.activeNode.id,!0)},scope:this},hide:{fn:function(){this.destroy()}}}});w.setValues(r),w.show(e.target)},quickUpdate:function(itm,e,type){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"element/"+type+"/get",id:this.cm.activeNode.attributes.pk},listeners:{success:{fn:function(r){var nameField="template"==type?"templatename":"name",w=MODx.load({xtype:"modx-window-quick-update-"+type,record:r.object,listeners:{success:{fn:function(newTitle){this.refreshNode(this.cm.activeNode.id);newTitle=''+newTitle.f.findField(nameField).getValue()+" ("+w.record.id+")";w.setTitle(w.title.replace(//,newTitle))},scope:this},hide:{fn:function(){this.destroy()}}}});w.title+=': '+w.record[nameField]+" ("+w.record.id+")",w.setValues(r.object),w.show(e.target)},scope:this}}})},_createElement:function(itm,e,t){var cat_id=this.cm.activeNode.id.substr(2).split("_"),a="type"==cat_id[0]?cat_id[1]:cat_id[0],cat_id="type"==cat_id[0]?0:"category"==cat_id[1]?cat_id[2]:cat_id[3],a="element/"+a+"/create";return this.redirect("?a="+a+"&category="+cat_id),this.cm.hide(),!1},afterSort:function(o){var dn,tn=o.event.target.attributes;"category"==tn.type&&(dn=o.event.dropNode.attributes,"n_category"!=tn.id&&"category"==dn.type?o.event.target.expand():(this.refreshNode(o.event.target.attributes.id,!0),this.refreshNode("n_type_"+o.event.dropNode.attributes.type,!0)))},_handleDrop:function(e){var target=e.target;return"above"!=e.point&&"below"!=e.point&&(("MODX\\Revolution\\modCategory"==target.attributes.classKey||"root"==target.attributes.classKey)&&(!!this.isCorrectType(e.dropNode,target)&&("category"==target.attributes.type&&"append"==e.point||0"+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pedit")&&(m.push({text:_("edit_"+a.type),type:a.type,pk:a.pk,handler:function(itm,e){MODx.loadPage("element/"+itm.type+"/update","id="+itm.pk)}}),m.push({text:_("quick_update_"+a.type),type:a.type,handler:function(itm,e){this.quickUpdate(itm,e,itm.type)}}),"MODX\\Revolution\\modPlugin"===a.classKey&&(a.active?m.push({text:_("plugin_deactivate"),type:a.type,handler:this.deactivatePlugin}):m.push({text:_("plugin_activate"),type:a.type,handler:this.activatePlugin}))),ui.hasClass("pnew")&&m.push({text:_("duplicate_"+a.type),pk:a.pk,type:a.type,handler:function(itm,e){this.duplicateElement(itm,e,itm.pk,itm.type)}}),ui.hasClass("pdelete")&&m.push({text:_("remove_"+a.type),handler:this.removeElement}),m.push("-"),ui.hasClass("pnew")&&m.push({text:_("add_to_category_"+a.type),handler:this._createElement}),ui.hasClass("pnewcat")&&m.push({text:_("new_category"),handler:this.createCategory}),m},_getCategoryMenu:function(n){var a=n.attributes,ui=n.getUI(),m=[];return m.push({text:""+a.text+"",handler:function(){return!1},header:!0}),m.push("-"),ui.hasClass("pnewcat")&&m.push({text:_("category_create"),handler:this.createCategory}),ui.hasClass("peditcat")&&m.push({text:_("category_rename"),handler:this.renameCategory}),2",{cls:"x-btn-icon icon-file_manager",tooltip:{text:_("modx_browser")},handler:this.loadFileManager,scope:this,hidden:!(MODx.perm.file_manager&&!MODx.browserOpen)}],tbarCfg:{id:config.id+"-tbar"}}),MODx.tree.Directory.superclass.constructor.call(this,config),this.addEvents({beforeUpload:!0,afterUpload:!0,afterQuickCreate:!0,afterRename:!0,afterRemove:!0,fileBrowserSelect:!0,changeSource:!0,afterSort:!0}),this.on("click",function(n,e){n.select(),this.cm.activeNode=n},this),this.on("render",function(){var el=Ext.get(this.config.id);el.createChild({tag:"div",id:this.config.id+"_tb"}),el.createChild({tag:"div",id:this.config.id+"_filter"}),this.addSourceToolbar()},this),this.on("show",function(){if(!this.config.hideSourceCombo)try{this.sourceCombo.show()}catch(e){}},this),this._init(),this.on("afterrender",this.showRefresh,this),this.on("afterSort",this._handleAfterDrop,this),this.on("click",function(e){null!=this.uploader&&this.uploader.setBaseParams({path:e.id})}),this.uploader=new MODx.util.MultiUploadDialog.Upload({url:MODx.config.connector_url,base_params:{action:"Browser/File/Upload",wctx:MODx.ctx||"",source:this.getSource()}}),this.uploader.on("beforeupload",this.beforeUpload,this),this.uploader.on("uploadsuccess",this.uploadSuccess,this),this.uploader.on("uploaderror",this.uploadError,this),this.uploader.on("uploadfailed",this.uploadFailed,this)},Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{windows:{},getRootMenu:function(node){var menu=[];return MODx.perm.directory_create&&menu.push({text:_("file_folder_create"),handler:this.createDirectory,scope:this}),MODx.perm.file_create&&menu.push({text:_("file_create"),handler:this.createFile,scope:this}),MODx.perm.file_upload&&menu.push({text:_("upload_files"),handler:this.uploadFiles,scope:this}),node.ownerTree.el.hasClass("pupdate")&&menu.push(["-",{text:_("update"),handler:function(){MODx.loadPage("source/update","id="+node.ownerTree.source)}}]),menu},_showContextMenu:function(node,e){var m;this.cm.activeNode=node,this.cm.removeAll(),node.isRoot?m=this.getRootMenu(node):node.attributes.menu&&node.attributes.menu.items&&(m=node.attributes.menu.items),m&&0]+)>)/gi,"")))),targetNode.reload(!0)},_handleDrag:function(dropEvent){var from=dropEvent.dropNode.attributes.id,to=dropEvent.target.attributes.id,orgSource="number"==typeof dropEvent.dropNode.attributes.sid?dropEvent.dropNode.attributes.sid:this.config.baseParams.source,destSource=(destSource="number"==typeof dropEvent.target.attributes.sid?dropEvent.target.attributes.sid:0)||dropEvent.tree.source;MODx.Ajax.request({url:this.config.url,params:{source:orgSource,from:from,destSource:destSource,to:to,action:this.config.sortAction||"Browser/Directory/Sort",point:dropEvent.point},listeners:{success:{fn:function(r){var el=dropEvent.dropNode.getUI().getTextEl();el&&Ext.get(el).frame(),this.fireEvent("afterSort",{event:dropEvent,result:r})},scope:this},failure:{fn:function(r){return MODx.form.Handler.errorJSON(r),this.refresh(),""!=r.message?MODx.msg.alert(_("error"),r.message):r.data&&r.data[0]&&MODx.msg.alert(r.data[0].id,r.data[0].msg),!1},scope:this}}})},getPath:function(node){var p,a,path="";if(null!=node&&null!=node)if(node!==this.root){for(p=node.parentNode,a=[node.text];p&&p!==this.root;)a.unshift(p.text),p=p.parentNode;a.unshift(this.root.attributes.path||""),path=a.join(this.pathSeparator)}else path=node.attributes.path||"";return(path=path.replace(/^[\/\.]*/,""))+"/"},editFile:function(itm,e){MODx.loadPage("system/file/edit","file="+this.cm.activeNode.attributes.id+"&source="+this.config.source)},openFile:function(itm,e){this.cm.activeNode.attributes.urlExternal&&window.open(this.cm.activeNode.attributes.urlExternal)},quickUpdateFile:function(itm,e){var node=this.cm.activeNode;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Browser/File/Get",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){r={file:node.attributes.id,name:node.text,path:node.attributes.pathRelative,source:this.getSource(),content:r.object.content};MODx.load({xtype:"modx-window-file-quick-update",record:r,listeners:{hide:{fn:function(){this.destroy()}}}}).show(e.target)},scope:this}}})},createFile:function(itm,e){var path=this.cm.activeNode,dir="";path&&path.attributes&&(path.isRoot||"dir"===path.attributes.type?dir=path.attributes.id:"file"===path.attributes.type&&(dir=(path=path.attributes.path).substr(0,path.lastIndexOf("/")+1))),MODx.loadPage("system/file/create","directory="+dir+"&source="+this.getSource())},quickCreateFile:function(itm,e){var r=this.cm.activeNode,r={directory:decodeURIComponent(r.attributes.id),source:this.getSource()};MODx.load({xtype:"modx-window-file-quick-create",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterQuickCreate"),this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},browser:null,loadFileManager:function(btn,e){var refresh=!1;null===this.browser?this.browser=MODx.load({xtype:"modx-browser",hideFiles:MODx.config.modx_browser_tree_hide_files,rootId:"/",wctx:MODx.ctx,source:this.config.baseParams.source,listeners:{select:{fn:function(data){this.fireEvent("fileBrowserSelect",data)},scope:this}}}):refresh=!0,this.browser&&(this.browser.setSource(this.config.baseParams.source),refresh&&this.browser.win.tree.refresh(),this.browser.show())},renameNode:function(field,nv,ov){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Browser/File/Rename",new_name:nv,old_name:ov,file:this.treeEditor.editNode.id,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshActiveNode()},scope:this}}})},renameDirectory:function(item,e){var r=this.cm.activeNode,r={old_name:r.text,name:r.text,path:r.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-directory-rename",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},renameFile:function(item,e){var r=this.cm.activeNode,r={old_name:r.text,name:r.text,path:r.attributes.pathRelative,source:this.getSource()};MODx.load({xtype:"modx-window-file-rename",record:r,listeners:{success:{fn:function(r){this.fireEvent("afterRename"),this.refreshParentNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},createDirectory:function(item,e){var r=!(!this.cm||!this.cm.activeNode)&&this.cm.activeNode,r={parent:r&&"dir"==r.attributes.type?r.attributes.pathRelative:"/",source:this.getSource()};MODx.load({xtype:"modx-window-directory-create",record:r,listeners:{success:{fn:function(){var parent=Ext.getCmp("folder-parent").getValue();this.cm.activeNode&&"constructor"===this.cm.activeNode.constructor.name||""===parent||"/"===parent?this.refresh():this.refreshActiveNode()},scope:this},hide:{fn:function(){this.destroy()}}}}).show(e?e.target:Ext.getBody())},setVisibility:function(item,e){var r=this.cm.activeNode,r={path:r.attributes.path,visibility:r.attributes.visibility,source:this.getSource()};MODx.load({xtype:"modx-window-set-visibility",record:r,listeners:{success:{fn:this.refreshParentNode,scope:this},hide:{fn:function(){this.destroy()}}}}).show(e.target)},removeDirectory:function(item,e){var node=this.cm.activeNode,directory=node.attributes.text;MODx.msg.confirm({text:_("file_folder_remove_confirm",{directory:directory}),url:MODx.config.connector_url,params:{action:"Browser/Directory/Remove",dir:node.attributes.path,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},removeFile:function(item,e){var filePath=this.cm.activeNode,fileName=filePath.attributes.text,filePath=filePath.attributes.pathRelative;MODx.msg.confirm({text:_("file_remove_confirm",{file:fileName}),url:MODx.config.connector_url,params:{action:"Browser/File/Remove",file:filePath,wctx:MODx.ctx||"",source:this.getSource()},listeners:{success:{fn:this._afterRemove,scope:this}}})},_afterRemove:function(){this.fireEvent("afterRemove"),this.refreshParentNode(),this.cm.activeNode=null},unpackFile:function(item,e){var node=this.cm.activeNode;MODx.msg.confirm({text:_("file_download_unzip")+" "+node.attributes.id,url:MODx.config.connectors_url,params:{action:"Browser/File/Unpack",file:node.attributes.id,wctx:MODx.ctx||"",source:this.getSource(),path:node.attributes.directory},listeners:{success:{fn:this.refreshParentNode,scope:this}}})},downloadFile:function(item,e){var node=this.cm.activeNode;location.href=MODx.config.connector_url+"?action=Browser/File/Download&download=1&file="+node.attributes.pathRelative+"&HTTP_MODAUTH="+MODx.siteId+"&source="+this.getSource()+"&wctx="+MODx.ctx},copyRelativePath:function(item,e){var node=this.cm.activeNode,dummyRelativePathInput=document.createElement("input");document.body.appendChild(dummyRelativePathInput),dummyRelativePathInput.setAttribute("value",node.attributes.pathRelative),dummyRelativePathInput.select(),document.execCommand("copy"),document.body.removeChild(dummyRelativePathInput)},getSource:function(){return this.config.baseParams.source},uploadFiles:function(){this.uploader.setBaseParams({source:this.getSource()}),this.uploader.browser=MODx.config.browserview,this.uploader.show()},uploadError:function(dlg,file,data,rec){},uploadFailed:function(dlg,file,rec){},uploadSuccess:function(){var node,pn;this.cm.activeNode?(node=this.cm.activeNode).isLeaf()?((pn=node.isLeaf()?node.parentNode:node)?pn.reload():node.id.match(/.*?\/$/)&&this.refreshActiveNode(),this.fireEvent("afterUpload",node)):this.refreshActiveNode():(this.refresh(),this.fireEvent("afterUpload"))},beforeUpload:function(){var path=this.config.openTo||this.config.rootId||"/";this.cm.activeNode&&(path=this.getPath(this.cm.activeNode),this.cm.activeNode.isLeaf()&&(path=this.getPath(this.cm.activeNode.parentNode))),this.uploader.setBaseParams({action:"Browser/File/Upload",path:path,wctx:MODx.ctx||"",source:this.getSource()}),this.fireEvent("beforeUpload",this.cm.activeNode)}}),Ext.reg("modx-tree-directory",MODx.tree.Directory),MODx.window.CreateDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_create"),url:MODx.config.connector_url,action:"Browser/Directory/Create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("file_folder_parent"),id:"folder-parent",name:"parent",xtype:"textfield",anchor:"100%"},{xtype:"label",forId:"folder-parent",html:_("file_folder_parent_desc"),cls:"desc-under"}]}),MODx.window.CreateDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.CreateDirectory,MODx.Window),Ext.reg("modx-window-directory-create",MODx.window.CreateDirectory),MODx.window.SetVisibility=function(config){config=config||{},Ext.applyIf(config,{title:_("file_folder_visibility"),url:MODx.config.connector_url,action:"Browser/Visibility",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{name:"path",fieldLabel:_("file_folder_path"),xtype:"statictextfield",anchor:"100%",submitValue:!0},{fieldLabel:_("file_folder_visibility_label"),name:"visibility",xtype:"modx-combo-visibility",anchor:"100%",allowBlank:!1},{hideLabel:!0,xtype:"displayfield",value:_("file_folder_visibility_desc"),anchor:"100%",allowBlank:!1}]}),MODx.window.SetVisibility.superclass.constructor.call(this,config)},Ext.extend(MODx.window.SetVisibility,MODx.Window),Ext.reg("modx-window-set-visibility",MODx.window.SetVisibility),MODx.window.RenameDirectory=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"Browser/Directory/Rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1}]}),MODx.window.RenameDirectory.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameDirectory,MODx.Window),Ext.reg("modx-window-directory-rename",MODx.window.RenameDirectory),MODx.window.RenameFile=function(config){config=config||{},Ext.applyIf(config,{title:_("rename"),url:MODx.config.connector_url,action:"Browser/File/Rename",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",submitValue:!0,anchor:"100%"},{fieldLabel:_("old_name"),name:"old_name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("new_name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{name:"dir",xtype:"hidden"}]}),MODx.window.RenameFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.RenameFile,MODx.Window),Ext.reg("modx-window-file-rename",MODx.window.RenameFile),MODx.window.QuickUpdateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_update"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"Browser/File/Update",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{xtype:"hidden",name:"file"},{fieldLabel:_("name"),name:"name",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("path"),name:"path",xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}],buttons:[{text:config.cancelBtnText||_("cancel"),scope:this,handler:function(){this.hide()}},{text:config.saveBtnText||_("save"),scope:this,handler:function(){this.submit(!1)}},{text:config.saveBtnText||_("save_and_close"),cls:"primary-button",scope:this,handler:this.submit}]}),MODx.window.QuickUpdateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickUpdateFile,MODx.Window),Ext.reg("modx-window-file-quick-update",MODx.window.QuickUpdateFile),MODx.window.QuickCreateFile=function(config){config=config||{},Ext.applyIf(config,{title:_("file_quick_create"),width:600,layout:"anchor",url:MODx.config.connector_url,action:"Browser/File/Create",fields:[{xtype:"hidden",name:"wctx",value:MODx.ctx||""},{xtype:"hidden",name:"source"},{fieldLabel:_("directory"),name:"directory",submitValue:!0,xtype:"statictextfield",anchor:"100%"},{fieldLabel:_("name"),name:"name",xtype:"textfield",anchor:"100%",allowBlank:!1},{fieldLabel:_("content"),xtype:"textarea",name:"content",anchor:"100%",height:200}],keys:[{key:Ext.EventObject.ENTER,shift:!0,fn:this.submit,scope:this}]}),MODx.window.QuickCreateFile.superclass.constructor.call(this,config)},Ext.extend(MODx.window.QuickCreateFile,MODx.Window),Ext.reg("modx-window-file-quick-create",MODx.window.QuickCreateFile),MODx.panel.FileTree=function(config){config=config||{},Ext.applyIf(config,{_treePrefix:"source-tree-",autoHeight:!0,defaults:{autoHeight:!0,border:!1}}),MODx.panel.FileTree.superclass.constructor.call(this,config),this.on("render",this.getSourceList,this)},Ext.extend(MODx.panel.FileTree,Ext.Container,{getSourceList:function(){MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Source/GetList",limit:0},listeners:{success:{fn:function(data){this.onSourceListReceived(data.results)},scope:this},failure:{fn:function(data){return 0"))},formatData:function(data){var size;return data.shortName=Ext.util.Format.ellipsis(data.name,18),data.sizeString=0!=data.size?(size=data.size)<1024?size+" "+_("file_size_bytes"):Math.round(10*size/1024)/10+" "+_("file_size_kilobytes"):0,data.imageSizeString=0!=data.preview?data.original_width+"x"+data.original_height+"px":0,data.imageSizeString="xpx"===data.imageSizeString?0:data.imageSizeString,data.dateString=Ext.isEmpty(data.lastmod)?0:new Date(data.lastmod).format(MODx.config.manager_date_format+" "+MODx.config.manager_time_format),this.lookup[data.name]=data},_initTemplates:function(){this.templates.thumb=new Ext.XTemplate('','
    ','','
    ',' {name}',"
    ","
    ",'','
    ',' \t
    .{ext}
    ',"
    ","
    "," {shortName}","
    ","
    "),this.templates.thumb.compile(),this.templates.list=new Ext.XTemplate('','
    ',' ',' {name}',' ',' {sizeString}'," ",' ',' {imageSizeString}'," "," ","
    ","
    "),this.templates.list.compile(),this.templates.details=new Ext.XTemplate('
    ',' ',' ','
    ",' {name}',"
    ","
    ",' ','
    ','
    .{ext}
    ',"
    ","
    ",'
    '," "+_("file_name")+":"," {name}",' '," "+_("file_size")+":"," {sizeString}"," ",' '," "+_("image_size")+":"," {imageSizeString}"," ",' '," "+_("file_last_modified")+":"," {dateString}"," ",' '," "+_("visibility")+":"," {visibility}"," ","
    ","
    ","
    "),this.templates.details.compile()},_showContextMenu:function(v,i,n,e){e.preventDefault(),this.select(n.id);var data=this.lookup[n.id],m=this.cm;if(m.removeAll(),data.menu){var menu=[];if(1",{xtype:"button",id:this.ident+"-cancel-btn",text:_("cancel"),minWidth:75,handler:this.onCancel,scope:this},{xtype:"button",id:this.ident+"-ok-btn",text:_("ok"),cls:"primary-button",minWidth:75,handler:this.onSelect,scope:this}]}]}),MODx.browser.RTE.superclass.constructor.call(this,config),this.config=config},Ext.extend(MODx.browser.RTE,Ext.Viewport,{returnEl:null,filter:function(){var filter=Ext.getCmp(this.ident+"filter");this.view.store.filter("name",filter.getValue(),!0),this.view.select(0)},load:function(dir){dir=dir||(Ext.isEmpty(this.config.openTo)?"":this.config.openTo),this.view.run({dir:dir,source:this.config.source,allowedFileTypes:this.config.allowedFileTypes||"",wctx:this.config.wctx||"web"}),this.sortStore()},sortStore:function(){var v=Ext.getCmp(this.ident+"sortSelect").getValue();this.view.store.sort(v,"name"==v?"ASC":"DESC"),this.view.select(0)},changeViewmode:function(){var v=Ext.getCmp(this.ident+"viewSelect").getValue();this.view.setTemplate(v),this.view.select(0)},reset:function(){this.rendered&&(Ext.getCmp(this.ident+"filter").reset(),this.view.getEl().dom.scrollTop=0),this.view.store.clearFilter(),this.view.select(0)},getToolbar:function(){return[{text:_("filter")+":",xtype:"label"},{xtype:"textfield",id:this.ident+"filter",selectOnFocus:!0,width:200,listeners:{render:{fn:function(){Ext.getCmp(this.ident+"filter").getEl().on("keyup",function(){this.filter()},this,{buffer:500})},scope:this}}},{text:_("sort_by")+":",xtype:"label"},{id:this.ident+"sortSelect",xtype:"combo",typeAhead:!0,triggerAction:"all",width:130,editable:!1,mode:"local",displayField:"desc",valueField:"name",lazyInit:!1,value:MODx.config.modx_browser_default_sort||"name",store:new Ext.data.SimpleStore({fields:["name","desc"],data:[["name",_("name")],["size",_("file_size")],["lastmod",_("last_modified")]]}),listeners:{select:{fn:this.sortStore,scope:this}}},"-",{text:_("files_viewmode")+":",xtype:"label"},"-",{id:this.ident+"viewSelect",xtype:"combo",typeAhead:!1,triggerAction:"all",width:100,editable:!1,mode:"local",displayField:"desc",valueField:"type",lazyInit:!1,value:MODx.config.modx_browser_default_viewmode||"grid",store:new Ext.data.SimpleStore({fields:["type","desc"],data:[["grid",_("files_viewmode_grid")],["list",_("files_viewmode_list")]]}),listeners:{select:{fn:this.changeViewmode,scope:this}}}]},getPathbar:function(){return{cls:"modx-browser-pathbbar",items:[{xtype:"textfield",id:this.ident+"-filepath",cls:"modx-browser-filepath",listeners:{focus:{fn:function(el){setTimeout(function(){var selRange,field=el.getEl().dom;field.createTextRange?((selRange=field.createTextRange()).collapse(!0),selRange.moveStart("character",0),selRange.moveEnd("character",field.value.length),selRange.select()):field.setSelectionRange?field.setSelectionRange(0,field.value.length):field.selectionStart&&(field.selectionStart=0,field.selectionEnd=field.value.length)},50)},scope:this}}}]}},setReturn:function(el){this.returnEl=el},onSelect:function(data){var selNode=this.view.getSelectedNodes()[0],callback=this.config.onSelect||this.onSelectHandler,lookup=this.view.lookup,scope=this.config.scope;callback&&(data=selNode?lookup[selNode.id]:null,Ext.callback(callback,scope||this,[data]),this.fireEvent("select",data),window.top.opener&&(window.top.close(),window.top.opener.focus()))},onCancel:function(){var callback=this.config.onSelect||this.onSelectHandler,scope=this.config.scope;Ext.callback(callback,scope||this,[null]),this.fireEvent("select",null),window.top.opener&&(window.top.close(),window.top.opener.focus())},onSelectHandler:function(data){Ext.get(this.returnEl).dom.value=unescape(data.url)}}),Ext.reg("modx-browser-rte",MODx.browser.RTE),Ext.apply(Ext,{isFirebug:window.console&&window.console.firebug}),MODx.Layout=function(config){config=config||{},Ext.BLANK_IMAGE_URL=MODx.config.manager_url+"assets/ext3/resources/images/default/s.gif",Ext.Ajax.defaultHeaders={modAuth:config.auth},Ext.Ajax.extraParams={HTTP_MODAUTH:config.auth},MODx.siteId=config.auth,MODx.expandHelp=!!+MODx.config.inline_help;var sp=new MODx.HttpProvider;Ext.state.Manager.setProvider(sp),sp.initState(MODx.defaultState),config.showTree=!1,config.search&&new MODx.SearchBar,Ext.applyIf(config,{layout:"border",id:"modx-layout",stateSave:!0,items:this.buildLayout(config)}),MODx.Layout.superclass.constructor.call(this,config),this.config=config,this.addEvents({afterLayout:!0,loadKeyMap:!0,loadTabs:!0}),this.loadKeys(),config.showTree||Ext.getCmp("modx-leftbar-tabs").collapse(!1),this.fireEvent("afterLayout")},Ext.extend(MODx.Layout,Ext.Viewport,{buildLayout:function(east){var items=[],north=this.getNorth(east),west=this.getWest(east),center=this.getCenter(east),south=this.getSouth(east),east=this.getEast(east);return north&&Ext.isObject(north)&&items.push(north),west&&Ext.isObject(west)&&items.push(west),center&&Ext.isObject(center)&&items.push(center),south&&Ext.isObject(south)&&items.push(south),east&&Ext.isObject(east)&&items.push(east),items},getNorth:function(config){return window.innerWidth<=640&&{xtype:"box",region:"north",applyTo:"modx-header",listeners:{afterrender:this.initPopper,scope:this}}},getWest:function(config){return window.innerWidth<=640?this.getTree(config):{region:"west",xtype:"box",id:"modx-header",applyTo:"modx-header",autoScroll:!0,width:70,listeners:{afterrender:this.initPopper,scope:this}}},getCenter:function(tree){var center={region:"center",applyTo:"modx-content",padding:"0 1px 0 0",style:"width:100%",bodyStyle:"background-color:transparent;",id:"modx-content",autoScroll:!0};if(window.innerWidth<=640)return center;tree=this.getTree(tree);return center.margins={right:-70,left:-8},tree.margins={left:70},{region:"center",layout:"border",id:"modx-split-wrapper",items:[tree,center]}},getSouth:function(config){},getEast:function(config){},getTree:function(config){var tabs=[];MODx.perm.resource_tree&&(tabs.push({title:_("resources"),xtype:"modx-tree-resource",id:"modx-resource-tree"}),config.showTree=!0),MODx.perm.element_tree&&(tabs.push({title:_("elements"),xtype:"modx-tree-element",id:"modx-tree-element"}),config.showTree=!0),MODx.perm.file_tree&&(tabs.push({title:_("files"),xtype:"modx-panel-filetree",id:"modx-file-tree"}),config.showTree=!0);return{region:"west",applyTo:"modx-leftbar",id:"modx-leftbar-tabs",split:!0,width:300,minSize:280,autoScroll:!0,unstyled:!0,useSplitTips:!0,monitorResize:!0,layout:"anchor",headerCfg:window.innerWidth<=640?{}:{tag:"div",cls:"none",id:"modx-leftbar-header",html:MODx.config.site_name},items:[{xtype:"modx-tabs",plain:!0,defaults:{autoScroll:!0,fitToFrame:!0},id:"modx-leftbar-tabpanel",border:!1,anchor:"100%",activeTab:0,stateful:!0,stateEvents:["tabchange"],getState:function(){return{activeTab:this.items.indexOf(this.getActiveTab())}},items:tabs,listeners:{afterrender:function(){var tabs=this;MODx.Ajax.request({url:MODx.config.connector_url,params:{action:"Resource/GetToolbar"},listeners:{success:{fn:function(res){for(var i in res.object)if(res.object.hasOwnProperty(i)&&null!=res.object[i].id&&"emptifier"==res.object[i].id){var tab=tabs.add({id:"modx-trash-link",title:'',handler:res.object[i].handler});res.object[i].disabled||tab.tabEl.classList.add("active"),res.object[i].tooltip&&(tab.tooltip=new Ext.ToolTip({target:new Ext.Element(tab.tabEl),title:res.object[i].tooltip}));break}},scope:this}}});var html,el,header=Ext.get("modx-leftbar-header");header&&((html="")!==MODx.config.manager_logo&&void 0!==MODx.config.manager_logo&&(html+=''),(el=document.createElement("a")).href=MODx.config.default_site_url||MODx.config.site_url,el.title=MODx.config.site_name,el.innerText=Ext.util.Format.ellipsis(MODx.config.site_name,45,!0),el.target="_blank",html+=el.outerHTML,header.dom.innerHTML=html)},beforetabchange:{fn:function(panel,tree){if(tree&&"modx-trash-link"==tree.id)return!tree.tabEl.classList.contains("active")||(tree=Ext.getCmp("modx-resource-tree"))&&tree.redirect("?a=resource/trash"),!1},scope:this}}}],getState:function(){return{collapsed:this.collapsed,width:this.width}},collapse:function(animate){if(!this.collapsed&&!this.el.hasFxBlock()&&!1!==this.fireEvent("beforecollapse",this,animate))return animate&&960: ' + this.errors[i] + '
    '; + errors += this.errors[i] + '
    '; } } if (errors != '') { diff --git a/manager/assets/modext/util/utilities.js b/manager/assets/modext/util/utilities.js index 8ad34b9a919..c4e1c90342a 100644 --- a/manager/assets/modext/util/utilities.js +++ b/manager/assets/modext/util/utilities.js @@ -418,35 +418,6 @@ Ext.applyIf(Ext.form.Field,{ } }); -/* allow copying to clipboard */ -MODx.util.Clipboard = function() { - return { - escape: function(text){ - text = encodeURIComponent(text); - return text.replace(/%0A/g, "%0D%0A"); - } - - ,copy: function(text){ - if (Ext.isIE) { - window.clipboardData.setData("Text", text); - } else { - var flashcopier = 'flashcopier'; - if (!document.getElementById(flashcopier)) { - var divholder = document.createElement('div'); - divholder.id = flashcopier; - document.body.appendChild(divholder); - } - document.getElementById(flashcopier).innerHTML = ''; - var divinfo = ''; - document.getElementById(flashcopier).innerHTML = divinfo; - } - } - }; -}(); - MODx.util.Format = { dateFromTimestamp: function(timestamp, date, time, defaultValue) { if (date === undefined) date = true; diff --git a/manager/assets/modext/widgets/core/modx.combo.js b/manager/assets/modext/widgets/core/modx.combo.js index a89aa052e70..4a7e661a010 100644 --- a/manager/assets/modext/widgets/core/modx.combo.js +++ b/manager/assets/modext/widgets/core/modx.combo.js @@ -81,10 +81,13 @@ MODx.combo.ComboBox = function(config,getStore) { ,remoteSort: config.remoteSort || false ,autoDestroy: true ,listeners: { - 'loadexception': {fn: function(o,trans,resp) { - var status = _('code') + ': ' + resp.status + ' ' + resp.statusText + '
    '; - MODx.msg.alert(_('error'), status + resp.responseText); - }} + loadexception: { + fn: function (o, trans, resp) { + var status = _('code') + ': ' + resp.status + ' ' + resp.statusText; + var response = Ext.decode(resp.responseText || '[]'); + MODx.msg.alert(_('error'), (response.message || status)); + } + } } }) }); @@ -105,6 +108,11 @@ MODx.combo.ComboBox = function(config,getStore) { // Workaround to let the combobox know the store is loaded (to help hide/display the pagination if required) this.fireEvent('loaded', this); this.loaded = true; + // Show the pagination panel if it didn't show up earlier + if (this.isExpanded() && this.pageSize < this.store.getTotalCount() && this.pageTb.hidden === true) { + this.collapse(); + this.expand(); + } }, this, { single: true }); @@ -134,6 +142,7 @@ Ext.extend(MODx.combo.ComboBox,Ext.form.ComboBox, { } if(this.pageSize < this.store.getTotalCount()){ this.assetHeight += this.footer.getHeight(); + this.pageTb.show(); } else { this.list.setHeight(this.list.getHeight() - this.footer.getHeight()); this.pageTb.hide(); @@ -556,26 +565,6 @@ MODx.combo.ContentDisposition = function(config) { Ext.extend(MODx.combo.ContentDisposition,MODx.combo.ComboBox); Ext.reg('modx-combo-content-disposition',MODx.combo.ContentDisposition); -MODx.combo.ClassMap = function(config) { - config = config || {}; - Ext.applyIf(config,{ - name: 'class' - ,hiddenName: 'class' - ,url: MODx.config.connector_url - ,baseParams: { - action: 'System/ClassMap/GetList' - } - ,displayField: 'class' - ,valueField: 'class' - ,fields: ['class'] - ,editable: false - ,pageSize: 20 - }); - MODx.combo.ClassMap.superclass.constructor.call(this,config); -}; -Ext.extend(MODx.combo.ClassMap,MODx.combo.ComboBox); -Ext.reg('modx-combo-class-map',MODx.combo.ClassMap); - MODx.combo.ClassDerivatives = function(config) { config = config || {}; Ext.applyIf(config,{ @@ -710,6 +699,7 @@ MODx.combo.Country = function(config) { ,url: MODx.config.connector_url ,baseParams: { action: 'System/Country/GetList' + ,combo: 1 } ,displayField: 'country' ,valueField: 'iso' @@ -719,7 +709,6 @@ MODx.combo.Country = function(config) { 'value' // Deprecated (available for BC) ] ,editable: true - ,value: 0 ,typeAhead: true }); MODx.combo.Country.superclass.constructor.call(this,config); diff --git a/manager/assets/modext/widgets/core/modx.grid.js b/manager/assets/modext/widgets/core/modx.grid.js index 6e6a3a98ab7..fc5e610fdab 100644 --- a/manager/assets/modext/widgets/core/modx.grid.js +++ b/manager/assets/modext/widgets/core/modx.grid.js @@ -117,6 +117,7 @@ MODx.grid.Grid = function(config) { config.columns.push({ width: config.actionsColumnWidth || defaultActionsColumnWidth + ,menuDisabled: true ,renderer: this.actionsColumnRenderer.bind(this) }); } @@ -130,6 +131,7 @@ MODx.grid.Grid = function(config) { config.cm.columns.push({ width: config.actionsColumnWidth || defaultActionsColumnWidth + ,menuDisabled: true ,renderer: this.actionsColumnRenderer.bind(this) }); } @@ -806,6 +808,7 @@ MODx.grid.LocalGrid = function(config) { if (config.showActionsColumn && config.columns && Array.isArray(config.columns)) { config.columns.push({ width: config.actionsColumnWidth || 50 + ,menuDisabled: true ,renderer: { fn: this.actionsColumnRenderer, scope: this @@ -1526,14 +1529,27 @@ MODx.grid.JsonGrid = function (config) { header: el.header || _(el.name), dataIndex: el.name, editable: true, + menuDisabled: true, hidden: el.hidden || false, editor: { xtype: el.xtype || 'textfield', allowBlank: el.allowBlank || true, + enableKeyEvents: true, + fieldname: el.name, listeners: { change: { fn: this.saveValue, scope: this + }, + keyup: { + fn: function (sb) { + var record = this.getSelectionModel().getSelected(); + if (record) { + record.set(sb.fieldname, sb.el.dom.value); + this.saveValue(); + } + }, + scope: this } } }, @@ -1671,6 +1687,43 @@ Ext.extend(MODx.grid.JsonGrid, MODx.grid.LocalGrid, { value.push(row); }, this); this.hiddenField.setValue(Ext.util.JSON.encode(value)); + }, + _getActionsColumnTpl: function () { + return new Ext.XTemplate('' + + '' + + '
      ' + + '' + + '
    • ' + + '
      ' + + '
    ' + + '
    ' + + '
    ', { + compiled: true + }); + }, + actionsColumnRenderer: function (value, metaData, record, rowIndex, colIndex, store) { + return this._getActionsColumnTpl().apply({ + actions: this.getActions() + }); + }, + onClick: function (e) { + var target = e.getTarget(); + if (!target.classList.contains('x-grid-action')) return; + if (!target.dataset.action) return; + + var actionHandler = 'action' + target.dataset.action.charAt(0).toUpperCase() + target.dataset.action.slice(1); + if (!this[actionHandler] || (typeof this[actionHandler] !== 'function')) { + actionHandler = target.dataset.action; + if (!this[actionHandler] || (typeof this[actionHandler] !== 'function')) { + return; + } + } + + var record = this.getSelectionModel().getSelected(); + var recordIndex = this.store.indexOf(record); + this.menu.record = record.data; + + this[actionHandler](record, recordIndex, e); } }); Ext.reg('grid-json', MODx.grid.JsonGrid); diff --git a/manager/assets/modext/widgets/core/modx.grid.settings.js b/manager/assets/modext/widgets/core/modx.grid.settings.js index e398e115f4c..54c1bd77181 100644 --- a/manager/assets/modext/widgets/core/modx.grid.settings.js +++ b/manager/assets/modext/widgets/core/modx.grid.settings.js @@ -16,7 +16,7 @@ MODx.grid.SettingsGrid = function(config) { if (!config.tbar) { config.tbar = [{ - text: _('setting_create') + text: _('create') ,scope: this ,cls:'primary-button' ,handler: { @@ -256,10 +256,10 @@ Ext.extend(MODx.grid.SettingsGrid,MODx.grid.Grid,{ m = this.menu.record.menu; } else { m.push({ - text: _('setting_update') + text: _('edit') ,handler: this.updateSetting },'-',{ - text: _('setting_remove') + text: _('delete') ,handler: this.removeSetting }); } @@ -435,7 +435,7 @@ MODx.window.CreateSetting = function(config) { config = config || {}; config.keyField = config.keyField || {}; Ext.applyIf(config,{ - title: _('setting_create') + title: _('create') ,width: 600 ,url: config.url ,action: 'System/Settings/Create' @@ -601,7 +601,7 @@ MODx.window.UpdateSetting = function(config) { config = config || {}; this.ident = config.ident || 'modx-uss-'+Ext.id(); Ext.applyIf(config,{ - title: _('setting_update') + title: _('edit') ,width: 600 ,url: config.grid.config.url ,action: 'System/Settings/Update' diff --git a/manager/assets/modext/widgets/core/modx.orm.js b/manager/assets/modext/widgets/core/modx.orm.js index dc700b94778..c572fc324da 100644 --- a/manager/assets/modext/widgets/core/modx.orm.js +++ b/manager/assets/modext/widgets/core/modx.orm.js @@ -143,7 +143,7 @@ Ext.extend(MODx.orm.Tree,Ext.tree.TreePanel,{ } var n = new Ext.tree.TreeNode({ - text: r.name + text: Ext.util.Format.htmlEncode(r.name) ,id: r.name ,name: r.name ,expanded: true @@ -188,6 +188,11 @@ Ext.extend(MODx.orm.Tree,Ext.tree.TreePanel,{ this.windows.renameContainer.setValues(r); this.windows.renameContainer.show(e.target); } + + ,renderItemText: function(item) { + return item.text; + } + ,addAttribute: function(btn,e,node) { var r = {}; if (node) { r.parent = node.id; } @@ -204,7 +209,7 @@ Ext.extend(MODx.orm.Tree,Ext.tree.TreePanel,{ } var n = new Ext.tree.TreeNode({ - text: r.name+' - '+r.value+'' + text: Ext.util.Format.htmlEncode(r.name) + ' - ' + Ext.util.Format.htmlEncode(r.value) + '' ,id: r.id ,name: r.name ,leaf: true diff --git a/manager/assets/modext/widgets/core/modx.searchbar.js b/manager/assets/modext/widgets/core/modx.searchbar.js index dc01db22541..4c3e144323c 100644 --- a/manager/assets/modext/widgets/core/modx.searchbar.js +++ b/manager/assets/modext/widgets/core/modx.searchbar.js @@ -58,13 +58,13 @@ MODx.SearchBar = function(config) { if (values.class) { switch (values.class) { - case 'modDocument': + case 'MODX\\Revolution\\modDocument': return 'file'; - case 'modSymLink': + case 'MODX\\Revolution\\modSymLink': return 'files-o'; - case 'modWebLink': + case 'MODX\\Revolution\\modWebLink': return 'link'; - case 'modStaticResource': + case 'MODX\\Revolution\\modStaticResource': return 'file-text-o'; default: break; diff --git a/manager/assets/modext/widgets/core/tree/modx.tree.js b/manager/assets/modext/widgets/core/tree/modx.tree.js old mode 100755 new mode 100644 diff --git a/manager/assets/modext/widgets/element/modx.grid.plugin.event.js b/manager/assets/modext/widgets/element/modx.grid.plugin.event.js index 5a4466a6735..14fa88d2820 100644 --- a/manager/assets/modext/widgets/element/modx.grid.plugin.event.js +++ b/manager/assets/modext/widgets/element/modx.grid.plugin.event.js @@ -64,7 +64,7 @@ MODx.grid.PluginEvent = function(config) { action: 'Element/PropertySet/GetList' ,showAssociated: true ,elementId: config.plugin - ,elementType: 'modPlugin' + ,elementType: 'MODX\\Revolution\\modPlugin' } } ,sortable: true @@ -166,7 +166,7 @@ MODx.window.UpdatePluginEvent = function(config) { config = config || {}; this.ident = config.ident || 'upluge'+Ext.id(); Ext.applyIf(config,{ - title: _('plugin_event_update') + title: _('edit') ,id: 'modx-window-plugin-event-update' ,url: MODx.config.connector_url ,action: 'Element/Plugin/Event/Associate' @@ -260,7 +260,7 @@ MODx.grid.PluginEventAssoc = function(config) { action: 'Element/PropertySet/GetList' ,showAssociated: true ,elementId: config.plugin - ,elementType: 'modPlugin' + ,elementType: 'MODX\\Revolution\\modPlugin' } } },{ @@ -325,7 +325,7 @@ MODx.window.AddPluginToEvent = function(config) { config = config || {}; this.ident = config.ident || 'apluge'+Ext.id(); Ext.applyIf(config,{ - title: _('plugin_add_to_event') + title: _('plugin_add') ,id: this.ident ,url: MODx.config.connector_url ,action: 'element/plugin/event/addplugin' diff --git a/manager/assets/modext/widgets/element/modx.grid.template.tv.js b/manager/assets/modext/widgets/element/modx.grid.template.tv.js index e4b96c9db66..8867208ecb1 100644 --- a/manager/assets/modext/widgets/element/modx.grid.template.tv.js +++ b/manager/assets/modext/widgets/element/modx.grid.template.tv.js @@ -127,7 +127,7 @@ Ext.extend(MODx.grid.TemplateTV,MODx.grid.Grid,{ if (p.indexOf('pedit') != -1) { m.push({ - text: _('edit_tv') + text: _('edit') ,handler: this.updateTV }); } diff --git a/manager/assets/modext/widgets/element/modx.panel.chunk.js b/manager/assets/modext/widgets/element/modx.panel.chunk.js index debaccd2e6c..3dafdfa0e6b 100644 --- a/manager/assets/modext/widgets/element/modx.panel.chunk.js +++ b/manager/assets/modext/widgets/element/modx.panel.chunk.js @@ -63,7 +63,7 @@ MODx.panel.Chunk = function(config) { ,name: 'name' ,id: 'modx-chunk-name' ,anchor: '100%' - ,maxLength: 255 + ,maxLength: 50 ,enableKeyEvents: true ,allowBlank: false ,value: config.record.name diff --git a/manager/assets/modext/widgets/element/modx.panel.plugin.js b/manager/assets/modext/widgets/element/modx.panel.plugin.js index 60dddbaacf0..dbd790fd983 100644 --- a/manager/assets/modext/widgets/element/modx.panel.plugin.js +++ b/manager/assets/modext/widgets/element/modx.panel.plugin.js @@ -17,7 +17,7 @@ MODx.panel.Plugin = function(config) { } ,id: 'modx-panel-plugin' ,cls: 'container form-with-labels' - ,class_key: 'modPlugin' + ,class_key: 'MODX\\Revolution\\modPlugin' ,plugin: '' ,bodyStyle: '' ,allowDrop: false @@ -65,7 +65,7 @@ MODx.panel.Plugin = function(config) { ,name: 'name' ,id: 'modx-plugin-name' ,anchor: '100%' - ,maxLength: 255 + ,maxLength: 50 ,enableKeyEvents: true ,allowBlank: false ,value: config.record.name @@ -292,7 +292,7 @@ MODx.panel.Plugin = function(config) { xtype: 'modx-panel-element-properties' ,elementPanel: 'modx-panel-plugin' ,elementId: config.plugin - ,elementType: 'modPlugin' + ,elementType: 'MODX\\Revolution\\modPlugin' ,record: config.record }],{ id: 'modx-plugin-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.property.set.js b/manager/assets/modext/widgets/element/modx.panel.property.set.js index 6fce33b5b46..f51af014cf9 100644 --- a/manager/assets/modext/widgets/element/modx.panel.property.set.js +++ b/manager/assets/modext/widgets/element/modx.panel.property.set.js @@ -8,7 +8,7 @@ MODx.panel.PropertySet = function(config) { config = config || {}; Ext.applyIf(config,{ id: 'modx-panel-property-sets' - ,cls: 'container' + ,cls: 'container' ,items: [{ html: _('propertysets') ,xtype: 'modx-header' @@ -24,7 +24,7 @@ MODx.panel.PropertySet = function(config) { },{ layout: 'column' ,border: false - ,cls: 'main-wrapper' + ,cls: 'main-wrapper' ,items: [{ columnWidth: .3 ,cls: 'left-col' @@ -97,6 +97,7 @@ MODx.grid.PropertySetProperties = function(config) { ,scope: this }] }); + Ext.getCmp('right-column').disable(); MODx.grid.PropertySetProperties.superclass.constructor.call(this,config); }; Ext.extend(MODx.grid.PropertySetProperties,MODx.grid.ElementProperties); @@ -111,11 +112,13 @@ Ext.reg('modx-grid-property-set-properties',MODx.grid.PropertySetProperties); MODx.tree.PropertySets = function(config) { config = config || {}; Ext.applyIf(config,{ - rootVisible: false - ,enableDD: false - ,title: '' + title: _('propertysets') ,url: MODx.config.connector_url ,action: 'Element/PropertySet/GetNodes' + ,rootIconCls: 'icon-sitemap' + ,root_name: _('propertysets') + ,rootVisible: false + ,enableDD: false ,tbar: ['->', { text: _('propertyset_new') ,cls: 'primary-button' @@ -129,6 +132,7 @@ MODx.tree.PropertySets = function(config) { }; Ext.extend(MODx.tree.PropertySets,MODx.tree.Tree,{ loadGrid: function(n,e) { + Ext.getCmp('right-column').enable(); var ar = n.id.split('_'); if (ar[0] == 'ps') { MODx.Ajax.request({ @@ -215,6 +219,7 @@ Ext.extend(MODx.tree.PropertySets,MODx.tree.Tree,{ this.winDupeSet.setValues(r); this.winDupeSet.show(e.target); } + ,updateSet: function(btn,e) { var id = this.cm.activeNode.id.split('_'); var r = this.cm.activeNode.attributes.data; @@ -234,6 +239,7 @@ Ext.extend(MODx.tree.PropertySets,MODx.tree.Tree,{ this.winUpdateSet.setValues(r); this.winUpdateSet.show(e.target); } + ,removeSet: function(btn,e) { var id = this.cm.activeNode.id.split('_'); id = id[1]; @@ -255,6 +261,7 @@ Ext.extend(MODx.tree.PropertySets,MODx.tree.Tree,{ } }); } + ,addElement: function(btn,e) { var id = this.cm.activeNode.id.split('_'); id = id[1]; var t = this.cm.activeNode.text; @@ -276,6 +283,7 @@ Ext.extend(MODx.tree.PropertySets,MODx.tree.Tree,{ this.winPSEA.fp.getForm().setValues(r); this.winPSEA.show(e.target); } + ,removeElement: function(btn,e) { var d = this.cm.activeNode.attributes; MODx.msg.confirm({ @@ -349,14 +357,13 @@ Ext.extend(MODx.window.AddElementToPropertySet,MODx.Window,{ } ,onElementSelect: function(cb) { var ec = Ext.getCmp('modx-combo-element-class'); - if (ec.getValue() == '') { - ec.setValue('modSnippet'); + if (ec.getValue() === '') { + ec.setValue('MODX\\Revolution\\modSnippet'); } } }); Ext.reg('modx-window-propertyset-element-add',MODx.window.AddElementToPropertySet); - /** * @class MODx.combo.ElementClass * @extends MODx.combo.ComboBox @@ -402,7 +409,7 @@ MODx.combo.Elements = function(config) { ,url: MODx.config.connector_url ,baseParams: { action: 'Element/GetListByClass' - ,element_class: 'modSnippet' + ,element_class: 'MODX\\Revolution\\modSnippet' } }); MODx.combo.Elements.superclass.constructor.call(this,config); @@ -456,7 +463,6 @@ MODx.window.CreatePropertySet = function(config) { Ext.extend(MODx.window.CreatePropertySet,MODx.Window); Ext.reg('modx-window-property-set-create',MODx.window.CreatePropertySet); - /** * @class MODx.window.UpdatePropertySet * @extends MODx.Window @@ -477,8 +483,6 @@ MODx.window.UpdatePropertySet = function(config) { Ext.extend(MODx.window.UpdatePropertySet,MODx.window.CreatePropertySet); Ext.reg('modx-window-property-set-update',MODx.window.UpdatePropertySet); - - /** * @class MODx.window.DuplicatePropertySet * @extends MODx.Window diff --git a/manager/assets/modext/widgets/element/modx.panel.snippet.js b/manager/assets/modext/widgets/element/modx.panel.snippet.js index 2c7854bc413..a9cd77323c1 100644 --- a/manager/assets/modext/widgets/element/modx.panel.snippet.js +++ b/manager/assets/modext/widgets/element/modx.panel.snippet.js @@ -64,7 +64,7 @@ MODx.panel.Snippet = function(config) { ,name: 'name' ,id: 'modx-snippet-name' ,anchor: '100%' - ,maxLength: 255 + ,maxLength: 50 ,enableKeyEvents: true ,allowBlank: false ,value: config.record.name @@ -248,7 +248,7 @@ MODx.panel.Snippet = function(config) { xtype: 'modx-panel-element-properties' ,elementPanel: 'modx-panel-snippet' ,elementId: config.snippet - ,elementType: 'modSnippet' + ,elementType: 'MODX\\Revolution\\modSnippet' ,record: config.record }],{ id: 'modx-snippet-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.template.js b/manager/assets/modext/widgets/element/modx.panel.template.js index 703e16fbef8..adba6bdef67 100644 --- a/manager/assets/modext/widgets/element/modx.panel.template.js +++ b/manager/assets/modext/widgets/element/modx.panel.template.js @@ -66,7 +66,7 @@ MODx.panel.Template = function(config) { ,name: 'templatename' ,id: 'modx-template-templatename' ,anchor: '100%' - ,maxLength: 100 + ,maxLength: 50 ,enableKeyEvents: true ,allowBlank: false ,value: config.record.templatename @@ -287,7 +287,7 @@ MODx.panel.Template = function(config) { ,collapsible: true ,elementPanel: 'modx-panel-template' ,elementId: config.template - ,elementType: 'modTemplate' + ,elementType: 'MODX\\Revolution\\modTemplate' ,record: config.record }],{ id: 'modx-template-tabs' diff --git a/manager/assets/modext/widgets/element/modx.panel.tv.js b/manager/assets/modext/widgets/element/modx.panel.tv.js index 95237f36f74..ee4afaa9ab9 100644 --- a/manager/assets/modext/widgets/element/modx.panel.tv.js +++ b/manager/assets/modext/widgets/element/modx.panel.tv.js @@ -323,7 +323,7 @@ MODx.panel.TV = function(config) { ,itemId: 'panel-properties' ,elementPanel: 'modx-panel-tv' ,elementId: config.tv - ,elementType: 'modTemplateVar' + ,elementType: 'MODX\\Revolution\\modTemplateVar' ,record: config.record }],{ id: 'modx-tv-tabs' @@ -561,11 +561,25 @@ Ext.extend(MODx.panel.TVInputProperties,MODx.Panel,{ } ,showInputProperties: function(cb,rc,i) { - var element = Ext.getCmp('modx-tv-elements'); - if (element) { - element.show(); + var tvTypesWithOptions = ['checkbox', 'listbox-multiple', 'listbox', 'option', 'tag'], + tvType = Ext.getCmp('modx-tv-type').value, + tvOptions = Ext.getCmp('modx-tv-elements'), + tvOptionsLabel = Ext.select('label[for="' + tvOptions.id + '"]'), + tvOptionsBlank = true; + + if (tvTypesWithOptions.indexOf(tvType) === -1) { + tvOptions.hide(); + tvOptionsLabel.hide(); + } else { + tvOptionsBlank = false; + tvOptions.show(); + tvOptionsLabel.show(); } + Ext.apply(tvOptions, { + allowBlank: tvOptionsBlank, + }); + this.markPanelDirty(); var pu = Ext.get('modx-input-props').getUpdater(); pu.loadScripts = true; diff --git a/manager/assets/modext/widgets/element/modx.panel.tv.renders.js b/manager/assets/modext/widgets/element/modx.panel.tv.renders.js index 13ab2bdaf81..1ed430bb78a 100644 --- a/manager/assets/modext/widgets/element/modx.panel.tv.renders.js +++ b/manager/assets/modext/widgets/element/modx.panel.tv.renders.js @@ -56,7 +56,18 @@ MODx.panel.ImageTV = function(config) { MODx.panel.ImageTV.superclass.constructor.call(this,config); this.addEvents({select: true}); }; -Ext.extend(MODx.panel.ImageTV,MODx.Panel); +Ext.extend(MODx.panel.ImageTV,MODx.Panel, { + isDirty: function() { + if (this.disabled || !this.rendered) { + return false; + } + + var inputField = this.find('name', 'tv' + this.config.tv); + if (!inputField || !inputField[0]) return false; + + return inputField[0].isDirty(); + } +}); Ext.reg('modx-panel-tv-image',MODx.panel.ImageTV); /** @@ -117,7 +128,18 @@ MODx.panel.FileTV = function(config) { MODx.panel.FileTV.superclass.constructor.call(this,config); this.addEvents({select: true}); }; -Ext.extend(MODx.panel.FileTV,MODx.Panel); +Ext.extend(MODx.panel.FileTV,MODx.Panel, { + isDirty: function() { + if (this.disabled || !this.rendered) { + return false; + } + + var inputField = this.find('name', 'tv' + this.config.tv); + if (!inputField || !inputField[0]) return false; + + return inputField[0].isDirty(); + } +}); Ext.reg('modx-panel-tv-file',MODx.panel.FileTV); MODx.checkTV = function(id) { diff --git a/manager/assets/modext/widgets/element/modx.tree.element.js b/manager/assets/modext/widgets/element/modx.tree.element.js old mode 100755 new mode 100644 index b58b9295dec..8107d6273d8 --- a/manager/assets/modext/widgets/element/modx.tree.element.js +++ b/manager/assets/modext/widgets/element/modx.tree.element.js @@ -395,7 +395,7 @@ Ext.extend(MODx.tree.Element,MODx.tree.Tree,{ this.quickUpdate(itm,e,itm.type); } }); - if (a.classKey == 'modPlugin') { + if (a.classKey === 'MODX\\Revolution\\modPlugin') { if (a.active) { m.push({ text: _('plugin_deactivate') diff --git a/manager/assets/modext/widgets/fc/modx.grid.fcprofile.js b/manager/assets/modext/widgets/fc/modx.grid.fcprofile.js index d76ae34d6dc..a8552493f34 100644 --- a/manager/assets/modext/widgets/fc/modx.grid.fcprofile.js +++ b/manager/assets/modext/widgets/fc/modx.grid.fcprofile.js @@ -25,6 +25,7 @@ MODx.panel.FCProfiles = function(config) { title: '' ,preventRender: true ,xtype: 'modx-grid-fc-profile' + ,urlFilters: ['search'] ,cls:'main-wrapper' }] }],{ @@ -95,7 +96,7 @@ MODx.grid.FCProfile = function(config) { } } ,tbar: [{ - text: _('profile_create') + text: _('create') ,scope: this ,handler: this.createProfile ,cls:'primary-button' @@ -120,18 +121,33 @@ MODx.grid.FCProfile = function(config) { ,id: 'modx-fcp-search' ,cls: 'x-form-filter' ,emptyText: _('filter_by_search') + ,value: MODx.request.search ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(cmp) { - new Ext.KeyMap(cmp.getEl(), { - key: Ext.EventObject.ENTER - ,fn: function() { - this.fireEvent('change',this.getValue()); - this.blur(); - return true;} - ,scope: cmp - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.fcpSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.search) { + this.fcpSearch(cb, cb.value); + MODx.request.search = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -193,7 +209,7 @@ Ext.extend(MODx.grid.FCProfile,MODx.grid.Grid,{ } if (p.indexOf('premove') != -1) { m.push('-',{ - text: _('remove') + text: _('delete') ,handler: this.confirm.createDelegate(this,['Security/Forms/Profile/Remove','profile_remove_confirm']) }); } @@ -221,14 +237,14 @@ Ext.extend(MODx.grid.FCProfile,MODx.grid.Grid,{ ,updateProfile: function(btn,e) { var r = this.menu.record; - location.href = '?a=Security/Forms/Profile/Update&id='+r.id; + location.href = '?a=security/forms/profile/update&id='+r.id; } ,duplicateProfile: function(btn,e) { MODx.Ajax.request({ url: this.config.url ,params: { - action: 'Security/Forms/Profile/Duplicate' + action: 'security/forms/profile/duplicate' ,id: this.menu.record.id } ,listeners: { @@ -250,6 +266,19 @@ Ext.extend(MODx.grid.FCProfile,MODx.grid.Grid,{ }); } + ,deactivateProfile: function(btn,e) { + MODx.Ajax.request({ + url: this.config.url + ,params: { + action: 'Security/Forms/Profile/Deactivate' + ,id: this.menu.record.id + } + ,listeners: { + 'success': {fn:this.refresh,scope:this} + } + }); + } + ,activateSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; @@ -270,19 +299,6 @@ Ext.extend(MODx.grid.FCProfile,MODx.grid.Grid,{ return true; } - ,deactivateProfile: function(btn,e) { - MODx.Ajax.request({ - url: this.config.url - ,params: { - action: 'Security/Forms/Profile/Deactivate' - ,id: this.menu.record.id - } - ,listeners: { - 'success': {fn:this.refresh,scope:this} - } - }); - } - ,deactivateSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; @@ -325,18 +341,22 @@ Ext.extend(MODx.grid.FCProfile,MODx.grid.Grid,{ return true; } - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.search = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + ,fcpSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.search = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var fcpSearch = Ext.getCmp('modx-fcp-search'); + s.baseParams = { action: 'Security/Forms/Profile/GetList' }; - Ext.getCmp('modx-fcp-search').reset(); + MODx.request.search = ''; + fcpSearch.setValue(''); + this.replaceState(); this.getBottomToolbar().changePage(1); } }); @@ -351,7 +371,7 @@ Ext.reg('modx-grid-fc-profile',MODx.grid.FCProfile); MODx.window.CreateFCProfile = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('profile_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Forms/Profile/Create' ,fields: [{ @@ -361,14 +381,12 @@ MODx.window.CreateFCProfile = function(config) { ,id: 'modx-fccp-name' ,allowBlank: false ,anchor: '100%' - },{ xtype: 'textarea' ,name: 'description' ,fieldLabel: _('description') ,id: 'modx-fccp-description' ,anchor: '100%' - },{ xtype: 'xcheckbox' ,boxLabel: _('active') diff --git a/manager/assets/modext/widgets/fc/modx.grid.fcset.js b/manager/assets/modext/widgets/fc/modx.grid.fcset.js index c632e2cde77..11ce0678c42 100644 --- a/manager/assets/modext/widgets/fc/modx.grid.fcset.js +++ b/manager/assets/modext/widgets/fc/modx.grid.fcset.js @@ -81,7 +81,7 @@ MODx.grid.FCSet = function(config) { } } ,tbar: [{ - text: _('set_new') + text: _('create') ,cls: 'primary-button' ,scope: this ,handler: this.createSet @@ -110,15 +110,33 @@ MODx.grid.FCSet = function(config) { ,id: 'modx-fcs-search' ,cls: 'x-form-filter' ,emptyText: _('filter_by_search') + ,value: MODx.request.search ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(cmp) { - new Ext.KeyMap(cmp.getEl(), { - key: Ext.EventObject.ENTER - ,fn: this.blur - ,scope: cmp - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.fcsSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.search) { + this.fcsSearch(cb, cb.value); + MODx.request.search = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -185,7 +203,7 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ } if (p.indexOf('premove') != -1) { m.push('-',{ - text: _('remove') + text: _('delete') ,handler: this.confirm.createDelegate(this,['Security/Forms/Set/Remove','set_remove_confirm']) }); } @@ -196,20 +214,24 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ } } - - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.search = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + ,fcsSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.search = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } + ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var fcsSearch = Ext.getCmp('modx-fcs-search'); + s.baseParams = { action: 'Security/Forms/Set/GetList' ,profile: MODx.request.id - }; - Ext.getCmp('modx-fcs-search').reset(); - this.getBottomToolbar().changePage(1); + }; + MODx.request.search = ''; + fcsSearch.setValue(''); + this.replaceState(); + this.getBottomToolbar().changePage(1); } ,exportSet: function(btn,e) { @@ -271,13 +293,14 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ ,updateSet: function(btn,e) { var r = this.menu.record; - location.href = '?a=Security/Forms/Set/Update&id='+r.id; + location.href = '?a=security/forms/set/update&id='+r.id; } + ,duplicateSet: function(btn,e) { MODx.Ajax.request({ url: this.config.url ,params: { - action: 'Security/Forms/Set/Duplicate' + action: 'security/forms/set/duplicate' ,id: this.menu.record.id } ,listeners: { @@ -299,6 +322,19 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ }); } + ,deactivateSet: function(btn,e) { + MODx.Ajax.request({ + url: this.config.url + ,params: { + action: 'Security/Forms/Set/Deactivate' + ,id: this.menu.record.id + } + ,listeners: { + 'success': {fn:this.refresh,scope:this} + } + }); + } + ,activateSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; @@ -318,18 +354,7 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ }); return true; } - ,deactivateSet: function(btn,e) { - MODx.Ajax.request({ - url: this.config.url - ,params: { - action: 'Security/Forms/Set/Deactivate' - ,id: this.menu.record.id - } - ,listeners: { - 'success': {fn:this.refresh,scope:this} - } - }); - } + ,deactivateSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; @@ -349,6 +374,7 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ }); return true; } + ,removeSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; @@ -373,11 +399,16 @@ Ext.extend(MODx.grid.FCSet,MODx.grid.Grid,{ }); Ext.reg('modx-grid-fc-set',MODx.grid.FCSet); - +/** + * @class MODx.window.CreateFCSet + * @extends MODx.Window + * @param {Object} config An object of options. + * @xtype modx-window-fc-set-create + */ MODx.window.CreateFCSet = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('set_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Forms/Set/Create' ,width: 600 @@ -445,7 +476,6 @@ MODx.window.CreateFCSet = function(config) { ,forId: 'modx-fcsc-template' ,html: _('set_template_desc') ,cls: 'desc-under' - },{ xtype: 'textfield' ,fieldLabel: _('constraint_field') @@ -459,7 +489,6 @@ MODx.window.CreateFCSet = function(config) { ,forId: 'modx-fcsc-constraint-field' ,html: _('set_constraint_field_desc') ,cls: 'desc-under' - },{ xtype: 'textfield' ,fieldLabel: _('constraint') @@ -473,7 +502,6 @@ MODx.window.CreateFCSet = function(config) { ,forId: 'modx-fcsc-constraint' ,html: _('set_constraint_desc') ,cls: 'desc-under' - }] }] }] @@ -484,7 +512,12 @@ MODx.window.CreateFCSet = function(config) { Ext.extend(MODx.window.CreateFCSet,MODx.Window); Ext.reg('modx-window-fc-set-create',MODx.window.CreateFCSet); - +/** + * @class MODx.window.ImportFCSet + * @extends MODx.Window + * @param {Object} config An object of options. + * @xtype modx-window-fc-set-import + */ MODx.window.ImportFCSet = function(config) { config = config || {}; Ext.applyIf(config,{ diff --git a/manager/assets/modext/widgets/fc/modx.panel.fcprofile.js b/manager/assets/modext/widgets/fc/modx.panel.fcprofile.js index 24fa6532573..c5ba53c17a7 100644 --- a/manager/assets/modext/widgets/fc/modx.panel.fcprofile.js +++ b/manager/assets/modext/widgets/fc/modx.panel.fcprofile.js @@ -41,7 +41,7 @@ MODx.panel.FCProfile = function(config) { ,name: 'name' ,id: 'modx-fcp-name' ,anchor: '100%' - ,maxLength: 255 + ,maxLength: 191 ,enableKeyEvents: true ,allowBlank: false ,value: config.record.name @@ -71,6 +71,7 @@ MODx.panel.FCProfile = function(config) { }] },{ xtype: 'modx-grid-fc-set' + ,urlFilters: ['search'] ,cls:'main-wrapper' ,baseParams: { action: 'Security/Forms/Set/GetList' @@ -173,7 +174,15 @@ MODx.grid.FCProfileUserGroups = function(config) { this.fcugRecord = Ext.data.Record.create(config.fields); }; Ext.extend(MODx.grid.FCProfileUserGroups,MODx.grid.LocalGrid,{ - addUserGroup: function(btn,e) { + getMenu: function(g,ri) { + return [{ + text: _('usergroup_remove') + ,handler: this.removeUserGroup + ,scope: this + }]; + } + + ,addUserGroup: function(btn,e) { this.loadWindow(btn,e,{ xtype: 'modx-window-fc-profile-add-usergroup' ,listeners: { @@ -186,14 +195,6 @@ Ext.extend(MODx.grid.FCProfileUserGroups,MODx.grid.LocalGrid,{ }); } - ,getMenu: function(g,ri) { - return [{ - text: _('usergroup_remove') - ,handler: this.removeUserGroup - ,scope: this - }]; - } - ,removeUserGroup: function(btn,e) { var rec = this.getSelectionModel().getSelected(); Ext.Msg.confirm(_('usergroup_remove'),_('usergroup_remove_confirm'),function(e) { diff --git a/manager/assets/modext/widgets/fc/modx.panel.fcset.js b/manager/assets/modext/widgets/fc/modx.panel.fcset.js index 3de57926c91..0fd6c0b70ad 100644 --- a/manager/assets/modext/widgets/fc/modx.panel.fcset.js +++ b/manager/assets/modext/widgets/fc/modx.panel.fcset.js @@ -329,7 +329,7 @@ MODx.grid.FCSetTabs = function(config) { } } ,tbar: [{ - text: _('tab_create') + text: _('create') ,cls: 'primary-button' ,handler: this.createTab ,scope: this @@ -343,7 +343,7 @@ Ext.extend(MODx.grid.FCSetTabs,MODx.grid.LocalGrid,{ var rec = this.getStore().getAt(ri); if (rec.data.type == 'new') { return [{ - text: _('tab_remove') + text: _('delete') ,handler: this.removeTab ,scope: this }]; @@ -370,7 +370,7 @@ Ext.extend(MODx.grid.FCSetTabs,MODx.grid.LocalGrid,{ ,removeTab: function(btn,e) { var rec = this.getSelectionModel().getSelected(); - Ext.Msg.confirm(_('tab_remove'),_('tab_remove_confirm'),function(e) { + Ext.Msg.confirm(_('delete'),_('tab_remove_confirm'),function(e) { if (e == 'yes') { this.getStore().remove(rec); } @@ -470,7 +470,7 @@ Ext.reg('modx-grid-fc-set-tvs',MODx.grid.FCSetTVs); MODx.window.AddTabToSet = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('tab_create') + title: _('create') ,fields: [{ xtype: 'hidden' ,name: 'container' diff --git a/manager/assets/modext/widgets/media/modx.browser.js b/manager/assets/modext/widgets/media/modx.browser.js index 034a4cf69f0..3bdbb9f8510 100644 --- a/manager/assets/modext/widgets/media/modx.browser.js +++ b/manager/assets/modext/widgets/media/modx.browser.js @@ -41,7 +41,7 @@ MODx.browser.View = function(config) { ,id: this.ident ,fields: [ {name: 'name', sortType: Ext.data.SortTypes.asUCString} - ,'cls','url','relativeUrl','fullRelativeUrl','image','image_width','image_height','thumb','thumb_width','thumb_height','pathname','pathRelative','ext','disabled','preview' + ,'cls','url','relativeUrl','fullRelativeUrl','image','original_width','original_height','image_width','image_height','thumb','thumb_width','thumb_height','pathname','pathRelative','ext','disabled','preview' ,{name: 'size', type: 'float'} ,{name: 'lastmod', type: 'date', dateFormat: 'timestamp'} ,'menu', 'visibility' @@ -222,16 +222,20 @@ Ext.extend(MODx.browser.View,MODx.DataView,{ ,removeFile: function() { var files = []; + var filesNames = []; var selected = this.getSelectedRecords(); for (var i in selected) { if (!selected.hasOwnProperty(i)) { continue; } - files.push(selected[i]['id']); + files.push(selected[i].id); + filesNames.push(selected[i].data.name); } MODx.msg.confirm({ - text: _('file_remove_confirm') + text: _('file_remove_confirm',{ + file: filesNames.pop() + }) ,url: MODx.config.connector_url ,params: { action: 'Browser/File/Remove' @@ -380,7 +384,7 @@ Ext.extend(MODx.browser.View,MODx.DataView,{ }; data.shortName = Ext.util.Format.ellipsis(data.name,18); data.sizeString = data.size != 0 ? formatSize(data.size) : 0; - data.imageSizeString = data.preview != 0 ? data.image_width + "x" + data.image_height + "px": 0; + data.imageSizeString = data.preview != 0 ? data.original_width + "x" + data.original_height + "px": 0; data.imageSizeString = data.imageSizeString === "xpx" ? 0 : data.imageSizeString; data.dateString = !Ext.isEmpty(data.lastmod) ? new Date(data.lastmod).format(MODx.config.manager_date_format + " " + MODx.config.manager_time_format) : 0; this.lookup[data.name] = data; @@ -466,6 +470,7 @@ Ext.extend(MODx.browser.View,MODx.DataView,{ ,_showContextMenu: function(v,i,n,e) { e.preventDefault(); + this.select(n.id); var data = this.lookup[n.id]; var m = this.cm; m.removeAll(); diff --git a/manager/assets/modext/widgets/resource/modx.panel.resource.data.js b/manager/assets/modext/widgets/resource/modx.panel.resource.data.js index 3cc6df53c44..cf48e041b7c 100644 --- a/manager/assets/modext/widgets/resource/modx.panel.resource.data.js +++ b/manager/assets/modext/widgets/resource/modx.panel.resource.data.js @@ -328,7 +328,7 @@ Ext.extend(MODx.panel.ResourceData,MODx.FormPanel,{ } trail.push({ text: parents[i].pagetitle - ,href: MODx.config.manager_url + '?a=Resource/Data&id=' + parents[i].id + ,href: MODx.config.manager_url + '?a=resource/data&id=' + parents[i].id ,cls: function(data) { var cls = []; if (!data.published) { diff --git a/manager/assets/modext/widgets/resource/modx.panel.resource.js b/manager/assets/modext/widgets/resource/modx.panel.resource.js index db5603acb53..36d24162e0b 100644 --- a/manager/assets/modext/widgets/resource/modx.panel.resource.js +++ b/manager/assets/modext/widgets/resource/modx.panel.resource.js @@ -6,7 +6,7 @@ MODx.panel.Resource = function(config) { url: MODx.config.connector_url ,baseParams: {} ,id: 'modx-panel-resource' - ,class_key: 'modDocument' + ,class_key: 'MODX\\Revolution\\modDocument' ,resource: '' ,bodyStyle: '' ,cls: 'container form-with-labels' @@ -34,7 +34,7 @@ MODx.panel.Resource = function(config) { }; Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ initialized: false - ,defaultClassKey: 'modDocument' + ,defaultClassKey: 'MODX\\Revolution\\modDocument' ,classLexiconKey: 'document' ,rteElements: 'ta' ,rteLoaded: false @@ -57,7 +57,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ var title = Ext.util.Format.stripTags(this.config.record.pagetitle); title = Ext.util.Format.htmlEncode(title); if (MODx.perm.tree_show_resource_ids) { - title = title+ ' ('+this.config.record.id+')'; + title = title + (this.config.record.id ? ' ('+this.config.record.id+')' : ''); } Ext.getCmp('modx-header-breadcrumbs').updateHeader(title); } @@ -471,7 +471,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ } trail.push({ text: parents[i].pagetitle - ,href: MODx.config.manager_url + '?a=Resource/Update&id=' + parents[i].id + ,href: MODx.config.manager_url + '?a=resource/update&id=' + parents[i].id ,cls: function(data) { var cls = []; if (!data.published) { @@ -502,7 +502,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ xtype: 'modx-panel-resource-tv' ,collapsed: false ,resource: config.resource - ,class_key: config.record.class_key || 'modDocument' + ,class_key: config.record.class_key || 'MODX\\Revolution\\modDocument' ,template: config.record.template ,anchor: '100%' ,border: true @@ -616,21 +616,27 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ ,description: '[[*pagetitle]]
    '+_('resource_pagetitle_help') ,name: 'pagetitle' ,id: 'modx-resource-pagetitle' - ,maxLength: 255 + ,maxLength: 191 ,anchor: '100%' ,allowBlank: false ,enableKeyEvents: true ,listeners: { - 'keyup': {fn: function(f) { + 'keyup': { + fn: function(f) { var title = Ext.util.Format.stripTags(f.getValue()); - this.generateAliasRealTime(title); + this.generateAliasRealTime(title); title = Ext.util.Format.htmlEncode(title); if (MODx.request.a !== 'resource/create' && MODx.perm.tree_show_resource_ids === true) { title = title+ ' ('+this.config.record.id+')'; } - Ext.getCmp('modx-header-breadcrumbs').updateHeader(title); + var breadCrumbsHeader = Ext.getCmp('modx-header-breadcrumbs'); + if (breadCrumbsHeader) { + breadCrumbsHeader.updateHeader(title); + } else { + Ext.getCmp('modx-resource-header').el.dom.innerText = title; + } // check some system settings before doing real time alias transliteration if (parseInt(MODx.config.friendly_alias_realtime, 10) && parseInt(MODx.config.automatic_alias, 10)) { @@ -639,14 +645,19 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ this.translitAlias(title); } } - }, scope: this} + }, + scope: this + } // also do realtime transliteration of alias on blur of pagetitle field // as sometimes (when typing very fast) the last letter(s) are not catched - ,'blur': {fn: function(f,e) { + ,'blur': { + fn: function(f,e) { var title = Ext.util.Format.stripTags(f.getValue()); - this.generateAliasRealTime(title); - }, scope: this} + this.generateAliasRealTime(title); + }, + scope: this + } } }] },{ @@ -657,7 +668,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ ,description: '[[*alias]]
    '+_('resource_alias_help') ,name: 'alias' ,id: 'modx-resource-alias' - ,maxLength: (aliasLength > 255 || aliasLength === 0) ? 255 : aliasLength + ,maxLength: (aliasLength > 191 || aliasLength === 0) ? 191 : aliasLength ,anchor: '100%' ,value: config.record.alias || '' ,listeners: { @@ -677,7 +688,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ ,description: '[[*longtitle]]
    '+_('resource_longtitle_help') ,name: 'longtitle' ,id: 'modx-resource-longtitle' - ,maxLength: 255 + ,maxLength: 191 ,anchor: '100%' ,value: config.record.longtitle || '' },{ @@ -935,7 +946,7 @@ Ext.extend(MODx.panel.Resource,MODx.FormPanel,{ ,hiddenName: 'class_key' ,id: 'modx-resource-class-key' ,allowBlank: false - ,value: config.record.class_key || 'modDocument' + ,value: config.record.class_key || 'MODX\\Revolution\\modDocument' ,anchor: '100%' },{ xtype: 'modx-combo-content-type' diff --git a/manager/assets/modext/widgets/resource/modx.panel.resource.static.js b/manager/assets/modext/widgets/resource/modx.panel.resource.static.js index e888edd2e77..cbca7f2ac53 100644 --- a/manager/assets/modext/widgets/resource/modx.panel.resource.static.js +++ b/manager/assets/modext/widgets/resource/modx.panel.resource.static.js @@ -10,13 +10,13 @@ MODx.panel.Static = function(config) { config.default_title = config.default_title || _('static_resource_new'); Ext.applyIf(config,{ id: 'modx-panel-resource' - ,class_key: 'modStaticResource' + ,class_key: 'MODX\\Revolution\\modStaticResource' ,items: this.getFields(config) }); MODx.panel.Static.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.Static,MODx.panel.Resource,{ - defaultClassKey: 'modStaticResource' + defaultClassKey: 'MODX\\Revolution\\modStaticResource' ,classLexiconKey: 'static_resource' ,rteElements: false ,contentField: 'modx-resource-content-static' diff --git a/manager/assets/modext/widgets/resource/modx.panel.resource.symlink.js b/manager/assets/modext/widgets/resource/modx.panel.resource.symlink.js index 1b574b787c6..22c9adc6ea1 100644 --- a/manager/assets/modext/widgets/resource/modx.panel.resource.symlink.js +++ b/manager/assets/modext/widgets/resource/modx.panel.resource.symlink.js @@ -20,13 +20,13 @@ MODx.panel.SymLink = function(config) { }); Ext.applyIf(config,{ id: 'modx-panel-resource' - ,class_key: 'modSymLink' + ,class_key: 'MODX\\Revolution\\modSymLink' ,items: this.getFields(config) }); MODx.panel.SymLink.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.SymLink,MODx.panel.Resource,{ - defaultClassKey: 'modSymLink' + defaultClassKey: 'MODX\\Revolution\\modSymLink' ,classLexiconKey: 'symlink' ,rteElements: false ,contentField: 'modx-symlink-content' diff --git a/manager/assets/modext/widgets/resource/modx.panel.resource.weblink.js b/manager/assets/modext/widgets/resource/modx.panel.resource.weblink.js index df12c6d4062..8a215ff3e93 100644 --- a/manager/assets/modext/widgets/resource/modx.panel.resource.weblink.js +++ b/manager/assets/modext/widgets/resource/modx.panel.resource.weblink.js @@ -9,13 +9,13 @@ MODx.panel.WebLink = function(config) { config.default_title = config.default_title || _('weblink_new'); Ext.applyIf(config,{ id: 'modx-panel-resource' - ,class_key: 'modWebLink' + ,class_key: 'MODX\\Revolution\\modWebLink' ,items: this.getFields(config) }); MODx.panel.WebLink.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.WebLink,MODx.panel.Resource,{ - defaultClassKey: 'modWebLink' + defaultClassKey: 'MODX\\Revolution\\modWebLink' ,classLexiconKey: 'weblink' ,rteElements: false ,contentField: 'modx-weblink-content' @@ -28,7 +28,7 @@ Ext.extend(MODx.panel.WebLink,MODx.panel.Resource,{ ,name: 'content' ,id: 'modx-weblink-content' ,anchor: '100%' - ,value: (config.record.content || config.record.ta) || 'http://' + ,value: (config.record.content || config.record.ta) || '' }; } ,getSettingLeftFields: function(config) { diff --git a/manager/assets/modext/widgets/resource/modx.tree.resource.js b/manager/assets/modext/widgets/resource/modx.tree.resource.js index 450f54689b3..275631d5536 100644 --- a/manager/assets/modext/widgets/resource/modx.tree.resource.js +++ b/manager/assets/modext/widgets/resource/modx.tree.resource.js @@ -149,7 +149,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ var node = this.cm.activeNode; var key = node.attributes.pk; MODx.msg.confirm({ - title: _('context_remove') + title: _('remove_context') ,text: _('context_remove_confirm') ,url: MODx.config.connector_url ,params: { @@ -177,10 +177,11 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ ,deleteDocument: function(itm,e) { var node = this.cm.activeNode; var id = node.id.split('_');id = id[1]; - var pagetitle = node.ui.textNode.innerText; + var resource = node.ui.textNode.innerText; MODx.msg.confirm({ - title: pagetitle ? _('resource_delete') + ' ' + pagetitle : _('resource_delete') - ,text: _('resource_delete_confirm') + text: _('resource_delete_confirm',{ + resource: resource + }) ,url: MODx.config.connector_url ,params: { action: 'Resource/Delete' @@ -408,7 +409,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ } ,quickCreate: function(itm,e,cls,ctx,p) { - cls = cls || 'modDocument'; + cls = cls || 'MODX\\Revolution\\modDocument'; var r = { class_key: cls ,context_key: ctx || 'web' @@ -507,7 +508,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ }); } m.push({ - text: _('context_refresh') + text: _('refresh_context') ,handler: function() { this.refreshNode(this.cm.activeNode.id,true); } @@ -518,14 +519,14 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ } if (ui.hasClass('pnew')) { m.push({ - text: _('context_duplicate') + text: _('duplicate_context') ,handler: this.duplicateContext }); } if (ui.hasClass('pdelete')) { m.push('-'); m.push({ - text: _('context_remove') + text: _('remove_context') ,handler: this.removeContext }); } @@ -626,7 +627,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ if (ui.hasClass('pview') && a.preview_url != '') { m.push('-'); m.push({ - text: _('resource_view') + text: _('resource_preview') ,handler: this.preview }); } @@ -657,7 +658,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ if (Ext.isObject(o)) { Ext.apply(types,o); } - var coreTypes = ['modDocument','modWebLink','modSymLink','modStaticResource']; + var coreTypes = ['MODX\Revolution\modDocument','MODX\Revolution\modWebLink','MODX\Revolution\modSymLink','MODX\Revolution\modStaticResource']; var ct = []; var qct = []; for (var k in types) { @@ -808,7 +809,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ this.cm.activeNode = node; var itm = { usePk: '0' - ,classKey: 'modDocument' + ,classKey: 'MODX\\Revolution\\modDocument' }; this.createResourceHere(itm); @@ -817,7 +818,7 @@ Ext.extend(MODx.tree.Resource,MODx.tree.Tree,{ ,handleDirectCreateClick: function(node){ this.cm.activeNode = node; this.createResourceHere({ - classKey: 'modDocument' + classKey: 'MODX\\Revolution\\modDocument' }); } @@ -1050,7 +1051,7 @@ MODx.getQRContentField = function(id,cls) { ,id: 'modx-'+id+'-content' ,anchor: '100%' ,maxLength: 255 - ,value: 'http://' + ,value: '' }; break; case 'MODX\\Revolution\\modStaticResource': @@ -1145,7 +1146,7 @@ MODx.getQRSettings = function(id,va) { ,hiddenName: 'class_key' ,id: 'modx-'+id+'-class-key' ,anchor: '100%' - ,value: va['class_key'] != undefined ? va['class_key'] : 'modDocument' + ,value: va['class_key'] != undefined ? va['class_key'] : 'MODX\\Revolution\\modDocument' },{ xtype: 'modx-combo-content-type' ,fieldLabel: _('resource_content_type') diff --git a/manager/assets/modext/widgets/security/modx.combo.access.policy.template.groups.js b/manager/assets/modext/widgets/security/modx.combo.access.policy.template.groups.js new file mode 100644 index 00000000000..89c9beaf2a4 --- /dev/null +++ b/manager/assets/modext/widgets/security/modx.combo.access.policy.template.groups.js @@ -0,0 +1,27 @@ +/** + * @class MODx.combo.AccessPolicyTemplateGroups + * @extends MODx.combo.ComboBox + * @param {Object} config An object of options. + * @xtype modx-combo-access-policy-template-group + */ +MODx.combo.AccessPolicyTemplateGroups = function(config) { + config = config || {}; + Ext.applyIf(config,{ + name: 'template_group' + ,hiddenName: 'template_group' + ,fields: ['id','name','description'] + ,forceSelection: true + ,typeAhead: false + ,editable: false + ,allowBlank: false + ,url: MODx.config.connector_url + ,baseParams: { + action: 'Security/Access/Policy/Template/Group/GetList' + } + ,tpl: new Ext.XTemplate('
    {name:htmlEncode}' + ,'

    {description:htmlEncode}

    ') + }); + MODx.combo.AccessPolicyTemplateGroups.superclass.constructor.call(this,config); +}; +Ext.extend(MODx.combo.AccessPolicyTemplateGroups,MODx.combo.ComboBox); +Ext.reg('modx-combo-access-policy-template-group',MODx.combo.AccessPolicyTemplateGroups); diff --git a/manager/assets/modext/widgets/security/modx.grid.access.context.js b/manager/assets/modext/widgets/security/modx.grid.access.context.js index 44748629cf3..3410bc15646 100644 --- a/manager/assets/modext/widgets/security/modx.grid.access.context.js +++ b/manager/assets/modext/widgets/security/modx.grid.access.context.js @@ -13,7 +13,7 @@ MODx.grid.AccessContext = function(config) { ,url: MODx.config.connector_url ,baseParams: { action: 'Security/Access/GetList' - ,type: config.type || 'modAccessContext' + ,type: config.type || 'MODX\\Revolution\\modAccessContext' ,target: config.context_key } ,fields: ['id','target','target_name','principal_class','principal','principal_name','authority','policy','policy_name','cls'] @@ -49,7 +49,7 @@ MODx.grid.AccessContext = function(config) { }, scope: this } }] ,tbar: [{ - text: _('acl_add') + text: _('create') ,cls: 'primary-button' ,scope: this ,handler: this.createAcl @@ -78,7 +78,7 @@ Ext.extend(MODx.grid.AccessContext,MODx.grid.Grid,{ if (p.indexOf('premove') != -1) { if (m.length > 0) { m.push('-'); } m.push({ - text: _('remove') + text: _('delete') ,handler: this.removeAcl }); } diff --git a/manager/assets/modext/widgets/security/modx.grid.access.policy.js b/manager/assets/modext/widgets/security/modx.grid.access.policy.js index 4209a15d62a..4efca422a18 100644 --- a/manager/assets/modext/widgets/security/modx.grid.access.policy.js +++ b/manager/assets/modext/widgets/security/modx.grid.access.policy.js @@ -50,7 +50,7 @@ MODx.grid.AccessPolicy = function(config) { ,baseParams: { action: 'Security/Access/Policy/GetList' } - ,fields: ['id','name','description','class','data','parent','template','template_name','active_permissions','total_permissions','active_of','cls'] + ,fields: ['id','name','description', 'description_trans', 'class','data','parent','template','template_name','active_permissions','total_permissions','active_of','cls'] ,paging: true ,autosave: true ,save_action: 'Security/Access/Policy/UpdateFromGrid' @@ -71,7 +71,10 @@ MODx.grid.AccessPolicy = function(config) { header: _('description') ,dataIndex: 'description' ,width: 375 - ,editor: { xtype: 'textarea' } + ,renderer: function(value, metaData, record) { + return Ext.util.Format.htmlEncode(record['data']['description_trans']); + } + ,editable: false },{ header: _('policy_template') ,dataIndex: 'template_name' @@ -89,7 +92,7 @@ MODx.grid.AccessPolicy = function(config) { ,editable: false }] ,tbar: [{ - text: _('policy_create') + text: _('create') ,cls:'primary-button' ,scope: this ,handler: this.createPolicy @@ -222,11 +225,11 @@ Ext.extend(MODx.grid.AccessPolicy,MODx.grid.Grid,{ } else { if (p.indexOf('pedit') != -1) { m.push({ - text: _('policy_update') + text: _('edit') ,handler: this.editPolicy }); m.push({ - text: _('policy_duplicate') + text: _('duplicate') ,handler: this.confirm.createDelegate(this,["Security/Access/Policy/Duplicate","policy_duplicate_confirm"]) }); } @@ -238,7 +241,7 @@ Ext.extend(MODx.grid.AccessPolicy,MODx.grid.Grid,{ if (p.indexOf('premove') != -1) { if (m.length > 0) m.push('-'); m.push({ - text: _('policy_remove') + text: _('delete') ,handler: this.confirm.createDelegate(this,["Security/Access/Policy/Remove","policy_remove_confirm"]) }); } @@ -285,7 +288,7 @@ MODx.window.CreateAccessPolicy = function(config) { config = config || {}; this.ident = config.ident || 'cacp'+Ext.id(); Ext.applyIf(config,{ - title: _('policy_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Access/Policy/Create' ,fields: [{ @@ -354,7 +357,7 @@ MODx.combo.AccessPolicyTemplate = function(config) { Ext.applyIf(config,{ name: 'template' ,hiddenName: 'template' - ,fields: ['id','name','description'] + ,fields: ['id','name','description','description_trans'] ,forceSelection: true ,typeAhead: false ,editable: false @@ -365,7 +368,7 @@ MODx.combo.AccessPolicyTemplate = function(config) { action: 'Security/Access/Policy/Template/GetList' } ,tpl: new Ext.XTemplate('
    {name:htmlEncode}' - ,'

    {description:htmlEncode}

    ') + ,'

    {description_trans:htmlEncode}

    ') }); MODx.combo.AccessPolicyTemplate.superclass.constructor.call(this,config); }; diff --git a/manager/assets/modext/widgets/security/modx.grid.access.policy.template.js b/manager/assets/modext/widgets/security/modx.grid.access.policy.template.js index 522531c0610..d1b0eb721b4 100644 --- a/manager/assets/modext/widgets/security/modx.grid.access.policy.template.js +++ b/manager/assets/modext/widgets/security/modx.grid.access.policy.template.js @@ -50,7 +50,7 @@ MODx.grid.AccessPolicyTemplate = function(config) { ,baseParams: { action: 'Security/Access/Policy/Template/GetList' } - ,fields: ['id','name','description','template_group','template_group_name','total_permissions','cls'] + ,fields: ['id','name','description','description_trans','template_group','template_group_name','total_permissions','cls'] ,paging: true ,autosave: true ,save_action: 'Security/Access/Policy/Template/UpdateFromGrid' @@ -71,7 +71,10 @@ MODx.grid.AccessPolicyTemplate = function(config) { header: _('description') ,dataIndex: 'description' ,width: 375 - ,editor: { xtype: 'textarea' } + ,editable: false + ,renderer: function(value, metaData, record) { + return Ext.util.Format.htmlEncode(record['data']['description_trans']); + } ,sortable: true },{ header: _('template_group') @@ -83,10 +86,10 @@ MODx.grid.AccessPolicyTemplate = function(config) { ,dataIndex: 'total_permissions' ,width: 100 ,editable: false - ,sortable: false + ,sortable: true }] ,tbar: [{ - text: _('policy_template_create') + text: _('create') ,cls:'primary-button' ,scope: this ,handler: this.createPolicyTemplate @@ -151,11 +154,11 @@ Ext.extend(MODx.grid.AccessPolicyTemplate,MODx.grid.Grid,{ } else { if (p.indexOf('pedit') != -1) { m.push({ - text: _('policy_template_update') + text: _('edit') ,handler: this.editPolicyTemplate }); m.push({ - text: _('policy_template_duplicate') + text: _('duplicate') ,handler: this.confirm.createDelegate(this,["Security/Access/Policy/Template/Duplicate","policy_template_duplicate_confirm"]) }); } @@ -168,7 +171,7 @@ Ext.extend(MODx.grid.AccessPolicyTemplate,MODx.grid.Grid,{ if (p.indexOf('premove') != -1) { if (m.length > 0) m.push('-'); m.push({ - text: _('policy_template_remove') + text: _('delete') ,handler: this.confirm.createDelegate(this,["Security/Access/Policy/Template/Remove","policy_template_remove_confirm"]) }); } @@ -274,34 +277,6 @@ Ext.extend(MODx.grid.AccessPolicyTemplate,MODx.grid.Grid,{ }); Ext.reg('modx-grid-access-policy-templates',MODx.grid.AccessPolicyTemplate); -/** - * @class MODx.combo.AccessPolicyTemplateGroups - * @extends MODx.combo.ComboBox - * @param {Object} config An object of options. - * @xtype modx-combo-access-policy-template-group - */ -MODx.combo.AccessPolicyTemplateGroups = function(config) { - config = config || {}; - Ext.applyIf(config,{ - name: 'template_group' - ,hiddenName: 'template_group' - ,fields: ['id','name','description'] - ,forceSelection: true - ,typeAhead: false - ,editable: false - ,allowBlank: false - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/Policy/Template/Group/GetList' - } - ,tpl: new Ext.XTemplate('
    {name:htmlEncode}' - ,'

    {description:htmlEncode}

    ') - }); - MODx.combo.AccessPolicyTemplateGroups.superclass.constructor.call(this,config); -}; -Ext.extend(MODx.combo.AccessPolicyTemplateGroups,MODx.combo.ComboBox); -Ext.reg('modx-combo-access-policy-template-group',MODx.combo.AccessPolicyTemplateGroups); - /** * Generates a window for creating Access Policies. * @@ -314,7 +289,7 @@ MODx.window.CreateAccessPolicyTemplate = function(config) { config = config || {}; this.ident = config.ident || 'cacpt'+Ext.id(); Ext.applyIf(config,{ - title: _('policy_template_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Access/Policy/Template/Create' ,fields: [{ diff --git a/manager/assets/modext/widgets/security/modx.grid.message.js b/manager/assets/modext/widgets/security/modx.grid.message.js index 8a1ae1abdf0..e6d89fdaed9 100644 --- a/manager/assets/modext/widgets/security/modx.grid.message.js +++ b/manager/assets/modext/widgets/security/modx.grid.message.js @@ -119,7 +119,7 @@ MODx.grid.Message = function(config) { ,editable: false }] ,tbar: [{ - text: _('message_new') + text: _('create') ,cls:'primary-button' ,disabled: disabled ,scope: this @@ -296,7 +296,7 @@ Ext.reg('modx-grid-message',MODx.grid.Message); MODx.window.CreateMessage = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('message_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Message/Create' ,fields: this.getFields() @@ -312,8 +312,10 @@ Ext.extend(MODx.window.CreateMessage,MODx.Window,{ ,getFields: function() { var data = []; - if (MODx.perm.view_user) data.push(['user',_('user')]); - if (MODx.perm.view_usergroup) data.push(['usergroup',_('usergroup')]); + if (MODx.perm.view_user) { + data.push(['user',_('user')]); + data.push(['usergroup',_('usergroup')]); + } if (MODx.perm.view_role) data.push(['role',_('role')]); if (MODx.perm.view_user) data.push(['all',_('all')]); @@ -338,20 +340,22 @@ Ext.extend(MODx.window.CreateMessage,MODx.Window,{ ,anchor: '100%' }]; - if (MODx.perm.view_user) items.push({ - xtype: 'modx-combo-user' - ,id: 'mc-recipient-user' - ,fieldLabel: _('user') - ,allowBlank: true - ,anchor: '100%' - }); - if (MODx.perm.view_usergroup) items.push({ - xtype: 'modx-combo-usergroup' - ,id: 'mc-recipient-usergroup' - ,fieldLabel: _('usergroup') - ,allowBlank: true - ,anchor: '100%' - }); + if (MODx.perm.view_user) { + items.push({ + xtype: 'modx-combo-user' + , id: 'mc-recipient-user' + , fieldLabel: _('user') + , allowBlank: true + , anchor: '100%' + }); + items.push({ + xtype: 'modx-combo-usergroup' + , id: 'mc-recipient-usergroup' + , fieldLabel: _('usergroup') + , allowBlank: true + , anchor: '100%' + }); + } if (MODx.perm.view_role) items.push({ xtype: 'modx-combo-role' ,id: 'mc-recipient-role' diff --git a/manager/assets/modext/widgets/security/modx.grid.role.js b/manager/assets/modext/widgets/security/modx.grid.role.js index 1fab728bba2..ac47fbf628b 100644 --- a/manager/assets/modext/widgets/security/modx.grid.role.js +++ b/manager/assets/modext/widgets/security/modx.grid.role.js @@ -44,7 +44,7 @@ MODx.grid.Role = function(config) { ,sortable: true }] ,tbar: [{ - text: _('new_role') + text: _('create') ,cls:'primary-button' ,handler: this.createRole ,scope: this @@ -65,7 +65,7 @@ Ext.extend(MODx.grid.Role,MODx.grid.Grid,{ var m = []; if (p.indexOf('remove') != -1) { m.push({ - text: _('role_remove') + text: _('delete') ,handler: this.remove.createDelegate(this,['role_remove_confirm', 'Security/Role/Remove']) }); } @@ -95,7 +95,7 @@ MODx.window.CreateRole = function(config) { config = config || {}; this.ident = config.ident || 'crole'+Ext.id(); Ext.applyIf(config,{ - title: _('role_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Security/Role/Create' ,fields: [{ diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.context.js b/manager/assets/modext/widgets/security/modx.grid.user.group.context.js index 42faffd03df..19c4c4d1edc 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.context.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.context.js @@ -83,7 +83,7 @@ MODx.grid.UserGroupContext = function(config) { ,allowBlank: true ,baseParams: { action: 'Security/Access/Policy/GetList' - ,group: 'Admin' + ,group: 'Administrator' } ,listeners: { 'select': {fn:this.filterPolicy,scope:this} @@ -242,7 +242,7 @@ MODx.window.CreateUGAccessContext = function(config) { ,hiddenName: 'policy' ,baseParams: { action: 'Security/Access/Policy/GetList' - ,group: 'Admin,Object' + ,group: 'Administrator,Object' ,combo: '1' } ,allowBlank: false diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.js b/manager/assets/modext/widgets/security/modx.grid.user.group.js index 668cb9d1762..26a56481394 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.js @@ -86,7 +86,7 @@ Ext.extend(MODx.grid.UserGroups,MODx.grid.LocalGrid,{ ,scope: this },'-',{ text: _('user_group_user_remove') - ,handler: this.remove.createDelegate(this,[{text: _('user_group_remove_confirm')}]) + ,handler: this.remove.createDelegate(this,[{text: _('user_group_user_remove_confirm')}]) ,scope: this }); m.showAt(e.xy); diff --git a/manager/assets/modext/widgets/security/modx.grid.user.group.settings.js b/manager/assets/modext/widgets/security/modx.grid.user.group.settings.js index 98705645773..bc441fbb53e 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.group.settings.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.group.settings.js @@ -22,7 +22,7 @@ MODx.grid.GroupSettings = function(config) { ,save_action: 'Security/Group/Setting/UpdateFromGrid' ,fk: config.group ,tbar: [{ - text: _('create_new') + text: _('create') ,cls:'primary-button' ,scope: this ,handler: { @@ -52,10 +52,10 @@ Ext.extend(MODx.grid.GroupSettings,MODx.grid.SettingsGrid, { m = this.menu.record.menu; } else { m.push({ - text: _('setting_update') + text: _('edit') ,handler: this.updateSetting },'-',{ - text: _('setting_remove') + text: _('remove') ,handler: this.remove.createDelegate(this,['setting_remove_confirm', 'Security/Group/Setting/Remove']) }); } diff --git a/manager/assets/modext/widgets/security/modx.grid.user.js b/manager/assets/modext/widgets/security/modx.grid.user.js index 42516d01cfb..75d3a4e0992 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.js @@ -112,7 +112,7 @@ MODx.grid.User = function(config) { ,editor: { xtype: 'combo-boolean', renderer: 'boolean' } }] ,tbar: [{ - text: _('user_new') + text: _('create') ,handler: this.createUser ,scope: this ,cls:'primary-button' @@ -204,21 +204,21 @@ Ext.extend(MODx.grid.User,MODx.grid.Grid,{ } else { if (p.indexOf('pupdate') != -1) { m.push({ - text: _('user_update') + text: _('edit') ,handler: this.updateUser }); } if (p.indexOf('pcopy') != -1) { if (m.length > 0) m.push('-'); m.push({ - text: _('user_duplicate') + text: _('duplicate') ,handler: this.duplicateUser }); } if (p.indexOf('premove') != -1) { if (m.length > 0) m.push('-'); m.push({ - text: _('user_remove') + text: _('delete') ,handler: this.removeUser }); } @@ -251,7 +251,7 @@ Ext.extend(MODx.grid.User,MODx.grid.Grid,{ ,removeUser: function() { MODx.msg.confirm({ - title: _('user_remove') + title: _('delete') ,text: _('user_confirm_remove') ,url: this.config.url ,params: { diff --git a/manager/assets/modext/widgets/security/modx.grid.user.settings.js b/manager/assets/modext/widgets/security/modx.grid.user.settings.js index 691503abf6d..cfea16bd7c0 100644 --- a/manager/assets/modext/widgets/security/modx.grid.user.settings.js +++ b/manager/assets/modext/widgets/security/modx.grid.user.settings.js @@ -22,10 +22,10 @@ MODx.grid.UserSettings = function(config) { ,save_action: 'Security/User/Setting/UpdateFromGrid' ,fk: config.user ,tbar: [{ - text: _('create_new') + text: _('create') ,cls: 'primary-button' ,scope: this - ,handler: { + ,handler: { xtype: 'modx-window-setting-create' ,url: MODx.config.connector_url ,baseParams: { @@ -73,10 +73,10 @@ Ext.extend(MODx.grid.UserSettings,MODx.grid.SettingsGrid, { m = this.menu.record.menu; } else { m.push({ - text: _('setting_update') + text: _('edit') ,handler: this.updateSetting },'-',{ - text: _('setting_remove') + text: _('remove') ,handler: this.remove.createDelegate(this,['setting_remove_confirm', 'Security/User/Setting/Remove']) }); } diff --git a/manager/assets/modext/widgets/security/modx.panel.access.policy.js b/manager/assets/modext/widgets/security/modx.panel.access.policy.js index 7b22e820c50..6cfd229282a 100644 --- a/manager/assets/modext/widgets/security/modx.panel.access.policy.js +++ b/manager/assets/modext/widgets/security/modx.panel.access.policy.js @@ -213,33 +213,3 @@ Ext.extend(MODx.grid.PolicyPermissions,MODx.grid.LocalGrid,{ } }); Ext.reg('modx-grid-policy-permissions',MODx.grid.PolicyPermissions); - -/** - * @class MODx.combo.AccessPolicyTemplate - * @extends MODx.combo.ComboBox - * @constructor - * @param {Object} config An object of options. - * @xtype modx-combo-access-policy-template - */ -MODx.combo.AccessPolicyTemplate = function(config) { - config = config || {}; - Ext.applyIf(config,{ - name: 'template' - ,hiddenName: 'template' - ,fields: ['id','name','description'] - ,forceSelection: true - ,typeAhead: false - ,editable: false - ,allowBlank: false - ,pageSize: 20 - ,url: MODx.config.connector_url - ,baseParams: { - action: 'Security/Access/Policy/Template/GetList' - } - ,tpl: new Ext.XTemplate('
    {name:htmlEncode}' - ,'

    {description:htmlEncode}

    ') - }); - MODx.combo.AccessPolicyTemplate.superclass.constructor.call(this,config); -}; -Ext.extend(MODx.combo.AccessPolicyTemplate,MODx.combo.ComboBox); -Ext.reg('modx-combo-access-policy-template',MODx.combo.AccessPolicyTemplate); diff --git a/manager/assets/modext/widgets/security/modx.panel.access.policy.template.js b/manager/assets/modext/widgets/security/modx.panel.access.policy.template.js index 5d5f7602f6b..92849c2d90c 100644 --- a/manager/assets/modext/widgets/security/modx.panel.access.policy.template.js +++ b/manager/assets/modext/widgets/security/modx.panel.access.policy.template.js @@ -8,7 +8,6 @@ */ MODx.panel.AccessPolicyTemplate = function(config) { config = config || {}; - var r = config.record || {}; Ext.applyIf(config,{ url: MODx.config.connector_url ,baseParams: { @@ -34,65 +33,91 @@ MODx.panel.AccessPolicyTemplate = function(config) { title: _('policy_template') ,layout: 'form' ,items: [{ - html: '

    '+_('policy_template.desc')+'

    ' + html: '

    '+_('policy_template_desc')+'

    ' ,xtype: 'modx-description' },{ - xtype: 'panel' - ,border: false - ,cls:'main-wrapper' - ,layout: 'form' - ,defaults:{ anchor: '100%' } - ,labelAlign: 'top' - ,labelSeparator: '' - ,items: [{ - xtype: 'hidden' - ,name: 'id' - },{ - xtype: 'textfield' - ,fieldLabel: _('name') - ,description: MODx.expandHelp ? '' : _('policy_template_desc_name') - ,name: 'name' - ,id: 'modx-policy-template-name' - ,maxLength: 255 - ,enableKeyEvents: true - ,allowBlank: false - ,listeners: { - 'keyup': {scope:this,fn:function(f,e) { - Ext.getCmp('modx-header-breadcrumbs').updateHeader(Ext.util.Format.htmlEncode(f.getValue())); - }} - } - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-policy-template-name' - ,html: _('policy_template_desc_name') - ,cls: 'desc-under' - - },{ - xtype: 'textarea' - ,fieldLabel: _('description') - ,description: MODx.expandHelp ? '' : _('policy_template_desc_description') - ,name: 'description' - ,id: 'modx-policy-template-description' - ,grow: true - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-policy-template-description' - ,html: _('policy_template_desc_description') - ,cls: 'desc-under' - - },{ - xtype: 'textfield' - ,fieldLabel: _('lexicon') - ,description: MODx.expandHelp ? '' : _('policy_template_desc_lexicon') - ,name: 'lexicon' - ,id: 'modx-policy-template-lexicon' - ,allowBlank: true - ,value: 'permissions' - },{ - xtype: MODx.expandHelp ? 'label' : 'hidden' - ,forId: 'modx-policy-template-lexicon' - ,html: _('policy_template_desc_lexicon') - ,cls: 'desc-under' + xtype: 'panel' + ,border: false + ,cls:'main-wrapper' + ,items: [{ + xtype: 'hidden' + ,name: 'id' + },{ + layout: 'column', + defaults: {msgTarget: 'under', border: true}, + items: [{ + columnWidth: .7 + ,layout: 'form' + ,defaults:{ anchor: '100%' } + ,labelAlign: 'top' + ,labelSeparator: '' + ,items: [{ + xtype: 'textfield' + ,fieldLabel: _('name') + ,description: MODx.expandHelp ? '' : _('policy_template_desc_name') + ,name: 'name' + ,id: 'modx-policy-template-name' + ,maxLength: 255 + ,enableKeyEvents: true + ,allowBlank: false + ,listeners: { + 'keyup': { + scope: this, fn: function (f, e) { + Ext.getCmp('modx-header-breadcrumbs').updateHeader(Ext.util.Format.htmlEncode(f.getValue())); + } + } + } + },{ + xtype: MODx.expandHelp ? 'label' : 'hidden' + ,forId: 'modx-policy-template-name' + ,html: _('policy_template_desc_name') + ,cls: 'desc-under' + },{ + xtype: 'textarea' + ,fieldLabel: _('description') + ,description: MODx.expandHelp ? '' : _('policy_template_desc_description') + ,name: 'description' + ,id: 'modx-policy-template-description' + ,grow: true + },{ + xtype: MODx.expandHelp ? 'label' : 'hidden' + ,forId: 'modx-policy-template-description' + ,html: _('policy_template_desc_description') + ,cls: 'desc-under' + }] + }, { + columnWidth: .3 + ,layout: 'form' + ,defaults:{ anchor: '100%' } + ,labelAlign: 'top' + ,labelSeparator: '' + ,items: [{ + xtype: 'modx-combo-access-policy-template-group' + ,fieldLabel: _('template_group') + ,description: MODx.expandHelp ? '' : _('policy_template_desc_template_group') + ,name: 'template_group' + ,id: 'modx-policy-template-template-group' + ,allowBlank: false + }, { + xtype: MODx.expandHelp ? 'label' : 'hidden' + ,forId: 'modx-policy-template-template-group' + ,html: _('policy_template_desc_template_group') + ,cls: 'desc-under' + },{ + xtype: 'textfield' + ,fieldLabel: _('policy_template_lexicon') + ,description: MODx.expandHelp ? '' : _('policy_template_desc_lexicon') + ,name: 'lexicon' + ,id: 'modx-policy-template-lexicon' + ,allowBlank: true + ,value: 'permissions' + },{ + xtype: MODx.expandHelp ? 'label' : 'hidden' + ,forId: 'modx-policy-template-lexicon' + ,html: _('policy_template_desc_lexicon') + ,cls: 'desc-under' + }] + }] }] },{ html: '

    '+_('permissions_desc')+'

    ' @@ -184,7 +209,7 @@ MODx.grid.TemplatePermissions = function(config) { ,autosave: false ,autoExpandColumn: 'name' ,tbar: [{ - text: _('permission_add_template') + text: _('create') ,cls: 'primary-button' ,scope: this ,handler: this.createAttribute @@ -232,7 +257,7 @@ Ext.extend(MODx.grid.TemplatePermissions,MODx.grid.LocalGrid,{ } m.removeAll(); m.add({ - text: _('permission_remove') + text: _('delete') ,scope: this ,handler: this.remove }); @@ -251,7 +276,7 @@ MODx.window.NewTemplatePermission = function(config) { config = config || {}; this.ident = config.ident || 'polpc'+Ext.id(); Ext.applyIf(config,{ - title: _('permission_add_template') + title: _('create') ,url: MODx.config.connector_url ,action: 'security/access/policy/addProperty' ,saveBtnText: _('add') diff --git a/manager/assets/modext/widgets/security/modx.panel.groups.roles.js b/manager/assets/modext/widgets/security/modx.panel.groups.roles.js index d4101e6071e..00a43a6ab08 100644 --- a/manager/assets/modext/widgets/security/modx.panel.groups.roles.js +++ b/manager/assets/modext/widgets/security/modx.panel.groups.roles.js @@ -170,15 +170,16 @@ Ext.extend(MODx.panel.GroupsRoles,MODx.FormPanel,{ } ,fixPanelHeight: function() { // fixing border layout's height regarding to tree panel's - var treeEl = Ext.getCmp('modx-tree-usergroup'); - if (treeEl && treeEl.rendered) { - var treeH = treeEl.getEl().getHeight(); - var cHeight = Ext.getCmp('modx-usergroup-users').getHeight(); // .main-wrapper - var maxH = (treeH > cHeight) ? treeH : cHeight; - maxH = maxH > 500 ? maxH : 500; - Ext.getCmp('modx-tree-panel-usergroup').setHeight(maxH); - Ext.getCmp('modx-content').doLayout(); + var treeEl = Ext.getCmp('modx-tree-usergroup').getEl(); + if (!treeEl) { + return; } + var treeH = treeEl.getHeight(); + var cHeight = Ext.getCmp('modx-usergroup-users').getHeight(); // .main-wrapper + var maxH = (treeH > cHeight) ? treeH : cHeight; + maxH = maxH > 500 ? maxH : 500; + Ext.getCmp('modx-tree-panel-usergroup').setHeight(maxH); + Ext.getCmp('modx-content').doLayout(); } }); Ext.reg('modx-panel-groups-roles',MODx.panel.GroupsRoles); diff --git a/manager/assets/modext/widgets/security/modx.panel.user.group.js b/manager/assets/modext/widgets/security/modx.panel.user.group.js index 0ed97802429..4ec1d8c959b 100644 --- a/manager/assets/modext/widgets/security/modx.panel.user.group.js +++ b/manager/assets/modext/widgets/security/modx.panel.user.group.js @@ -40,7 +40,7 @@ MODx.panel.UserGroup = function(config) { ,items: [{ xtype: 'panel' ,border: false - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,layout: 'form' ,items: [{ layout: 'column' @@ -62,7 +62,7 @@ MODx.panel.UserGroup = function(config) { },{ name: 'name' ,id: 'modx-usergroup-name' - ,xtype: config.record && (config.record.name == 'Administrator' || config.record.id == 0) ? 'statictextfield' : 'textfield' + ,xtype: config.record && (config.record.name === 'Administrator' || config.record.id === 0) ? 'statictextfield' : 'textfield' ,fieldLabel: _('name') ,allowBlank: false ,enableKeyEvents: true @@ -128,45 +128,7 @@ MODx.panel.UserGroup = function(config) { }] }] },{ - title: _('users') - ,hideMode: 'offsets' - ,layout: 'form' - ,id: 'modx-usergroup-users-panel' - ,items: [{ - html: '

    '+_('user_group_user_access_msg')+'

    ' - ,xtype: 'modx-description' - },{ - xtype: 'modx-grid-user-group-users' - ,cls:'main-wrapper' - ,preventRender: true - ,usergroup: config.record.id - ,autoHeight: true - ,width: '97%' - ,listeners: { - 'afterRemoveRow': {fn:this.markDirty,scope:this} - ,'updateRole': {fn:this.markDirty,scope:this} - ,'addMember': {fn:this.markDirty,scope:this} - } - }] - },{ - title: _('settings') - ,forceLayout: true - ,hideMode: 'offsets' - ,layout: 'form' - ,items: [{ - html: '

    '+_('user_group_settings_desc')+'

    ' - ,xtype: 'modx-description' - },{ - xtype: 'modx-grid-group-settings' - ,urlFilters: ['namespace', 'area', 'query'] - ,cls: 'main-wrapper' - ,preventRender: true - ,group: config.record.id - ,autoHeight: true - ,width: '97%' - }] - },{ - title: _('permissions') + title: _('access_permissions') ,hidden: config.record.id === 0 ,forceLayout: true ,hideMode: 'offsets' @@ -185,7 +147,7 @@ MODx.panel.UserGroup = function(config) { ,preventRender: true ,usergroup: config.record.id ,autoHeight: true - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,listeners: { 'afterRemoveRow': {fn:this.markDirty,scope:this} ,'afteredit': {fn:this.markDirty,scope:this} @@ -203,7 +165,7 @@ MODx.panel.UserGroup = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-user-group-resource-group' - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,preventRender: true ,usergroup: config.record.id ,autoHeight: true @@ -225,7 +187,7 @@ MODx.panel.UserGroup = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-user-group-category' - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,preventRender: true ,usergroup: config.record.id ,autoHeight: true @@ -247,7 +209,7 @@ MODx.panel.UserGroup = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-user-group-source' - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,preventRender: true ,usergroup: config.record.id ,autoHeight: true @@ -269,7 +231,7 @@ MODx.panel.UserGroup = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-user-group-namespace' - ,cls:'main-wrapper' + ,cls: 'main-wrapper' ,preventRender: true ,usergroup: config.record.id ,autoHeight: true @@ -277,6 +239,44 @@ MODx.panel.UserGroup = function(config) { }] }] }] + },{ + title: _('users') + ,hideMode: 'offsets' + ,layout: 'form' + ,id: 'modx-usergroup-users-panel' + ,items: [{ + html: '

    '+_('user_group_user_access_msg')+'

    ' + ,xtype: 'modx-description' + },{ + xtype: 'modx-grid-user-group-users' + ,cls: 'main-wrapper' + ,preventRender: true + ,usergroup: config.record.id + ,autoHeight: true + ,width: '97%' + ,listeners: { + 'afterRemoveRow': {fn:this.markDirty,scope:this} + ,'updateRole': {fn:this.markDirty,scope:this} + ,'addUser': {fn:this.markDirty,scope:this} + } + }] + },{ + title: _('settings') + ,forceLayout: true + ,hideMode: 'offsets' + ,layout: 'form' + ,items: [{ + html: '

    '+_('user_group_settings_desc')+'

    ' + ,xtype: 'modx-description' + },{ + xtype: 'modx-grid-group-settings' + ,urlFilters: ['namespace', 'area', 'query'] + ,cls: 'main-wrapper' + ,preventRender: true + ,group: config.record.id + ,autoHeight: true + ,width: '97%' + }] }] }] ,useLoadingMask: false @@ -367,11 +367,16 @@ MODx.grid.UserGroupUsers = function(config) { }, scope: this } }] ,tbar: [{ + text: _('user_group_update') + ,cls: 'primary-button' + ,handler: this.updateUserGroup + ,hidden: (MODx.perm.usergroup_edit == 0 || config.ownerCt.id != 'modx-tree-panel-usergroup') + },'->',{ text: _('user_group_user_add') - ,cls:'primary-button' - ,handler: this.addMember + ,cls: 'primary-button' + ,handler: this.addUser ,hidden: MODx.perm.usergroup_user_edit == 0 - },'->',{ + },{ xtype: 'textfield' ,id: 'modx-ugu-filter-username' ,cls: 'x-form-filter' @@ -399,7 +404,7 @@ MODx.grid.UserGroupUsers = function(config) { }] }); MODx.grid.UserGroupUsers.superclass.constructor.call(this,config); - this.addEvents('updateRole','addMember'); + this.addEvents('updateRole','addUser'); }; Ext.extend(MODx.grid.UserGroupUsers,MODx.grid.Grid,{ getMenu: function() { @@ -418,15 +423,9 @@ Ext.extend(MODx.grid.UserGroupUsers,MODx.grid.Grid,{ return m; } - ,searchUser: function(tf,nv,ov) { - this.getStore().baseParams['username'] = Ext.getCmp('modx-ugu-filter-username').getValue(); - this.getBottomToolbar().changePage(1); - } - - ,clearFilter: function(btn,e) { - Ext.getCmp('modx-ugu-filter-username').setValue(''); - this.getStore().baseParams['username'] = ''; - this.getBottomToolbar().changePage(1); + ,updateUserGroup: function() { + var id = this.config.usergroup; + MODx.loadPage('security/usergroup/update', 'id=' + id); } ,updateRole: function(btn,e) { @@ -446,7 +445,7 @@ Ext.extend(MODx.grid.UserGroupUsers,MODx.grid.Grid,{ }); } - ,addMember: function(btn,e) { + ,addUser: function(btn,e) { var r = {usergroup:this.config.usergroup}; if (!this.windows['modx-window-user-group-adduser']) { @@ -457,7 +456,7 @@ Ext.extend(MODx.grid.UserGroupUsers,MODx.grid.Grid,{ ,listeners: { 'success': {fn:function(r) { this.refresh(); - this.fireEvent('addMember',r); + this.fireEvent('addUser',r); },scope:this} } }); @@ -483,6 +482,17 @@ Ext.extend(MODx.grid.UserGroupUsers,MODx.grid.Grid,{ } }); } + + ,searchUser: function(tf,nv,ov) { + this.getStore().baseParams['username'] = Ext.getCmp('modx-ugu-filter-username').getValue(); + this.getBottomToolbar().changePage(1); + } + + ,clearFilter: function(btn,e) { + Ext.getCmp('modx-ugu-filter-username').setValue(''); + this.getStore().baseParams['username'] = ''; + this.getBottomToolbar().changePage(1); + } }); Ext.reg('modx-grid-user-group-users',MODx.grid.UserGroupUsers); diff --git a/manager/assets/modext/widgets/security/modx.panel.user.js b/manager/assets/modext/widgets/security/modx.panel.user.js index 78777430c09..1c549324526 100644 --- a/manager/assets/modext/widgets/security/modx.panel.user.js +++ b/manager/assets/modext/widgets/security/modx.panel.user.js @@ -36,6 +36,7 @@ MODx.panel.User = function(config) { MODx.panel.User.superclass.constructor.call(this,config); Ext.getCmp('modx-user-panel-newpassword').getEl().dom.style.display = 'none'; Ext.getCmp('modx-user-password-genmethod-s').on('check',this.showNewPassword,this); + Ext.getCmp('modx-extended-form').disable(); }; Ext.extend(MODx.panel.User,MODx.FormPanel,{ setup: function() { @@ -231,7 +232,10 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,prefix: 'extended' ,enableDD: true ,listeners: { - 'dragdrop': {fn:function() { + 'click': {fn:function() { + Ext.getCmp('modx-extended-form').enable(); + },scope:this} + ,'dragdrop': {fn:function() { this.markDirty(); },scope:this} } @@ -277,6 +281,20 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,cls: 'danger' ,xtype: 'xcheckbox' ,inputValue: 1 + ,listeners: { + 'check': { + fn: function (e, checked) { + let blockeduntil = Ext.getCmp('modx-user-blockeduntil'); + if (checked) { + blockeduntil.enable(); + } else { + blockeduntil.disable(); + Ext.getCmp('modx-user-blockedafter').setValue(null); + } + } + ,scope: this + } + } }]; if (MODx.perm.set_sudo) { itemsRight.push({ @@ -305,6 +323,18 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,dateFormat: MODx.config.manager_date_format ,timeFormat: MODx.config.manager_time_format ,hiddenFormat: 'Y-m-d H:i:s' + ,listeners: { + 'beforerender': { + fn: function (e) { + let blocked = Ext.getCmp('modx-user-blocked'); + if (blocked.checked) { + e.enable(); + } else { + e.disable(); + } + } + } + } },{ id: 'modx-user-blockedafter' ,name: 'blockedafter' @@ -387,7 +417,7 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,description: _('user_class_key_desc') ,xtype: 'textfield' ,anchor: '100%' - ,value: 'modUser' + ,value: 'MODX\\Revolution\\modUser' },{ id: 'modx-user-comment' ,name: 'comment' @@ -490,6 +520,7 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,fieldLabel: _('username') ,description: _('user_username_desc') ,xtype: 'textfield' + ,allowBlank: false ,anchor: '100%' ,autoCreate: {tag: "input", type: "text", size: "20", autocomplete: "off", msgTarget: "under"} ,listeners: { @@ -513,7 +544,8 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,anchor: '100%' ,maxLength: 255 },{ - fieldLabel: _('user_photo') + id: 'modx-user-photo' + ,fieldLabel: _('user_photo') ,name: 'photo' ,xtype: 'modx-combo-browser' ,hideFiles: true @@ -602,7 +634,6 @@ Ext.extend(MODx.panel.User,MODx.FormPanel,{ ,fieldLabel: _('user_country') ,xtype: 'modx-combo-country' ,anchor: '100%' - ,value: '' },{ layout: 'column' ,border: false diff --git a/manager/assets/modext/widgets/security/modx.tree.resource.group.js b/manager/assets/modext/widgets/security/modx.tree.resource.group.js index 7ec5545c1e0..4a7a739b316 100644 --- a/manager/assets/modext/widgets/security/modx.tree.resource.group.js +++ b/manager/assets/modext/widgets/security/modx.tree.resource.group.js @@ -12,6 +12,7 @@ MODx.tree.ResourceGroup = function(config) { title: _('resource_groups') ,url: MODx.config.connector_url ,action: 'Security/ResourceGroup/GetNodes' + ,rootIconCls: 'icon-files-o' ,root_id: '0' ,root_name: _('resource_groups') ,enableDrag: false @@ -102,9 +103,12 @@ Ext.extend(MODx.tree.ResourceGroup,MODx.tree.Tree,{ ,removeResourceGroup: function(item,e) { var n = this.cm.activeNode; var id = n.id.substr(2).split('_'); id = id[1]; + var resource_group = n.text; MODx.msg.confirm({ - text: _('resource_group_remove_confirm') + text: _('resource_group_remove_confirm',{ + resource_group: resource_group + }) ,url: this.config.url ,params: { action: 'Security/ResourceGroup/Remove' @@ -213,7 +217,12 @@ Ext.extend(MODx.tree.ResourceGroup,MODx.tree.Tree,{ }); Ext.reg('modx-tree-resource-group',MODx.tree.ResourceGroup); - +/** + * @class MODx.window.CreateResourceGroup + * @extends MODx.Window + * @param {Object} config An object of configuration resource groups + * @xtype modx-window-resourcegroup-create + */ MODx.window.CreateResourceGroup = function(config) { config = config || {}; this.ident = config.ident || 'modx-crgrp'+Ext.id(); @@ -330,6 +339,12 @@ MODx.window.CreateResourceGroup = function(config) { Ext.extend(MODx.window.CreateResourceGroup,MODx.Window); Ext.reg('modx-window-resourcegroup-create',MODx.window.CreateResourceGroup); +/** + * @class MODx.window.UpdateResourceGroup + * @extends MODx.Window + * @param {Object} config An object of configuration resource groups + * @xtype modx-window-resourcegroup-update + */ MODx.window.UpdateResourceGroup = function(config) { config = config || {}; this.ident = config.ident || 'urgrp'+Ext.id(); diff --git a/manager/assets/modext/widgets/security/modx.tree.user.group.js b/manager/assets/modext/widgets/security/modx.tree.user.group.js index 65fea249b3f..2a9f631c9bf 100644 --- a/manager/assets/modext/widgets/security/modx.tree.user.group.js +++ b/manager/assets/modext/widgets/security/modx.tree.user.group.js @@ -14,6 +14,7 @@ MODx.tree.UserGroup = function(config) { ,url: MODx.config.connector_url ,action: 'Security/Group/GetNodes' ,sortAction: 'Security/Group/Sort' + ,rootIconCls: 'icon-group' ,root_id: 'n_ug_0' ,root_name: _('user_groups') ,enableDrag: true @@ -143,10 +144,12 @@ Ext.extend(MODx.tree.UserGroup,MODx.tree.Tree,{ ,removeUserGroup: function(item,e) { var n = this.cm.activeNode; var id = n.id.substr(2).split('_');id = id[1]; + var user_group = n.text; MODx.msg.confirm({ - title: _('warning') - ,text: _('user_group_remove_confirm') + text: _('user_group_remove_confirm',{ + user_group: user_group + }) ,url: this.config.url ,params: { action: 'Security/Group/Remove' @@ -164,8 +167,7 @@ Ext.extend(MODx.tree.UserGroup,MODx.tree.Tree,{ var group_id = n.parentNode.id.substr(2).split('_');group_id = group_id[1]; MODx.msg.confirm({ - title: _('warning') - ,text: _('user_group_user_remove_confirm') + text: _('user_group_user_remove_confirm') ,url: this.config.url ,params: { action: 'Security/Group/User/Remove' @@ -195,6 +197,12 @@ Ext.extend(MODx.tree.UserGroup,MODx.tree.Tree,{ }); Ext.reg('modx-tree-usergroup',MODx.tree.UserGroup); +/** + * @class MODx.window.CreateUserGroup + * @extends MODx.Window + * @param {Object} config An object of configuration user groups + * @xtype modx-window-usergroup-create + */ MODx.window.CreateUserGroup = function(config) { config = config || {}; this.ident = config.ident || 'cugrp'+Ext.id(); @@ -280,7 +288,6 @@ MODx.window.CreateUserGroup = function(config) { ,forId: this.ident+'-aw-resource-groups' ,html: _('user_group_aw_resource_groups_desc') ,cls: 'desc-under' - },{ boxLabel: _('user_group_aw_parallel') ,description: _('user_group_aw_parallel_desc') @@ -311,12 +318,11 @@ MODx.window.CreateUserGroup = function(config) { ,forId: this.ident+'-aw-contexts' ,html: _('user_group_aw_contexts_desc') ,cls: 'desc-under' - },{ xtype: 'modx-combo-policy' ,baseParams: { action: 'Security/Access/Policy/GetList' - ,group: 'Admin' + ,group: 'Administrator' ,combo: '1' } ,name: 'aw_manager_policy' @@ -330,7 +336,6 @@ MODx.window.CreateUserGroup = function(config) { ,forId: this.ident+'-aw-manager-policy' ,html: _('user_group_aw_manager_policy_desc') ,cls: 'desc-under' - },{ fieldLabel: _('user_group_aw_categories') ,description: _('user_group_aw_categories_desc') @@ -344,7 +349,6 @@ MODx.window.CreateUserGroup = function(config) { ,forId: this.ident+'-aw-categories' ,html: _('user_group_aw_categories_desc') ,cls: 'desc-under' - }] }] }] @@ -356,6 +360,12 @@ MODx.window.CreateUserGroup = function(config) { Ext.extend(MODx.window.CreateUserGroup,MODx.Window); Ext.reg('modx-window-usergroup-create',MODx.window.CreateUserGroup); +/** + * @class MODx.window.AddUserToUserGroup + * @extends MODx.Window + * @param {Object} config An object of configuration user groups + * @xtype modx-window-usergroup-adduser + */ MODx.window.AddUserToUserGroup = function(config) { config = config || {}; this.ident = config.ident || 'adtug'+Ext.id(); diff --git a/manager/assets/modext/widgets/source/modx.grid.source.access.js b/manager/assets/modext/widgets/source/modx.grid.source.access.js index bec169e3681..252dbe6fb04 100644 --- a/manager/assets/modext/widgets/source/modx.grid.source.access.js +++ b/manager/assets/modext/widgets/source/modx.grid.source.access.js @@ -11,7 +11,7 @@ MODx.grid.MediaSourceAccess = function(config) { Ext.applyIf(config,{ id: 'modx-grid-source-access' ,fields: ['id','target','target_name','principal_class','principal','principal_name','authority','authority_name','policy','policy_name','context_key'] - ,type: 'modAccessMediaSource' + ,type: 'MODX\\Revolution\\Sources\\modAccessMediaSource' ,paging: true ,columns: [{ header: _('user_group') @@ -140,7 +140,7 @@ Ext.extend(MODx.grid.MediaSourceAccess,MODx.grid.LocalGrid,{ ,params: { action: 'Security/Access/RemoveAcl' ,id: this.menu.record.id - ,type: this.config.type || 'modAccessMediaSource' + ,type: this.config.type || 'MODX\\Revolution\\Sources\\modAccessMediaSource' } ,listeners: { 'success': {fn:this.refresh,scope:this} @@ -162,7 +162,7 @@ MODx.window.CreateSourceAccess = function(config) { Ext.applyIf(config,{ title: _('source_access_add') - ,type: 'modAccessMediaSource' + ,type: 'MODX\\Revolution\\Sources\\modAccessMediaSource' ,acl: 0 ,fields: [{ xtype: 'hidden' diff --git a/manager/assets/modext/widgets/source/modx.grid.source.properties.js b/manager/assets/modext/widgets/source/modx.grid.source.properties.js index a99c1746b5b..9551e189de9 100644 --- a/manager/assets/modext/widgets/source/modx.grid.source.properties.js +++ b/manager/assets/modext/widgets/source/modx.grid.source.properties.js @@ -39,7 +39,7 @@ MODx.grid.SourceProperties = function(config) { ,sortable: true }] ,tbar: [{ - text: _('property_create') + text: _('create') ,id: 'modx-btn-property-create' ,cls: 'primary-button' ,handler: this.create @@ -201,7 +201,7 @@ Ext.extend(MODx.grid.SourceProperties,MODx.grid.LocalProperty,{ e.preventDefault(); this.menu.removeAll(); this.addContextMenuItem([{ - text: _('properties_remove') + text: _('delete') ,handler: this.removeMultiple ,scope: this }]); @@ -218,7 +218,7 @@ Ext.extend(MODx.grid.SourceProperties,MODx.grid.LocalProperty,{ var r = this.menu.record; var m = [] m.push({ - text: _('property_update') + text: _('edit') ,scope: this ,handler: this.update }); @@ -232,7 +232,7 @@ Ext.extend(MODx.grid.SourceProperties,MODx.grid.LocalProperty,{ } if (r.overridden != 1) { m.push({ - text: _('property_remove') + text: _('delete') ,scope: this ,handler: this.remove.createDelegate(this,[{ title: _('warning') @@ -285,7 +285,7 @@ MODx.grid.SourcePropertyOption = function(config) { ,editor: { xtype: 'textfield' ,allowBlank: true } }] ,tbar: [{ - text: _('property_option_create') + text: _('create') ,cls: 'primary-button' ,handler: this.create ,scope: this @@ -312,7 +312,7 @@ Ext.extend(MODx.grid.SourcePropertyOption,MODx.grid.LocalGrid,{ ,getMenu: function() { return [{ - text: _('property_option_remove') + text: _('delete') ,scope: this ,handler: this.remove.createDelegate(this,[{ title: _('warning') @@ -332,7 +332,7 @@ Ext.reg('modx-grid-source-property-options',MODx.grid.SourcePropertyOption); MODx.window.CreateSourceProperty = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('property_create') + title: _('create') ,id: 'modx-window-source-property-create' ,saveBtnText: _('done') ,fields: [{ @@ -426,7 +426,7 @@ Ext.reg('modx-window-source-property-create',MODx.window.CreateSourceProperty); MODx.window.UpdateSourceProperty = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('property_update') + title: _('edit') ,id: 'modx-window-source-property-update' ,saveBtnText: _('done') ,forceLayout: true @@ -542,7 +542,7 @@ Ext.reg('modx-window-source-property-update',MODx.window.UpdateSourceProperty); MODx.window.CreateSourcePropertyOption = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('property_option_create') + title: _('create') ,id: 'modx-window-source-property-option-create' ,saveBtnText: _('done') ,fields: [{ diff --git a/manager/assets/modext/widgets/source/modx.panel.sources.js b/manager/assets/modext/widgets/source/modx.panel.sources.js index f6a0ceed6d8..92bf21277b5 100644 --- a/manager/assets/modext/widgets/source/modx.panel.sources.js +++ b/manager/assets/modext/widgets/source/modx.panel.sources.js @@ -25,6 +25,7 @@ MODx.panel.Sources = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-sources' + ,urlFilters: ['query'] ,cls: 'main-wrapper' ,preventRender: true }] @@ -101,7 +102,7 @@ MODx.grid.Sources = function(config) { ,renderer: Ext.util.Format.htmlEncode }] ,tbar: [{ - text: _('source_create') + text: _('create') ,handler: { xtype: 'modx-window-source-create' ,blankValues: true } ,cls:'primary-button' },{ @@ -117,15 +118,33 @@ MODx.grid.Sources = function(config) { ,id: 'modx-source-search' ,cls: 'x-form-filter' ,emptyText: _('search_ellipsis') + ,value: MODx.request.query ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(cmp) { - new Ext.KeyMap(cmp.getEl(), { - key: Ext.EventObject.ENTER - ,fn: this.blur - ,scope: cmp - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.sourceSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.query) { + this.sourceSearch(cb, cb.value); + MODx.request.query = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -158,20 +177,20 @@ Ext.extend(MODx.grid.Sources,MODx.grid.Grid,{ } else { if (p.indexOf('pupdate') != -1) { m.push({ - text: _('source_update') + text: _('edit') ,handler: this.updateSource }); } if (p.indexOf('pduplicate') != -1) { m.push({ - text: _('source_duplicate') + text: _('duplicate') ,handler: this.duplicateSource }); } if (p.indexOf('premove') != -1 && r.data.id != 1 && r.data.name != 'Filesystem') { if (m.length > 0) m.push('-'); m.push({ - text: _('source_remove') + text: _('delete') ,handler: this.removeSource }); } @@ -204,7 +223,7 @@ Ext.extend(MODx.grid.Sources,MODx.grid.Grid,{ ,removeSource: function() { MODx.msg.confirm({ - title: _('source_remove') + title: _('delete') ,text: _('source_remove_confirm') ,url: this.config.url ,params: { @@ -239,18 +258,22 @@ Ext.extend(MODx.grid.Sources,MODx.grid.Grid,{ return true; } - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.query = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + ,sourceSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.query = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var sourceSearch = Ext.getCmp('modx-source-search'); + s.baseParams = { action: 'Source/GetList' }; - Ext.getCmp('modx-source-search').reset(); + MODx.request.query = ''; + sourceSearch.setValue(''); + this.replaceState(); this.getBottomToolbar().changePage(1); } }); @@ -267,7 +290,7 @@ Ext.reg('modx-grid-sources',MODx.grid.Sources); MODx.window.CreateSource = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('source_create') + title: _('create') ,url: MODx.config.connector_url ,autoHeight: true ,action: 'Source/Create' diff --git a/manager/assets/modext/widgets/system/modx.grid.content.type.js b/manager/assets/modext/widgets/system/modx.grid.content.type.js index 9d9d145ff3c..16bda8b568a 100644 --- a/manager/assets/modext/widgets/system/modx.grid.content.type.js +++ b/manager/assets/modext/widgets/system/modx.grid.content.type.js @@ -99,7 +99,7 @@ MODx.grid.ContentType = function(config) { ,hidden: true }] ,tbar: [{ - text: _('content_type_new') + text: _('create') ,cls: 'primary-button' ,handler: this.newContentType ,scope: this @@ -111,11 +111,11 @@ Ext.extend(MODx.grid.ContentType,MODx.grid.Grid,{ getMenu: function() { var m = []; m.push({ - text: _('content_type_edit') + text: _('edit') ,handler: function(btn, e) { var window = new MODx.window.CreateContentType({ record: this.menu.record - ,title: _('content_type_edit') + ,title: _('edit') ,action: 'System/ContentType/Update' ,listeners: { success: { @@ -130,7 +130,7 @@ Ext.extend(MODx.grid.ContentType,MODx.grid.Grid,{ ,scope: this }); m.push({ - text: _('content_type_remove') + text: _('delete') ,handler: this.confirm.createDelegate(this,['System/ContentType/Remove',_('content_type_remove_confirm')]) }); @@ -167,7 +167,7 @@ MODx.window.CreateContentType = function(config) { config = config || {}; this.ident = config.ident || 'modx-cct'+Ext.id(); Ext.applyIf(config,{ - title: _('content_type_new') + title: _('create') ,width: 600 ,url: MODx.config.connector_url ,action: 'System/ContentType/Create' @@ -336,7 +336,7 @@ MODx.ContentTypeHeaderGrid = function(config) { ,deferredRender: true ,autoHeight: true ,tbar: [{ - text: _('new') + text: _('create') ,cls: 'primary-button' ,handler: this.add ,scope: this @@ -383,7 +383,7 @@ Ext.extend(MODx.ContentTypeHeaderGrid, MODx.grid.LocalGrid, { }); m.push({ - text: _('remove') + text: _('delete') ,handler: this.remove ,scope: this }); diff --git a/manager/assets/modext/widgets/system/modx.grid.context.js b/manager/assets/modext/widgets/system/modx.grid.context.js index 136c953dbad..c4de4effded 100644 --- a/manager/assets/modext/widgets/system/modx.grid.context.js +++ b/manager/assets/modext/widgets/system/modx.grid.context.js @@ -25,6 +25,7 @@ MODx.panel.Contexts = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-contexts' + ,urlFilters: ['search'] ,cls:'main-wrapper' ,preventRender: true }] @@ -88,7 +89,7 @@ MODx.grid.Context = function(config) { ,editor: { xtype: 'numberfield' } }] ,tbar: [{ - text: _('context_create') + text: _('create') ,cls:'primary-button' ,handler: this.create ,scope: this @@ -98,15 +99,33 @@ MODx.grid.Context = function(config) { ,id: 'modx-ctx-search' ,cls: 'x-form-filter' ,emptyText: _('search_ellipsis') + ,value: MODx.request.search ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(cmp) { - new Ext.KeyMap(cmp.getEl(), { - key: Ext.EventObject.ENTER - ,fn: this.blur - ,scope: cmp - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.ctxSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.search) { + this.ctxSearch(cb, cb.value); + MODx.request.search = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -131,7 +150,7 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ var m = []; if (p.indexOf('pnew') != -1) { m.push({ - text: _('context_duplicate') + text: _('duplicate') ,handler: this.duplicateContext ,scope: this }); @@ -139,7 +158,7 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ if (p.indexOf('pedit') != -1) { m.push({ - text: _('context_update') + text: _('edit') ,handler: this.updateContext }); } @@ -147,7 +166,7 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ if (p.indexOf('premove') != -1) { m.push('-'); m.push({ - text: _('context_remove') + text: _('delete') ,handler: this.remove ,scope: this }); @@ -160,14 +179,14 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ this.createWindow.destroy(); } this.createWindow = MODx.load({ - xtype : 'modx-window-context-create', - closeAction :'close', - listeners : { - 'success' : { - fn : function() { + xtype: 'modx-window-context-create', + closeAction:'close', + listeners: { + 'success': { + fn: function() { this.afterAction(); }, - scope : this + scope: this } } }); @@ -201,36 +220,40 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ ,remove: function(btn, e) { MODx.msg.confirm({ - title : _('warning'), - text : _('context_remove_confirm'), - url : this.config.url, - params : { - action : 'Context/Remove', - key : this.menu.record.key + title: _('warning'), + text: _('context_remove_confirm'), + url: this.config.url, + params: { + action: 'Context/Remove', + key: this.menu.record.key }, - listeners : { - 'success' : { - fn : function() { + listeners: { + 'success': { + fn: function() { this.afterAction(); }, - scope : this + scope: this } } }); } - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.search = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + ,ctxSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.search = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var ctxSearch = Ext.getCmp('modx-ctx-search'); + s.baseParams = { action: 'Context/GetList' }; - Ext.getCmp('modx-ctx-search').reset(); + MODx.request.search = ''; + ctxSearch.setValue(''); + this.replaceState(); this.getBottomToolbar().changePage(1); } @@ -251,7 +274,7 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ actions.push({ action: 'updateContext', icon: 'pencil-square-o', - text: _('context_update') + text: _('edit') }); } @@ -259,7 +282,7 @@ Ext.extend(MODx.grid.Context,MODx.grid.Grid,{ actions.push({ action: 'remove', icon: 'trash-o', - text: _('context_remove') + text: _('delete') }); } @@ -279,7 +302,7 @@ Ext.reg('modx-grid-contexts',MODx.grid.Context); MODx.window.CreateContext = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('context_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Context/Create' ,fields: [{ diff --git a/manager/assets/modext/widgets/system/modx.grid.context.settings.js b/manager/assets/modext/widgets/system/modx.grid.context.settings.js index 3d3f55f3ef3..31cfa78e324 100644 --- a/manager/assets/modext/widgets/system/modx.grid.context.settings.js +++ b/manager/assets/modext/widgets/system/modx.grid.context.settings.js @@ -22,7 +22,7 @@ MODx.grid.ContextSettings = function(config) { ,fk: config.context_key ,save_action: 'Context/Setting/UpdateFromGrid' ,tbar: [{ - text: _('create_new') + text: _('create') ,scope: this ,cls:'primary-button' ,handler: { @@ -97,7 +97,7 @@ MODx.window.UpdateContextSetting = function(config) { config = config || {}; var r = config.record; Ext.applyIf(config,{ - title: _('setting_update') + title: _('edit') ,action: 'Context/Setting/Update' ,fk: r.context_key }); diff --git a/manager/assets/modext/widgets/system/modx.grid.dashboard.widgets.js b/manager/assets/modext/widgets/system/modx.grid.dashboard.widgets.js index da6bb22b185..3276effc04f 100644 --- a/manager/assets/modext/widgets/system/modx.grid.dashboard.widgets.js +++ b/manager/assets/modext/widgets/system/modx.grid.dashboard.widgets.js @@ -51,7 +51,7 @@ MODx.grid.DashboardWidgets = function(config) { ,sortable: true }] ,tbar: [{ - text: _('widget_create') + text: _('create') ,cls:'primary-button' ,handler: this.createDashboard ,scope: this @@ -109,14 +109,14 @@ Ext.extend(MODx.grid.DashboardWidgets,MODx.grid.Grid,{ } else { if (p.indexOf('pupdate') != -1) { m.push({ - text: _('widget_update') + text: _('edit') ,handler: this.updateWidget }); } if (p.indexOf('premove') != -1) { if (m.length > 0) m.push('-'); m.push({ - text: _('widget_unplace') + text: _('delete') ,handler: this.removeWidget }); } @@ -136,7 +136,7 @@ Ext.extend(MODx.grid.DashboardWidgets,MODx.grid.Grid,{ ,removeWidget: function() { MODx.msg.confirm({ - title: _('widget_remove') + title: _('delete') ,text: _('widget_remove_confirm') ,url: this.config.url ,params: { diff --git a/manager/assets/modext/widgets/system/modx.grid.system.event.js b/manager/assets/modext/widgets/system/modx.grid.system.event.js index 511ee25ea33..d2f52004482 100644 --- a/manager/assets/modext/widgets/system/modx.grid.system.event.js +++ b/manager/assets/modext/widgets/system/modx.grid.system.event.js @@ -42,7 +42,7 @@ MODx.grid.SystemEvent = function(config) { ,hidden: true }] ,tbar: [{ - text: _('system_events.create') + text: _('create') ,scope: this ,cls:'primary-button' ,handler: { @@ -87,7 +87,7 @@ Ext.extend(MODx.grid.SystemEvent,MODx.grid.Grid,{ var m = []; if (this.menu.record.service == 6) { /* user defined */ m.push({ - text: _('system_events.remove') + text: _('delete') ,handler: this.removeEvent }); } @@ -112,7 +112,7 @@ Ext.extend(MODx.grid.SystemEvent,MODx.grid.Grid,{ ,removeEvent: function(btn, e) { MODx.msg.confirm({ - title: _('system_events.remove') + title: _('delete') ,text: _('system_events.remove_confirm', { name: this.menu.record.name }) ,url: this.config.url ,params: { @@ -146,7 +146,7 @@ Ext.reg('modx-grid-system-event',MODx.grid.SystemEvent); MODx.window.CreateUpdateEvent = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('system_events.create') + title: _('create') ,width: 450 ,autoHeight: true ,url: config.url diff --git a/manager/assets/modext/widgets/system/modx.panel.context.js b/manager/assets/modext/widgets/system/modx.panel.context.js index e1a560fdf72..5aa9cb02786 100644 --- a/manager/assets/modext/widgets/system/modx.panel.context.js +++ b/manager/assets/modext/widgets/system/modx.panel.context.js @@ -41,7 +41,7 @@ MODx.panel.Context = function(config) { ,fieldLabel: _('name') ,name: 'name' ,width: 300 - ,maxLength: 255 + ,maxLength: 191 },{ xtype: 'textarea' ,fieldLabel: _('description') diff --git a/manager/assets/modext/widgets/system/modx.panel.dashboard.widget.js b/manager/assets/modext/widgets/system/modx.panel.dashboard.widget.js index ce0655378c8..d968eb3a09b 100644 --- a/manager/assets/modext/widgets/system/modx.panel.dashboard.widget.js +++ b/manager/assets/modext/widgets/system/modx.panel.dashboard.widget.js @@ -216,7 +216,12 @@ MODx.panel.DashboardWidget = function(config) { ,prefix: 'properties' ,enableDD: true ,listeners: { - 'dragdrop': {fn:this.markDirty,scope:this} + 'click': {fn:function() { + Ext.getCmp('modx-extended-form').enable(); + },scope:this} + ,'dragdrop': {fn:function() { + this.markDirty(); + },scope:this} } } },{ @@ -263,6 +268,7 @@ MODx.panel.DashboardWidget = function(config) { } }); MODx.panel.DashboardWidget.superclass.constructor.call(this,config); + Ext.getCmp('modx-extended-form').disable(); }; Ext.extend(MODx.panel.DashboardWidget,MODx.FormPanel,{ initialized: false @@ -335,6 +341,7 @@ MODx.grid.DashboardWidgetDashboards = function(config) { config = config || {}; Ext.applyIf(config,{ id: 'modx-grid-dashboard-widget-dashboards' + ,showActionsColumn: false ,url: MODx.config.connector_url ,action: 'System/Dashboard/GetList' ,fields: ['id','name','description'] diff --git a/manager/assets/modext/widgets/system/modx.panel.dashboards.js b/manager/assets/modext/widgets/system/modx.panel.dashboards.js index d5fb5f41931..52dac64321a 100644 --- a/manager/assets/modext/widgets/system/modx.panel.dashboards.js +++ b/manager/assets/modext/widgets/system/modx.panel.dashboards.js @@ -95,7 +95,7 @@ MODx.grid.Dashboards = function(config) { ,editor: { xtype: 'textarea' } }] ,tbar: [{ - text: _('dashboard_create') + text: _('create') ,cls:'primary-button' ,handler: this.createDashboard ,scope: this @@ -171,20 +171,20 @@ Ext.extend(MODx.grid.Dashboards,MODx.grid.Grid,{ } else { if (p.indexOf('pupdate') != -1) { m.push({ - text: _('dashboard_update') + text: _('edit') ,handler: this.updateDashboard }); } if (p.indexOf('pduplicate') != -1) { m.push({ - text: _('dashboard_duplicate') + text: _('duplicate') ,handler: this.duplicateDashboard }); } if (p.indexOf('premove') != -1 && r.data.id != 1 && r.data.name != 'Default') { if (m.length > 0) m.push('-'); m.push({ - text: _('dashboard_remove') + text: _('delete') ,handler: this.removeDashboard }); } @@ -217,7 +217,7 @@ Ext.extend(MODx.grid.Dashboards,MODx.grid.Grid,{ ,removeDashboard: function() { MODx.msg.confirm({ - title: _('dashboard_remove') + title: _('delete') ,text: _('dashboard_remove_confirm') ,url: this.config.url ,params: { diff --git a/manager/assets/modext/widgets/system/modx.tree.directory.js b/manager/assets/modext/widgets/system/modx.tree.directory.js index f2518e1db14..46c675c9e3e 100644 --- a/manager/assets/modext/widgets/system/modx.tree.directory.js +++ b/manager/assets/modext/widgets/system/modx.tree.directory.js @@ -39,7 +39,7 @@ MODx.tree.Directory = function(config) { },{ cls: 'x-btn-icon icon-page_white' ,tooltip: {text: _('file_create')} - ,handler: this.createFile + ,handler: this.quickCreateFile ,scope: this ,hidden: MODx.perm.file_create ? false : true },{ @@ -455,8 +455,9 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ ,quickCreateFile: function(itm,e) { var node = this.cm.activeNode; + var directory = (node) ? decodeURIComponent(node.attributes.id) : '/'; var r = { - directory: node.attributes.id + directory: directory ,source: this.getSource() }; var w = MODx.load({ @@ -516,7 +517,7 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ ,source: this.getSource() } ,listeners: { - 'success': {fn:function(r) { + 'success': {fn:function(r) { this.fireEvent('afterRename'); this.refreshActiveNode(); }, scope: this} @@ -580,7 +581,7 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ fn:function() { var parent = Ext.getCmp('folder-parent').getValue(); - if (this.cm.activeNode.constructor.name === 'constructor' || parent === '' || parent === '/') { + if ((this.cm.activeNode && this.cm.activeNode.constructor.name === 'constructor') || parent === '' || parent === '/') { this.refresh(); } else { this.refreshActiveNode(); @@ -616,8 +617,11 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ ,removeDirectory: function(item,e) { var node = this.cm.activeNode; + var directory = node.attributes.text; MODx.msg.confirm({ - text: _('file_folder_remove_confirm') + text: _('file_folder_remove_confirm',{ + directory: directory + }) ,url: MODx.config.connector_url ,params: { action: 'Browser/Directory/Remove' @@ -636,12 +640,16 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ ,removeFile: function(item,e) { var node = this.cm.activeNode; + var fileName = node.attributes.text; + var filePath = node.attributes.pathRelative; MODx.msg.confirm({ - text: _('file_confirm_remove') + text: _('file_remove_confirm',{ + file: fileName + }) ,url: MODx.config.connector_url ,params: { action: 'Browser/File/Remove' - ,file: node.attributes.pathRelative + ,file: filePath ,wctx: MODx.ctx || '' ,source: this.getSource() } @@ -683,22 +691,7 @@ Ext.extend(MODx.tree.Directory,MODx.tree.Tree,{ ,downloadFile: function(item,e) { var node = this.cm.activeNode; - MODx.Ajax.request({ - url: MODx.config.connector_url - ,params: { - action: 'Browser/File/Download' - ,file: node.attributes.pathRelative - ,wctx: MODx.ctx || '' - ,source: this.getSource() - } - ,listeners: { - 'success':{fn:function(r) { - if (!Ext.isEmpty(r.object.url)) { - location.href = MODx.config.connector_url+'?action=Browser/File/Download&download=1&file='+r.object.url+'&HTTP_MODAUTH='+MODx.siteId+'&source='+this.getSource()+'&wctx='+MODx.ctx; - } - },scope:this} - } - }); + location.href = MODx.config.connector_url+'?action=Browser/File/Download&download=1&file='+node.attributes.pathRelative+'&HTTP_MODAUTH='+MODx.siteId+'&source='+this.getSource()+'&wctx='+MODx.ctx; } ,copyRelativePath: function(item,e) { @@ -802,6 +795,11 @@ MODx.window.CreateDirectory = function(config) { ,name: 'parent' ,xtype: 'textfield' ,anchor: '100%' + },{ + xtype: 'label' + ,forId: 'folder-parent' + ,html: _('file_folder_parent_desc') + ,cls: 'desc-under' }] }); MODx.window.CreateDirectory.superclass.constructor.call(this,config); @@ -842,7 +840,7 @@ MODx.window.SetVisibility = function(config) { ,xtype: 'modx-combo-visibility' ,anchor: '100%' ,allowBlank: false - }, { + },{ hideLabel: true ,xtype: 'displayfield' ,value: _('file_folder_visibility_desc') @@ -991,7 +989,7 @@ MODx.window.QuickUpdateFile = function(config) { ,anchor: '100%' ,height: 200 }] - ,keys: [{ + ,keys: [{ key: Ext.EventObject.ENTER ,shift: true ,fn: this.submit @@ -1046,6 +1044,10 @@ MODx.window.QuickCreateFile = function(config) { ,submitValue: true ,xtype: 'statictextfield' ,anchor: '100%' + },{ + xtype: 'label' + ,html: _('file_folder_parent_desc') + ,cls: 'desc-under' },{ fieldLabel: _('name') ,name: 'name' @@ -1059,7 +1061,7 @@ MODx.window.QuickCreateFile = function(config) { ,anchor: '100%' ,height: 200 }] - ,keys: [{ + ,keys: [{ key: Ext.EventObject.ENTER ,shift: true ,fn: this.submit @@ -1070,5 +1072,3 @@ MODx.window.QuickCreateFile = function(config) { }; Ext.extend(MODx.window.QuickCreateFile,MODx.Window); Ext.reg('modx-window-file-quick-create',MODx.window.QuickCreateFile); - - diff --git a/manager/assets/modext/widgets/system/modx.tree.menu.js b/manager/assets/modext/widgets/system/modx.tree.menu.js index 86ee2ebe57f..ebd144af07a 100644 --- a/manager/assets/modext/widgets/system/modx.tree.menu.js +++ b/manager/assets/modext/widgets/system/modx.tree.menu.js @@ -12,7 +12,7 @@ MODx.tree.Menu = function(config) { rootIconCls: 'icon-navicon' ,rootId: 'n_' ,rootName: _('menu_top') - ,rootVisible: true + ,rootVisible: false ,expandFirst: true ,enableDrag: true ,enableDrop: true @@ -23,7 +23,7 @@ MODx.tree.Menu = function(config) { ,useDefaultToolbar: true ,ddGroup: 'modx-menu' ,tbar: [{ - text: _('menu_create') + text: _('create') ,cls:'primary-button' ,handler: this.createMenu ,scope: this @@ -34,9 +34,27 @@ MODx.tree.Menu = function(config) { Ext.extend(MODx.tree.Menu, MODx.tree.Tree, { windows: {} + ,_handleDrop: function (dropEvent) { + var node = dropEvent.target; + if (node.isRoot) return false; + + if ((dropEvent.point === 'above') || (dropEvent.point === 'below')) { + if (dropEvent.target.parentNode.isRoot) { + return false; + } + } + + if (!Ext.isEmpty(node.attributes.treeHandler)) { + var h = Ext.getCmp(node.attributes.treeHandler); + if (h) { + return h.handleDrop(this,dropEvent); + } + } + } + ,createMenu: function(n,e) { var r = { - parent: '' + parent: 'topnav' }; if (this.cm && this.cm.activeNode && this.cm.activeNode.attributes && this.cm.activeNode.attributes.data) { r['parent'] = this.cm.activeNode.attributes.data.text; @@ -63,6 +81,7 @@ Ext.extend(MODx.tree.Menu, MODx.tree.Tree, { }); this.windows.update_menu = MODx.load({ xtype: 'modx-window-menu-update' + ,isRoot: this.cm.activeNode.parentNode.isRoot ,record: r ,listeners: { 'success': {fn:function(r) { this.refresh(); },scope:this} @@ -73,13 +92,15 @@ Ext.extend(MODx.tree.Menu, MODx.tree.Tree, { } ,removeMenu: function(n,e) { + var node = this.cm.activeNode; MODx.msg.confirm({ - title: _('warning') - ,text: _('menu_confirm_remove') + text: _('menu_confirm_remove',{ + menu: node.attributes.text + }) ,url: this.config.url ,params: { action: 'System/Menu/Remove' - ,text: this.cm.activeNode.attributes.pk + ,text: node.attributes.pk } ,listeners: { 'success':{fn:this.refresh,scope:this} @@ -87,27 +108,27 @@ Ext.extend(MODx.tree.Menu, MODx.tree.Tree, { }); } - ,getMenu: function(n,e) { - var m = []; - switch (n.attributes.type) { - case 'menu': - m.push({ - text: _('menu_update') - ,handler: this.updateMenu - }); - m.push('-'); - m.push({ - text: _('menu_remove') - ,handler: this.removeMenu - }); - break; - default: - m.push({ - text: _('menu_create') - ,handler: this.createMenu - }); - break; + ,getMenu: function(node, event) { + var m = [ + { + text: _('create'), + handler: this.createMenu + } + ]; + + if (!node.parentNode.isRoot) { + m.push('-'); + m.push({ + text: _('edit'), + handler: this.updateMenu + }); + m.push('-'); + m.push({ + text: _('delete'), + handler: this.removeMenu + }); } + return m; } @@ -132,7 +153,7 @@ MODx.window.CreateMenu = function(config) { config = config || {}; this.ident = config.ident || 'modx-cmenu-'+Ext.id(); Ext.applyIf(config,{ - title: _('menu_create') + title: _('create') ,width: 600 ,url: MODx.config.connector_url ,action: 'System/Menu/Create' @@ -142,6 +163,7 @@ MODx.window.CreateMenu = function(config) { ,hiddenName: 'parent' ,anchor: '100%' ,fieldLabel: _('parent') + ,showNone: 0 },{ layout: 'column' ,border: false @@ -283,7 +305,7 @@ Ext.reg('modx-window-menu-create',MODx.window.CreateMenu); MODx.window.UpdateMenu = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('menu_update') + title: _('edit') ,action: 'System/Menu/Update' }); MODx.window.UpdateMenu.superclass.constructor.call(this,config); @@ -309,7 +331,7 @@ MODx.combo.Menu = function(config) { action: 'System/Menu/GetList' ,combo: true ,limit: 0 - ,showNone: true + ,showNone: (config.showNone === undefined) ? true : config.showNone } ,fields: ['text','text_lex'] ,displayField: 'text_lex' diff --git a/manager/assets/modext/widgets/windows.js b/manager/assets/modext/widgets/windows.js index b667fdc0c5d..09c5f3cea32 100644 --- a/manager/assets/modext/widgets/windows.js +++ b/manager/assets/modext/widgets/windows.js @@ -312,7 +312,7 @@ MODx.window.CreateNamespace = function(config) { var r = config.record; this.ident = config.ident || 'cns'+Ext.id(); Ext.applyIf(config,{ - title: _('namespace_create') + title: _('create') ,id: this.ident ,width: 600 ,url: MODx.config.connector_url @@ -368,7 +368,7 @@ MODx.window.UpdateNamespace = function(config) { config = config || {}; Ext.applyIf(config, { - title: _('namespace_update') + title: _('edit') ,action: 'Workspace/PackageNamespace/Update' ,isUpdate: true }); @@ -847,7 +847,7 @@ MODx.window.DuplicateContext = function(config) { this.ident = config.ident || 'dupctx'+Ext.id(); Ext.Ajax.timeout = 0; Ext.applyIf(config,{ - title: _('context_duplicate') + title: _('duplicate') ,id: this.ident ,url: MODx.config.connector_url ,action: 'Context/Duplicate' diff --git a/manager/assets/modext/workspace/lexicon/lexicon.grid.js b/manager/assets/modext/workspace/lexicon/lexicon.grid.js index 3f893b15074..598f52da6b8 100644 --- a/manager/assets/modext/workspace/lexicon/lexicon.grid.js +++ b/manager/assets/modext/workspace/lexicon/lexicon.grid.js @@ -43,7 +43,7 @@ MODx.grid.Lexicon = function(config) { }] ,tbar: [{ xtype: 'button' - ,text: _('entry_create') + ,text: _('create') ,cls:'primary-button' ,handler: this.createEntry ,scope: this @@ -394,7 +394,7 @@ MODx.window.LexiconEntryCreate = function(config) { this.ident = config.ident || 'lexentc'+Ext.id(); var r = config.record; Ext.applyIf(config,{ - title: _('entry_create') + title: _('create') ,url: MODx.config.connector_url ,action: 'Workspace/Lexicon/Create' ,fileUpload: true diff --git a/manager/assets/modext/workspace/namespace/modx.namespace.panel.js b/manager/assets/modext/workspace/namespace/modx.namespace.panel.js index 4c96bffb857..7f55b1c309d 100644 --- a/manager/assets/modext/workspace/namespace/modx.namespace.panel.js +++ b/manager/assets/modext/workspace/namespace/modx.namespace.panel.js @@ -10,7 +10,7 @@ MODx.panel.Namespaces = function(config) { config = config || {}; Ext.applyIf(config,{ id: 'modx-panel-namespaces' - ,cls: 'container' + ,cls: 'container' ,bodyStyle: '' ,defaults: { collapsible: false ,autoHeight: true } ,items: [{ @@ -25,7 +25,8 @@ MODx.panel.Namespaces = function(config) { ,xtype: 'modx-description' },{ xtype: 'modx-grid-namespace' - ,cls:'main-wrapper' + ,urlFilters: ['search'] + ,cls:'main-wrapper' ,preventRender: true }] }])] @@ -78,7 +79,7 @@ MODx.grid.Namespace = function(config) { ,editor: { xtype: 'textfield' } }] ,tbar: [{ - text: _('namespace_create') + text: _('create') ,handler: { xtype: 'modx-window-namespace-create' ,blankValues: true } ,cls:'primary-button' ,scope: this @@ -88,15 +89,33 @@ MODx.grid.Namespace = function(config) { ,id: 'modx-namespace-search' ,cls: 'x-form-filter' ,emptyText: _('search_ellipsis') + ,value: MODx.request.search ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(cmp) { - new Ext.KeyMap(cmp.getEl(), { - key: Ext.EventObject.ENTER - ,fn: this.blur - ,scope: cmp - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.namespaceSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.search) { + this.namespaceSearch(cb, cb.value); + MODx.request.search = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -127,12 +146,12 @@ Ext.extend(MODx.grid.Namespace,MODx.grid.Grid,{ }); } else { m.push({ - text: _('namespace_update') - ,handler: this.updateNS + text: _('edit') + ,handler: this.namespaceUpdate }); if (p.indexOf('premove') != -1 && this.menu.record.name != 'core') { m.push({ - text: _('namespace_remove') + text: _('delete') ,handler: this.remove.createDelegate(this,['namespace_remove_confirm','Workspace/PackageNamespace/Remove']) }); } @@ -140,7 +159,7 @@ Ext.extend(MODx.grid.Namespace,MODx.grid.Grid,{ return m; } - ,updateNS: function(elem, vent) { + ,namespaceUpdate: function(elem, vent) { var win = MODx.load({ xtype: 'modx-window-namespace-update' ,record: this.menu.record @@ -155,19 +174,25 @@ Ext.extend(MODx.grid.Namespace,MODx.grid.Grid,{ win.show(vent.target); } - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.search = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + ,namespaceSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.search = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } + ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var namespaceSearch = Ext.getCmp('modx-namespace-search'); + s.baseParams = { action: 'Workspace/PackageNamespace/GetList' - }; - Ext.getCmp('modx-namespace-search').reset(); - this.getBottomToolbar().changePage(1); + }; + MODx.request.search = ''; + namespaceSearch.setValue(''); + this.replaceState(); + this.getBottomToolbar().changePage(1); } + ,removeSelected: function() { var cs = this.getSelectedAsList(); if (cs === false) return false; diff --git a/manager/assets/modext/workspace/package.containers.js b/manager/assets/modext/workspace/package.containers.js index e7f5c56852d..124db463da2 100644 --- a/manager/assets/modext/workspace/package.containers.js +++ b/manager/assets/modext/workspace/package.containers.js @@ -9,33 +9,34 @@ MODx.panel.Packages = function(config) { config = config || {}; - Ext.applyIf(config,{ - layout:'card' - ,border:false - ,layoutConfig:{ deferredRender: true } - ,defaults:{ - autoHeight: true - ,autoWidth: true - ,border: false - } - ,activeItem: 0 - ,items:[{ - xtype:'modx-package-grid' - ,id:'modx-package-grid' - ,bodyCssClass: 'grid-with-buttons' - },{ - xtype: 'modx-package-beforeinstall' - ,id:'modx-package-beforeinstall' - },{ - xtype: 'modx-package-details' - ,id:'modx-package-details' - ,bodyCssClass: 'modx-template-detail' - }] - ,buttons: [{ - text: _('cancel') - ,id:'package-list-reset' - ,hidden: true - ,handler: function(btn, e){ + Ext.applyIf(config,{ + layout:'card' + ,border:false + ,layoutConfig:{ deferredRender: true } + ,defaults:{ + autoHeight: true + ,autoWidth: true + ,border: false + } + ,activeItem: 0 + ,items:[{ + xtype:'modx-package-grid' + ,urlFilters: ['search'] + ,id:'modx-package-grid' + ,bodyCssClass: 'grid-with-buttons' + },{ + xtype: 'modx-package-beforeinstall' + ,id:'modx-package-beforeinstall' + },{ + xtype: 'modx-package-details' + ,id:'modx-package-details' + ,bodyCssClass: 'modx-template-detail' + }] + ,buttons: [{ + text: _('cancel') + ,id:'package-list-reset' + ,hidden: true + ,handler: function(btn, e){ var bc = Ext.getCmp('packages-breadcrumbs'); var last = bc.data.trail[bc.data.trail.length - 2]; if (last != undefined && last.rec != undefined) { @@ -48,31 +49,31 @@ MODx.panel.Packages = function(config) { grid.install(last.rec); return; } - Ext.getCmp('modx-panel-packages').activate(); - } - ,scope: this - },{ - text: _('continue') - ,id:'package-install-btn' - ,cls:'primary-button' - ,hidden: true - ,handler: this.install + Ext.getCmp('modx-panel-packages').activate(); + } + ,scope: this + },{ + text: _('continue') + ,id:'package-install-btn' + ,cls:'primary-button' + ,hidden: true + ,handler: this.install ,disabled: false - ,scope: this - ,autoWidth: true - ,autoHeight: true - },{ - text: _('setup_options') - ,id:'package-show-setupoptions-btn' - ,cls:'primary-button' - ,hidden: true - ,handler: this.onSetupOptions - ,scope: this - ,autoWidth: true - ,autoHeight: true - }] - }); - MODx.panel.Packages.superclass.constructor.call(this,config); + ,scope: this + ,autoWidth: true + ,autoHeight: true + },{ + text: _('setup_options') + ,id:'package-show-setupoptions-btn' + ,cls:'primary-button' + ,hidden: true + ,handler: this.onSetupOptions + ,scope: this + ,autoWidth: true + ,autoHeight: true + }] + }); + MODx.panel.Packages.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.Packages,MODx.Panel,{ activate: function() { @@ -82,14 +83,14 @@ Ext.extend(MODx.panel.Packages,MODx.Panel,{ } /** - * + * * @param va ExtJS instance of the button that was clicked * @param event The Ext.EventObjectImpl from clicking the button * @param options Object containing the setup options if available, or undefined. * @returns {boolean} */ - ,install: function(va, event, options){ - options = options || {}; + ,install: function(va, event, options){ + options = options || {}; var r; var g = Ext.getCmp('modx-package-grid'); if (!g) return false; @@ -102,7 +103,7 @@ Ext.extend(MODx.panel.Packages,MODx.Panel,{ } // Load up the installation console - var topic = '/workspace/package/install/'+r.signature+'/'; + var topic = '/workspace/package/install/'+r.signature+'/'; g.loadConsole(Ext.getBody(),topic); // Grab the params to send to the install processor @@ -140,7 +141,7 @@ Ext.extend(MODx.panel.Packages,MODx.Panel,{ } this.activate(); - Ext.getCmp('modx-package-grid').refresh(); + Ext.getCmp('modx-package-grid').refresh(); },scope:this} ,'failure': {fn:function() { this.activate(); @@ -149,22 +150,22 @@ Ext.extend(MODx.panel.Packages,MODx.Panel,{ }); return true; - } - - ,onSetupOptions: function(btn){ - if(this.win == undefined){ - this.win = new MODx.window.SetupOptions({ - id: 'modx-window-setupoptions' - ,signature: btn.signature || '' - }); - } else { - this.win.signature = btn.signature || ''; + } + + ,onSetupOptions: function(btn){ + if(this.win == undefined){ + this.win = new MODx.window.SetupOptions({ + id: 'modx-window-setupoptions' + ,signature: btn.signature || '' + }); + } else { + this.win.signature = btn.signature || ''; this.win.title = _('setup_options'); - } - this.win.show(btn); - var opts = Ext.getCmp('modx-package-beforeinstall').getOptions(); - this.win.fetch(opts); - } + } + this.win.show(btn); + var opts = Ext.getCmp('modx-package-beforeinstall').getOptions(); + this.win.fetch(opts); + } }); Ext.reg('modx-panel-packages',MODx.panel.Packages); @@ -179,58 +180,58 @@ Ext.reg('modx-panel-packages',MODx.panel.Packages); MODx.panel.PackagesBrowser = function(config) { config = config || {}; - Ext.applyIf(config,{ - layout: 'column' - ,border: false - ,items:[{ - xtype: 'modx-package-browser-tree' - ,id: 'modx-package-browser-tree' - ,width: 250 - },{ - layout:'card' - ,columnWidth: 1 - ,defaults:{ border: false } - ,border:false - ,id:'package-browser-card-container' - ,layoutConfig:{ deferredRender:true } - ,items:[{ - xtype:'modx-package-browser-home' - ,id:'modx-package-browser-home' - },{ - xtype: 'modx-package-browser-repositories' - ,id: 'modx-package-browser-repositories' - },{ - xtype:'modx-package-browser-grid' - ,id:'modx-package-browser-grid' - ,bodyCssClass: 'grid-with-buttons' - },{ - xtype: 'modx-package-browser-details' - ,id: 'modx-package-browser-details' - ,bodyCssClass: 'modx-template-detail' - },{ - xtype: 'modx-package-browser-view' - ,id: 'modx-package-browser-view' - ,bodyCssClass: 'modx-template-detail' - }] - }] - }); - MODx.panel.PackagesBrowser.superclass.constructor.call(this,config); + Ext.applyIf(config,{ + layout: 'column' + ,border: false + ,items:[{ + xtype: 'modx-package-browser-tree' + ,id: 'modx-package-browser-tree' + ,width: 250 + },{ + layout:'card' + ,columnWidth: 1 + ,defaults:{ border: false } + ,border:false + ,id:'package-browser-card-container' + ,layoutConfig:{ deferredRender:true } + ,items:[{ + xtype:'modx-package-browser-home' + ,id:'modx-package-browser-home' + },{ + xtype: 'modx-package-browser-repositories' + ,id: 'modx-package-browser-repositories' + },{ + xtype:'modx-package-browser-grid' + ,id:'modx-package-browser-grid' + ,bodyCssClass: 'grid-with-buttons' + },{ + xtype: 'modx-package-browser-details' + ,id: 'modx-package-browser-details' + ,bodyCssClass: 'modx-template-detail' + },{ + xtype: 'modx-package-browser-view' + ,id: 'modx-package-browser-view' + ,bodyCssClass: 'modx-template-detail' + }] + }] + }); + MODx.panel.PackagesBrowser.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.PackagesBrowser,MODx.Panel,{ - activate: function(){ - Ext.getCmp('modx-layout').hideLeftbar(true, false); - Ext.getCmp('card-container').getLayout().setActiveItem(this.id); - Ext.getCmp('modx-package-browser-home').activate(); - this.updateBreadcrumbs(_('provider_home_msg')); - } - - ,updateBreadcrumbs: function(msg, highlight){ - var bd = { text: msg }; + activate: function(){ + Ext.getCmp('modx-layout').hideLeftbar(true, false); + Ext.getCmp('card-container').getLayout().setActiveItem(this.id); + Ext.getCmp('modx-package-browser-home').activate(); + this.updateBreadcrumbs(_('provider_home_msg')); + } + + ,updateBreadcrumbs: function(msg, highlight){ + var bd = { text: msg }; if(highlight){ bd.className = 'highlight'; } - bd.trail = [{ text : _('package_browser') }]; - Ext.getCmp('packages-breadcrumbs').updateDetail(bd); - } + bd.trail = [{ text : _('package_browser') }]; + Ext.getCmp('packages-breadcrumbs').updateDetail(bd); + } ,showWait: function(){ if (!this.wait) { diff --git a/manager/assets/modext/workspace/package.grid.js b/manager/assets/modext/workspace/package.grid.js index 3dec056aee8..2028b3699ed 100644 --- a/manager/assets/modext/workspace/package.grid.js +++ b/manager/assets/modext/workspace/package.grid.js @@ -14,24 +14,24 @@ MODx.grid.Package = function(config) { ) }); - /* Package name + action button renderer */ - this.mainColumnTpl = new Ext.XTemplate('' - +'

    {name}

    ' - +'' - +'
      ' - +'' - +'
    • ' - +'
      ' - +'
    ' - +'
    ' - +'' + /* Package name + action button renderer */ + this.mainColumnTpl = new Ext.XTemplate('' + +'

    {name}

    ' + +'' + +'
      ' + +'' + +'
    • ' + +'
      ' + +'
    ' + +'
    ' + +'' +'' +'
    {text}
    ' +'
    ' +'
    ' - +'
    ', { - compiled: true - }); + +'
    ', { + compiled: true + }); var cols = []; cols.push(this.exp); @@ -44,24 +44,24 @@ MODx.grid.Package = function(config) { if (MODx.curlEnabled) { dlbtn = { text: _('download_extras') - ,xtype: 'splitbutton' - ,cls:'primary-button' + ,xtype: 'splitbutton' + ,cls:'primary-button' ,handler: this.onDownloadMoreExtra - ,menu: { - items:[{ - text: _('provider_select') - ,handler: this.changeProvider - ,scope: this - },{ - text: _('package_search_local_title') - ,handler: this.searchLocal - ,scope: this - },{ + ,menu: { + items:[{ + text: _('provider_select') + ,handler: this.changeProvider + ,scope: this + },{ + text: _('package_search_local_title') + ,handler: this.searchLocal + ,scope: this + },{ text: _('transport_package_upload') ,handler: this.uploadTransportPackage ,scope: this }] - } + } }; } else { dlbtn = { @@ -104,15 +104,33 @@ MODx.grid.Package = function(config) { ,id: 'modx-package-search' ,cls: 'x-form-filter' ,emptyText: _('search_ellipsis') + ,value: MODx.request.search ,listeners: { - 'change': {fn: this.search, scope: this} - ,'render': {fn: function(pnl) { - new Ext.KeyMap(pnl.getEl(), { - key: Ext.EventObject.ENTER - ,fn: this.blur - ,scope: pnl - }); - },scope:this} + 'change': { + fn: function (cb, rec, ri) { + this.packageSearch(cb, rec, ri); + } + ,scope: this + }, + 'afterrender': { + fn: function (cb){ + if (MODx.request.search) { + this.packageSearch(cb, cb.value); + MODx.request.search = ''; + } + } + ,scope: this + } + ,'render': { + fn: function(cmp) { + new Ext.KeyMap(cmp.getEl(), { + key: Ext.EventObject.ENTER + ,fn: this.blur + ,scope: cmp + }); + } + ,scope: this + } } },{ xtype: 'button' @@ -148,10 +166,10 @@ MODx.grid.Package = function(config) { this.searchLocalWithoutPrompt(); }, this); }, this); - this.on('click', this.onClick, this); + this.on('click', this.onClick, this); }; Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ - console: null + console: null ,activate: function() { var west = Ext.getCmp('modx-leftbar-tabs') @@ -168,42 +186,45 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ this.updateBreadcrumbs(_('packages_desc')); } - ,updateBreadcrumbs: function(msg, highlight){ - msg = Ext.getCmp('packages-breadcrumbs').desc; + ,updateBreadcrumbs: function(msg, highlight){ + msg = Ext.getCmp('packages-breadcrumbs').desc; if(highlight){ - msg.text = msg; - msg.className = 'highlight'; - } - Ext.getCmp('packages-breadcrumbs').reset(msg); - } - - ,search: function(tf,newValue,oldValue) { - var nv = newValue || tf; - this.getStore().baseParams.search = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv; + msg.text = msg; + msg.className = 'highlight'; + } + Ext.getCmp('packages-breadcrumbs').reset(msg); + } + + ,packageSearch: function(tf,newValue,oldValue) { + var s = this.getStore(); + s.baseParams.search = newValue; + this.replaceState(); this.getBottomToolbar().changePage(1); - return true; } ,clearFilter: function() { - this.getStore().baseParams = { + var s = this.getStore(); + var packageSearch = Ext.getCmp('modx-package-search'); + s.baseParams = { action: 'Workspace/Packages/GetList' - }; - Ext.getCmp('modx-package-search').reset(); - this.getBottomToolbar().changePage(1); + }; + MODx.request.search = ''; + packageSearch.setValue(''); + this.replaceState(); + this.getBottomToolbar().changePage(1); } + /* Main column renderer */ + ,mainColumnRenderer:function (value, metaData, record, rowIndex, colIndex, store){ + var rec = record.data; + var state = (rec.installed !== null) ? ' installed' : ' not-installed'; + var values = { name: value, state: state, actions: null, message: null }; - /* Main column renderer */ - ,mainColumnRenderer:function (value, metaData, record, rowIndex, colIndex, store){ - var rec = record.data; - var state = (rec.installed !== null) ? ' installed' : ' not-installed'; - var values = { name: value, state: state, actions: null, message: null }; - - var h = []; - if(rec.installed !== null) { - h.push({ className:'uninstall', text: rec.textaction }); - h.push({ className:'reinstall', text: _('package_reinstall_action_button') }); - } else { + var h = []; + if(rec.installed !== null) { + h.push({ className:'uninstall', text: rec.textaction }); + h.push({ className:'reinstall', text: _('package_reinstall_action_button') }); + } else { h.push({ className:'install primary-button', text: rec.textaction }); } if (rec.updateable) { @@ -215,9 +236,9 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ } h.push({ className:'remove', text: _('package_remove_action_button') }); h.push({ className:'details', text: _('view_details') }); - values.actions = h; - return this.mainColumnTpl.apply(values); - } + values.actions = h; + return this.mainColumnTpl.apply(values); + } ,dateColumnRenderer: function(d,c) { switch(d) { @@ -231,89 +252,89 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ } } - ,onClick: function(e){ - var t = e.getTarget(); - var elm = t.className.split(' ')[0]; - if(elm == 'controlBtn'){ - var act = t.className.split(' ')[1]; - var record = this.getSelectionModel().getSelected(); - this.menu.record = record.data; - switch (act) { + ,onClick: function(e){ + var t = e.getTarget(); + var elm = t.className.split(' ')[0]; + if(elm == 'controlBtn'){ + var act = t.className.split(' ')[1]; + var record = this.getSelectionModel().getSelected(); + this.menu.record = record.data; + switch (act) { case 'remove': this.remove(record, e); break; case 'install': case 'reinstall': - this.install(record); + this.install(record); break; case 'uninstall': - this.uninstall(record, e); + this.uninstall(record, e); break; - case 'update': - case 'checkupdate': + case 'update': + case 'checkupdate': this.update(record, e); break; - case 'details': + case 'details': this.viewPackage(record, e); break; - default: - break; + default: + break; + } + } + } + + /* Install a package */ + ,install: function( record ){ + Ext.Ajax.request({ + url : MODx.config.connector_url + ,params : { + action : 'Workspace/Packages/GetAttribute' + ,attributes: 'license,readme,changelog,setup-options,requires' + ,signature: record.data.signature } - } - } - - /* Install a package */ - ,install: function( record ){ - Ext.Ajax.request({ - url : MODx.config.connector_url - ,params : { - action : 'Workspace/Packages/GetAttribute' - ,attributes: 'license,readme,changelog,setup-options,requires' - ,signature: record.data.signature - } - ,method: 'GET' - ,scope: this - ,success: function ( result, request ) { - this.processResult( result.responseText, record ); - } - ,failure: function ( result, request) { - Ext.MessageBox.alert(_('failed'), result.responseText); - } - }); - } - - /* Go through the install process */ - ,processResult: function( response, record ){ - var data = Ext.util.JSON.decode( response ); - - if ( data.object.license !== null && data.object.readme !== null && data.object.changelog !== null ){ - /* Show license/changelog panel */ - p = Ext.getCmp('modx-package-beforeinstall'); - p.activate(); - p.updatePanel( data.object, record ); - } - else if ( data.object['setup-options'] !== null ) { - /* No license/changelog, show setup-options */ + ,method: 'GET' + ,scope: this + ,success: function ( result, request ) { + this.processResult( result.responseText, record ); + } + ,failure: function ( result, request) { + Ext.MessageBox.alert(_('failed'), result.responseText); + } + }); + } + + /* Go through the install process */ + ,processResult: function( response, record ){ + var data = Ext.util.JSON.decode( response ); + + if ( data.object.license !== null && data.object.readme !== null && data.object.changelog !== null ){ + /* Show license/changelog panel */ + p = Ext.getCmp('modx-package-beforeinstall'); + p.activate(); + p.updatePanel( data.object, record ); + } + else if ( data.object['setup-options'] !== null ) { + /* No license/changelog, show setup-options */ Ext.getCmp('package-show-setupoptions-btn').signature = record.data.signature; - Ext.getCmp('modx-panel-packages').onSetupOptions(); - } else { - /* No license/changelog, no setup-options, install directly */ + Ext.getCmp('modx-panel-packages').onSetupOptions(); + } else { + /* No license/changelog, no setup-options, install directly */ Ext.getCmp('package-install-btn').signature = record.data.signature; - Ext.getCmp('modx-panel-packages').install(); - } - } - - /* Launch Package Browser */ - ,onDownloadMoreExtra: function(btn,e){ - MODx.provider = MODx.defaultProvider; - Ext.getCmp('modx-panel-packages-browser').activate(); - } - - ,changeProvider: function(btn, e){ - this.loadWindow(btn,e,{ + Ext.getCmp('modx-panel-packages').install(); + } + } + + /* Launch Package Browser */ + ,onDownloadMoreExtra: function(btn,e){ + MODx.provider = MODx.defaultProvider; + Ext.getCmp('modx-panel-packages-browser').activate(); + } + + ,changeProvider: function(btn, e){ + this.loadWindow(btn,e,{ xtype: 'modx-package-changeprovider' }); - } + } /** * Open a window allowing user to upload a transport package directly @@ -323,19 +344,19 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ this.uploader.show(); } - ,searchLocal: function() { + ,searchLocal: function() { MODx.msg.confirm({ - title: _('package_search_local_title') - ,text: _('package_search_local_confirm') - ,url: MODx.config.connector_url - ,params: { + title: _('package_search_local_title') + ,text: _('package_search_local_confirm') + ,url: MODx.config.connector_url + ,params: { action: 'Workspace/Packages/ScanLocal' - } - ,listeners: { + } + ,listeners: { 'success':{fn:function(r) { this.getStore().reload(); },scope:this} - } + } }); } @@ -356,12 +377,12 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ }) } - /* Go to package details @TODO : Stay on the same page */ + /* Go to package details @TODO : Stay on the same page */ ,viewPackage: function(btn,e) { MODx.loadPage('workspaces/package/view', 'signature='+this.menu.record.signature+'&package_name='+this.menu.record.name); } - /* Search for a package update - only for installed package */ + /* Search for a package update - only for installed package */ ,update: function(btn,e) { if (this.windows['modx-window-package-update']) { this.windows['modx-window-package-update'].destroy(); @@ -376,6 +397,7 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ 'success': {fn:function(r) { this.loadWindow(btn,e,{ xtype: 'modx-window-package-update' + ,cls: 'modx-alert' ,packages: r.object ,record: this.menu.record ,force: true @@ -396,8 +418,8 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ }); } - /* Uninstall a package */ - ,uninstall: function(btn,e) { + /* Uninstall a package */ + ,uninstall: function(btn,e) { this.loadWindow(btn,e,{ xtype: 'modx-window-package-uninstall' ,listeners: { @@ -440,12 +462,12 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ }); } - /* Remove a package entirely */ + /* Remove a package entirely */ ,remove: function(btn,e) { if (this.destroying) { return MODx.grid.Package.superclass.remove.apply(this, arguments); } - var r = this.menu.record; + var r = this.menu.record; var topic = '/workspace/package/remove/'+r.signature+'/'; this.loadWindow(btn,e,{ @@ -477,12 +499,12 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ }); } - /* Load the console */ + /* Load the console */ ,loadConsole: function(btn,topic) { this.console = MODx.load({ - xtype: 'modx-console' - ,register: 'mgr' - ,topic: topic + xtype: 'modx-console' + ,register: 'mgr' + ,topic: topic }); this.console.show(btn); } @@ -493,6 +515,13 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{ }); Ext.reg('modx-package-grid',MODx.grid.Package); +/** + * @class MODx.window.PackageUpdate + * @extends MODx.Window + * @constructor + * @param {Object} config An object of options. + * @xtype modx-window-package-update + */ MODx.window.PackageUpdate = function(config) { config = config || {}; Ext.applyIf(config,{ diff --git a/manager/assets/modext/workspace/package/package.panel.js b/manager/assets/modext/workspace/package/package.panel.js index 55dc50c0f98..9be43f956e8 100644 --- a/manager/assets/modext/workspace/package/package.panel.js +++ b/manager/assets/modext/workspace/package/package.panel.js @@ -1,14 +1,21 @@ - +/** + * The package info container + * + * @class MODx.panel.Package + * @extends MODx.Panel + * @param {Object} config An object of options. + * @xtype modx-panel-package + */ MODx.panel.Package = function(config) { config = config || {}; Ext.applyIf(config,{ url: MODx.config.connector_url ,baseParams: {} ,id: 'modx-panel-package' - ,cls: 'container' + ,cls: 'container' ,chunk: '' ,bodyStyle: '' - ,items: [{ + ,items: [this.getPageHeader(config),{ html: _('package') ,id: 'modx-package-header' ,xtype: 'modx-header' @@ -19,70 +26,70 @@ MODx.panel.Package = function(config) { ,id: 'modx-package-form' ,labelWidth: 150 ,items: [{ - xtype: 'panel' - ,border: false - ,cls:'main-wrapper' - ,layout: 'form' - ,items: [{ - xtype: 'statictextfield' - ,fieldLabel: _('package') - ,name: 'package_name' - ,width: 300 - },{ - xtype: 'statictextfield' - ,fieldLabel: _('signature') - ,name: 'signature' - ,width: 300 - ,submitValue: true - },{ - xtype: 'statictextfield' - ,fieldLabel: _('uploaded_on') - ,name: 'created' - ,width: 300 - },{ - xtype: 'statictextfield' - ,fieldLabel: _('installed') - ,name: 'installed' - ,width: 300 - },{ - xtype: 'statictextfield' - ,fieldLabel: _('last_updated') - ,name: 'updated' - ,width: 300 - },{ - xtype: 'modx-combo-provider' - ,fieldLabel: _('provider') - ,name: 'provider' - ,width: 300 - },{ - xtype: 'textarea' - ,readOnly: true - ,fieldLabel: _('readme') - ,name: 'readme' - ,width: '80%' - ,height: 200 - },{ - xtype: 'textarea' - ,readOnly: true - ,fieldLabel: _('license') - ,name: 'license' - ,width: '80%' - ,height: 200 - },{ - xtype: 'textarea' - ,readOnly: true - ,fieldLabel: _('changelog') - ,name: 'changelog' - ,width: '80%' - ,height: 200 - }] - }] + xtype: 'panel' + ,border: false + ,cls:'main-wrapper' + ,layout: 'form' + ,items: [{ + xtype: 'statictextfield' + ,fieldLabel: _('package') + ,name: 'package_name' + ,anchor: '100%' + },{ + xtype: 'statictextfield' + ,fieldLabel: _('signature') + ,name: 'signature' + ,submitValue: true + ,anchor: '100%' + },{ + xtype: 'statictextfield' + ,fieldLabel: _('uploaded_on') + ,name: 'created' + ,anchor: '100%' + },{ + xtype: 'statictextfield' + ,fieldLabel: _('installed') + ,name: 'installed' + ,anchor: '100%' + },{ + xtype: 'statictextfield' + ,fieldLabel: _('last_updated') + ,name: 'updated' + ,anchor: '100%' + },{ + xtype: 'modx-combo-provider' + ,fieldLabel: _('provider') + ,name: 'provider' + ,anchor: '100%' + },{ + xtype: 'textarea' + ,readOnly: true + ,fieldLabel: _('changelog') + ,name: 'changelog' + ,anchor: '100%' + ,height: 200 + },{ + xtype: 'textarea' + ,readOnly: true + ,fieldLabel: _('readme') + ,name: 'readme' + ,anchor: '100%' + ,height: 200 + },{ + xtype: 'textarea' + ,readOnly: true + ,fieldLabel: _('license') + ,name: 'license' + ,anchor: '100%' + ,height: 200 + }] + }] },{ title: _('uploaded_versions') ,defaults: { border: false ,msgTarget: 'side' } ,items: [{ xtype: 'modx-grid-package-versions' - ,cls: 'main-wrapper' + ,cls: 'main-wrapper' ,signature: config.signature ,package_name: config.package_name ,preventRender: true @@ -98,6 +105,7 @@ MODx.panel.Package = function(config) { }; Ext.extend(MODx.panel.Package,MODx.FormPanel,{ initialized: false + ,setup: function() { if (this.config.signature === '' || this.config.signature === 0 || this.initialized) { this.fireEvent('ready'); @@ -120,12 +128,21 @@ Ext.extend(MODx.panel.Package,MODx.FormPanel,{ } }); } + ,beforeSubmit: function(o) { return this.fireEvent('save',{ values: this.getForm().getValues() }); } + ,success: function(r) { } + + ,getPageHeader: function(config) { + return MODx.util.getHeaderBreadCrumbs('modx-package-header', [{ + text: _('package_management'), + href: MODx.getPage('workspaces') + }]); + } }); Ext.reg('modx-panel-package',MODx.panel.Package); diff --git a/manager/assets/modext/workspace/provider.grid.js b/manager/assets/modext/workspace/provider.grid.js index bcdac39317e..b1c81c71f5b 100644 --- a/manager/assets/modext/workspace/provider.grid.js +++ b/manager/assets/modext/workspace/provider.grid.js @@ -35,7 +35,7 @@ MODx.grid.Provider = function(config) { ,editor: { xtype: 'textarea' } }] ,tbar: [{ - text: _('provider_add') + text: _('create') ,cls: 'primary-button' ,handler: { xtype: 'modx-window-provider-create' ,blankValues: true } }] @@ -57,7 +57,7 @@ Ext.reg('modx-grid-provider',MODx.grid.Provider); MODx.window.CreateProvider = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('provider_add') + title: _('create') ,url: MODx.config.connector_url ,action: 'Workspace/Providers/Create' ,fields: [{ @@ -110,7 +110,7 @@ Ext.reg('modx-window-provider-create',MODx.window.CreateProvider); MODx.window.UpdateProvider = function(config) { config = config || {}; Ext.applyIf(config,{ - title: _('provider_update') + title: _('edit') ,action: 'Workspace/Providers/Update' }); MODx.window.UpdateProvider.superclass.constructor.call(this,config); diff --git a/manager/controllers/default/browser/index.class.php b/manager/controllers/default/browser/index.class.php index c6e00797308..892c0841821 100644 --- a/manager/controllers/default/browser/index.class.php +++ b/manager/controllers/default/browser/index.class.php @@ -36,7 +36,7 @@ public function checkPermissions() { */ public function loadCustomCssJs() { /* invoke OnRichTextBrowserInit */ - $this->addHtml(''); diff --git a/manager/controllers/default/element/chunk/create.class.php b/manager/controllers/default/element/chunk/create.class.php index d68d9d92708..7afa118be9e 100644 --- a/manager/controllers/default/element/chunk/create.class.php +++ b/manager/controllers/default/element/chunk/create.class.php @@ -8,6 +8,7 @@ * files found in the top-level directory of this distribution. */ +use MODX\Revolution\modCategory; use MODX\Revolution\modManagerController; use MODX\Revolution\modSystemEvent; @@ -41,7 +42,7 @@ public function loadCustomCssJs() { $this->addJavascript($mgrUrl.'assets/modext/sections/element/chunk/create.js'); $this->addHtml(' - '); + $this->addHtml(''); } /** diff --git a/manager/controllers/default/resource/update.class.php b/manager/controllers/default/resource/update.class.php index 09bb8743188..a05ecb9687c 100644 --- a/manager/controllers/default/resource/update.class.php +++ b/manager/controllers/default/resource/update.class.php @@ -10,6 +10,7 @@ use MODX\Revolution\modContextSetting; use MODX\Revolution\modResource; +use MODX\Revolution\modUser; require_once dirname(__FILE__) . '/resource.class.php'; @@ -49,7 +50,6 @@ public function loadCustomCssJs() 'xtype' => 'modx-page-resource-update', 'resource' => $this->resource->get('id'), 'record' => $this->resourceArray, - 'parents' => $this->getParents(), 'publish_document' => $this->canPublish, 'preview_url' => $this->previewUrl, 'locked' => (int)$this->locked, @@ -139,7 +139,7 @@ public function process(array $scriptProperties = []) $this->resourceArray = array_merge($this->resourceArray, $overridden); $this->resourceArray['parents'] = $this->getParents(); - $fields = ['published', 'hidemenu', 'isfolder', 'richtext', 'searchable', 'cacheable', 'deleted', 'uri_override']; + $fields = ['published', 'hidemenu', 'isfolder', 'richtext', 'searchable', 'cacheable', 'deleted', 'uri_override', 'alias_visible']; foreach ($fields as $field) { $this->resourceArray[$field] = !empty($this->resourceArray[$field]); } diff --git a/manager/controllers/default/security/access/policy/template/update.class.php b/manager/controllers/default/security/access/policy/template/update.class.php index 5edf3aa7b39..bda8fe1a038 100644 --- a/manager/controllers/default/security/access/policy/template/update.class.php +++ b/manager/controllers/default/security/access/policy/template/update.class.php @@ -8,7 +8,10 @@ * files found in the top-level directory of this distribution. */ +use MODX\Revolution\modAccessPermission; +use MODX\Revolution\modAccessPolicyTemplate; use MODX\Revolution\modManagerController; +use xPDO\xPDOException; /** * Loads the policy template page @@ -43,13 +46,15 @@ public function initialize() { /** * Register custom CSS/JS for the page * @return void + * @throws xPDOException */ public function loadCustomCssJs() { $mgrUrl = $this->modx->getOption('manager_url',null,MODX_MANAGER_URL); + $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.combo.access.policy.template.groups.js'); $this->addJavascript($mgrUrl.'assets/modext/widgets/security/modx.panel.access.policy.template.js'); $this->addJavascript($mgrUrl.'assets/modext/sections/security/access/policy/template/update.js'); $this->addHtml(' - '); + $this->addHtml(''); } /** diff --git a/manager/controllers/default/source/update.class.php b/manager/controllers/default/source/update.class.php index c93d4a1989a..1af8e61cdfd 100644 --- a/manager/controllers/default/source/update.class.php +++ b/manager/controllers/default/source/update.class.php @@ -47,7 +47,7 @@ public function loadCustomCssJs() { $this->addJavascript($mgrUrl.'assets/modext/widgets/source/modx.grid.source.access.js'); $this->addJavascript($mgrUrl.'assets/modext/widgets/source/modx.panel.source.js'); $this->addJavascript($mgrUrl.'assets/modext/sections/source/update.js'); - $this->addHtml(''); } diff --git a/manager/controllers/default/system/dashboards/index.class.php b/manager/controllers/default/system/dashboards/index.class.php index f9eee370da0..75da133f877 100644 --- a/manager/controllers/default/system/dashboards/index.class.php +++ b/manager/controllers/default/system/dashboards/index.class.php @@ -45,7 +45,7 @@ public function loadCustomCssJs() { $this->addJavascript($this->modx->getOption('manager_url')."assets/modext/widgets/system/modx.grid.dashboard.widgets.js"); $this->addJavascript($this->modx->getOption('manager_url')."assets/modext/widgets/system/modx.panel.dashboards.js"); $this->addJavascript($this->modx->getOption('manager_url').'assets/modext/sections/system/dashboards/list.js'); - $this->addHtml(''); + $this->addHtml(''); } /** diff --git a/manager/controllers/default/system/dashboards/widget/create.class.php b/manager/controllers/default/system/dashboards/widget/create.class.php index 6f8f06c10eb..9c17791a5c6 100644 --- a/manager/controllers/default/system/dashboards/widget/create.class.php +++ b/manager/controllers/default/system/dashboards/widget/create.class.php @@ -47,7 +47,7 @@ public function loadCustomCssJs() { $this->addJavascript($mgrUrl.'assets/modext/widgets/core/modx.orm.js'); $this->addJavascript($mgrUrl."assets/modext/widgets/system/modx.panel.dashboard.widget.js"); $this->addJavascript($mgrUrl.'assets/modext/sections/system/dashboards/widget/create.js'); - $this->addHtml(''); } diff --git a/manager/controllers/default/system/dashboards/widget/update.class.php b/manager/controllers/default/system/dashboards/widget/update.class.php index 7070d0db5dd..bdb42212e46 100644 --- a/manager/controllers/default/system/dashboards/widget/update.class.php +++ b/manager/controllers/default/system/dashboards/widget/update.class.php @@ -111,7 +111,7 @@ public function loadCustomCssJs() { 'record' => $this->widgetArray, ]; - $this->addHtml(''); + $this->addHtml(''); } /** diff --git a/manager/controllers/default/system/event.class.php b/manager/controllers/default/system/event.class.php index 6e2f767b3e3..3d03f0659c4 100644 --- a/manager/controllers/default/system/event.class.php +++ b/manager/controllers/default/system/event.class.php @@ -29,7 +29,7 @@ public function loadCustomCssJs() { $mgrUrl = $this->modx->getOption('manager_url',null,MODX_MANAGER_URL); $this->addJavascript($mgrUrl.'assets/modext/widgets/system/modx.panel.error.log.js'); $this->addJavascript($mgrUrl.'assets/modext/sections/system/error.log.js'); - $this->addHtml(''); + $this->addHtml(''); } diff --git a/manager/controllers/default/system/file/edit.class.php b/manager/controllers/default/system/file/edit.class.php index d376306e569..9db86320905 100644 --- a/manager/controllers/default/system/file/edit.class.php +++ b/manager/controllers/default/system/file/edit.class.php @@ -65,7 +65,7 @@ public function loadCustomCssJs() 'record' => $this->fileRecord, 'canSave' => (int)$this->canSave, ]); - $this->addHtml(''); + $this->addHtml(''); } diff --git a/manager/controllers/default/system/info.class.php b/manager/controllers/default/system/info.class.php index 917958ccb54..e30bbca9e42 100644 --- a/manager/controllers/default/system/info.class.php +++ b/manager/controllers/default/system/info.class.php @@ -64,7 +64,7 @@ public function loadCustomCssJs() { $this->addJavascript($this->modx->getOption('manager_url')."assets/modext/widgets/system/{$this->modx->getOption('dbtype')}/modx.grid.databasetables.js"); $this->addJavascript($this->modx->getOption('manager_url').'assets/modext/widgets/resource/modx.grid.resource.active.js'); $this->addJavascript($this->modx->getOption('manager_url').'assets/modext/sections/system/info.js'); - $this->addHtml(''); + $this->addHtml(''); if ($this->showWelcomeScreen) { $url = $this->modx->getOption('welcome_screen_url', null, 'http://misc.modx.com/revolution/welcome.20.html'); - $this->addHtml(''); + $this->addHtml(''); } } diff --git a/manager/controllers/default/workspaces/index.class.php b/manager/controllers/default/workspaces/index.class.php index 78a7f20a14c..6ef3bbea6cf 100644 --- a/manager/controllers/default/workspaces/index.class.php +++ b/manager/controllers/default/workspaces/index.class.php @@ -8,6 +8,7 @@ * files found in the top-level directory of this distribution. */ +use MODX\Revolution\modCacheManager; use MODX\Revolution\modManagerController; use MODX\Revolution\Transport\modTransportProvider; diff --git a/manager/favicon.ico b/manager/favicon.ico index 116474ac2c8..bc6892f3e1c 100644 Binary files a/manager/favicon.ico and b/manager/favicon.ico differ diff --git a/manager/templates/default/browser/index.tpl b/manager/templates/default/browser/index.tpl index 9e7406c7237..c16058312fe 100644 --- a/manager/templates/default/browser/index.tpl +++ b/manager/templates/default/browser/index.tpl @@ -1,5 +1,5 @@ - - + + MODX :: {$_lang.modx_resource_browser} @@ -9,15 +9,15 @@ {if isset($_config.ext_debug) && $_config.ext_debug} - - + + {else} - - + + {/if} - - - + + + {$maincssjs} @@ -30,7 +30,7 @@ {literal} - \ No newline at end of file + diff --git a/manager/templates/default/css/index-min.css b/manager/templates/default/css/index-min.css index 64da094b47e..410503e2b0f 100644 --- a/manager/templates/default/css/index-min.css +++ b/manager/templates/default/css/index-min.css @@ -1,2 +1,29 @@ -/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-large,.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}#modx-abtn-menu-list .x-menu-item .x-menu-item-text .icon,.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin,.modx-manager-search-results .loading-indicator:before{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands'}.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-remove:before{content:"\f00d"}.fa.fa-close:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before{content:"\f01e"}.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before{content:"\f0c9"}.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-dashboard:before{content:"\f3fd"}.fa.fa-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-mobile-phone:before{content:"\f3cd"}.fa.fa-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before{content:"\f153"}.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-usd:before{content:"\f155"}.fa.fa-dollar:before{content:"\f155"}.fa.fa-inr:before{content:"\f156"}.fa.fa-rupee:before{content:"\f156"}.fa.fa-jpy:before{content:"\f157"}.fa.fa-cny:before{content:"\f157"}.fa.fa-rmb:before{content:"\f157"}.fa.fa-yen:before{content:"\f157"}.fa.fa-rub:before{content:"\f158"}.fa.fa-ruble:before{content:"\f158"}.fa.fa-rouble:before{content:"\f158"}.fa.fa-krw:before{content:"\f159"}.fa.fa-won:before{content:"\f159"}.fa.fa-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-android{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-try:before{content:"\f195"}.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-institution:before{content:"\f19c"}.fa.fa-bank:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-git{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before{content:"\f20b"}.fa.fa-shekel:before{content:"\f20b"}.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-battery-4:before{content:"\f240"}.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-clone{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before{content:"\f2a4"}.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-thermometer-4:before{content:"\f2c7"}.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before{content:"\f2cd"}.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}.fab,.fal,.far,.fas,.icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.icon-large,.icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.icon-xs{font-size:.75em}.icon-sm{font-size:.875em}.icon-1x{font-size:1em}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-6x{font-size:6em}.icon-7x{font-size:7em}.icon-8x{font-size:8em}.icon-9x{font-size:9em}.icon-10x{font-size:10em}.icon-fw{text-align:center;width:1.25em}.icon-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.icon-ul>li{position:relative}.icon-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.icon-pull-left{float:left}.icon-pull-right{float:right}.fab.icon-pull-left,.fal.icon-pull-left,.far.icon-pull-left,.fas.icon-pull-left,.icon.icon-pull-left{margin-right:.3em}.fab.icon-pull-right,.fal.icon-pull-right,.far.icon-pull-right,.fas.icon-pull-right,.icon.icon-pull-right{margin-left:.3em}.icon-spin{animation:fa-spin 2s infinite linear}.icon-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.icon-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.icon-flip-both,.icon-flip-horizontal.icon-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .icon-flip-both,:root .icon-flip-horizontal,:root .icon-flip-vertical,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-rotate-90{filter:none}.icon-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.icon-stack-1x,.icon-stack-2x{left:0;position:absolute;text-align:center;width:100%}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-500px:before{content:"\f26e"}.icon-accessible-icon:before{content:"\f368"}.icon-accusoft:before{content:"\f369"}.icon-acquisitions-incorporated:before{content:"\f6af"}.icon-ad:before{content:"\f641"}.icon-address-book:before{content:"\f2b9"}.icon-address-card:before{content:"\f2bb"}.icon-adjust:before{content:"\f042"}.icon-adn:before{content:"\f170"}.icon-adobe:before{content:"\f778"}.icon-adversal:before{content:"\f36a"}.icon-affiliatetheme:before{content:"\f36b"}.icon-air-freshener:before{content:"\f5d0"}.icon-algolia:before{content:"\f36c"}.icon-align-center:before{content:"\f037"}.icon-align-justify:before{content:"\f039"}.icon-align-left:before{content:"\f036"}.icon-align-right:before{content:"\f038"}.icon-alipay:before{content:"\f642"}.icon-allergies:before{content:"\f461"}.icon-amazon:before{content:"\f270"}.icon-amazon-pay:before{content:"\f42c"}.icon-ambulance:before{content:"\f0f9"}.icon-american-sign-language-interpreting:before{content:"\f2a3"}.icon-amilia:before{content:"\f36d"}.icon-anchor:before{content:"\f13d"}.icon-android:before{content:"\f17b"}.icon-angellist:before{content:"\f209"}.icon-angle-double-down:before{content:"\f103"}.icon-angle-double-left:before{content:"\f100"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-double-up:before{content:"\f102"}.icon-angle-down:before{content:"\f107"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angry:before{content:"\f556"}.icon-angrycreative:before{content:"\f36e"}.icon-angular:before{content:"\f420"}.icon-ankh:before{content:"\f644"}.icon-app-store:before{content:"\f36f"}.icon-app-store-ios:before{content:"\f370"}.icon-apper:before{content:"\f371"}.icon-apple:before{content:"\f179"}.icon-apple-alt:before{content:"\f5d1"}.icon-apple-pay:before{content:"\f415"}.icon-archive:before{content:"\f187"}.icon-archway:before{content:"\f557"}.icon-arrow-alt-circle-down:before{content:"\f358"}.icon-arrow-alt-circle-left:before{content:"\f359"}.icon-arrow-alt-circle-right:before{content:"\f35a"}.icon-arrow-alt-circle-up:before{content:"\f35b"}.icon-arrow-circle-down:before{content:"\f0ab"}.icon-arrow-circle-left:before{content:"\f0a8"}.icon-arrow-circle-right:before{content:"\f0a9"}.icon-arrow-circle-up:before{content:"\f0aa"}.icon-arrow-down:before{content:"\f063"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrows-alt:before{content:"\f0b2"}.icon-arrows-alt-h:before{content:"\f337"}.icon-arrows-alt-v:before{content:"\f338"}.icon-artstation:before{content:"\f77a"}.icon-assistive-listening-systems:before{content:"\f2a2"}.icon-asterisk:before{content:"\f069"}.icon-asymmetrik:before{content:"\f372"}.icon-at:before{content:"\f1fa"}.icon-atlas:before{content:"\f558"}.icon-atlassian:before{content:"\f77b"}.icon-atom:before{content:"\f5d2"}.icon-audible:before{content:"\f373"}.icon-audio-description:before{content:"\f29e"}.icon-autoprefixer:before{content:"\f41c"}.icon-avianex:before{content:"\f374"}.icon-aviato:before{content:"\f421"}.icon-award:before{content:"\f559"}.icon-aws:before{content:"\f375"}.icon-baby:before{content:"\f77c"}.icon-baby-carriage:before{content:"\f77d"}.icon-backspace:before{content:"\f55a"}.icon-backward:before{content:"\f04a"}.icon-bacon:before{content:"\f7e5"}.icon-balance-scale:before{content:"\f24e"}.icon-ban:before{content:"\f05e"}.icon-band-aid:before{content:"\f462"}.icon-bandcamp:before{content:"\f2d5"}.icon-barcode:before{content:"\f02a"}.icon-bars:before{content:"\f0c9"}.icon-baseball-ball:before{content:"\f433"}.icon-basketball-ball:before{content:"\f434"}.icon-bath:before{content:"\f2cd"}.icon-battery-empty:before{content:"\f244"}.icon-battery-full:before{content:"\f240"}.icon-battery-half:before{content:"\f242"}.icon-battery-quarter:before{content:"\f243"}.icon-battery-three-quarters:before{content:"\f241"}.icon-bed:before{content:"\f236"}.icon-beer:before{content:"\f0fc"}.icon-behance:before{content:"\f1b4"}.icon-behance-square:before{content:"\f1b5"}.icon-bell:before{content:"\f0f3"}.icon-bell-slash:before{content:"\f1f6"}.icon-bezier-curve:before{content:"\f55b"}.icon-bible:before{content:"\f647"}.icon-bicycle:before{content:"\f206"}.icon-bimobject:before{content:"\f378"}.icon-binoculars:before{content:"\f1e5"}.icon-biohazard:before{content:"\f780"}.icon-birthday-cake:before{content:"\f1fd"}.icon-bitbucket:before{content:"\f171"}.icon-bitcoin:before{content:"\f379"}.icon-bity:before{content:"\f37a"}.icon-black-tie:before{content:"\f27e"}.icon-blackberry:before{content:"\f37b"}.icon-blender:before{content:"\f517"}.icon-blender-phone:before{content:"\f6b6"}.icon-blind:before{content:"\f29d"}.icon-blog:before{content:"\f781"}.icon-blogger:before{content:"\f37c"}.icon-blogger-b:before{content:"\f37d"}.icon-bluetooth:before{content:"\f293"}.icon-bluetooth-b:before{content:"\f294"}.icon-bold:before{content:"\f032"}.icon-bolt:before{content:"\f0e7"}.icon-bomb:before{content:"\f1e2"}.icon-bone:before{content:"\f5d7"}.icon-bong:before{content:"\f55c"}.icon-book:before{content:"\f02d"}.icon-book-dead:before{content:"\f6b7"}.icon-book-medical:before{content:"\f7e6"}.icon-book-open:before{content:"\f518"}.icon-book-reader:before{content:"\f5da"}.icon-bookmark:before{content:"\f02e"}.icon-bowling-ball:before{content:"\f436"}.icon-box:before{content:"\f466"}.icon-box-open:before{content:"\f49e"}.icon-boxes:before{content:"\f468"}.icon-braille:before{content:"\f2a1"}.icon-brain:before{content:"\f5dc"}.icon-bread-slice:before{content:"\f7ec"}.icon-briefcase:before{content:"\f0b1"}.icon-briefcase-medical:before{content:"\f469"}.icon-broadcast-tower:before{content:"\f519"}.icon-broom:before{content:"\f51a"}.icon-brush:before{content:"\f55d"}.icon-btc:before{content:"\f15a"}.icon-bug:before{content:"\f188"}.icon-building:before{content:"\f1ad"}.icon-bullhorn:before{content:"\f0a1"}.icon-bullseye:before{content:"\f140"}.icon-burn:before{content:"\f46a"}.icon-buromobelexperte:before{content:"\f37f"}.icon-bus:before{content:"\f207"}.icon-bus-alt:before{content:"\f55e"}.icon-business-time:before{content:"\f64a"}.icon-buysellads:before{content:"\f20d"}.icon-calculator:before{content:"\f1ec"}.icon-calendar:before{content:"\f133"}.icon-calendar-alt:before{content:"\f073"}.icon-calendar-check:before{content:"\f274"}.icon-calendar-day:before{content:"\f783"}.icon-calendar-minus:before{content:"\f272"}.icon-calendar-plus:before{content:"\f271"}.icon-calendar-times:before{content:"\f273"}.icon-calendar-week:before{content:"\f784"}.icon-camera:before{content:"\f030"}.icon-camera-retro:before{content:"\f083"}.icon-campground:before{content:"\f6bb"}.icon-canadian-maple-leaf:before{content:"\f785"}.icon-candy-cane:before{content:"\f786"}.icon-cannabis:before{content:"\f55f"}.icon-capsules:before{content:"\f46b"}.icon-car:before{content:"\f1b9"}.icon-car-alt:before{content:"\f5de"}.icon-car-battery:before{content:"\f5df"}.icon-car-crash:before{content:"\f5e1"}.icon-car-side:before{content:"\f5e4"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-caret-square-down:before{content:"\f150"}.icon-caret-square-left:before{content:"\f191"}.icon-caret-square-right:before{content:"\f152"}.icon-caret-square-up:before{content:"\f151"}.icon-caret-up:before{content:"\f0d8"}.icon-carrot:before{content:"\f787"}.icon-cart-arrow-down:before{content:"\f218"}.icon-cart-plus:before{content:"\f217"}.icon-cash-register:before{content:"\f788"}.icon-cat:before{content:"\f6be"}.icon-cc-amazon-pay:before{content:"\f42d"}.icon-cc-amex:before{content:"\f1f3"}.icon-cc-apple-pay:before{content:"\f416"}.icon-cc-diners-club:before{content:"\f24c"}.icon-cc-discover:before{content:"\f1f2"}.icon-cc-jcb:before{content:"\f24b"}.icon-cc-mastercard:before{content:"\f1f1"}.icon-cc-paypal:before{content:"\f1f4"}.icon-cc-stripe:before{content:"\f1f5"}.icon-cc-visa:before{content:"\f1f0"}.icon-centercode:before{content:"\f380"}.icon-centos:before{content:"\f789"}.icon-certificate:before{content:"\f0a3"}.icon-chair:before{content:"\f6c0"}.icon-chalkboard:before{content:"\f51b"}.icon-chalkboard-teacher:before{content:"\f51c"}.icon-charging-station:before{content:"\f5e7"}.icon-chart-area:before{content:"\f1fe"}.icon-chart-bar:before{content:"\f080"}.icon-chart-line:before{content:"\f201"}.icon-chart-pie:before{content:"\f200"}.icon-check:before{content:"\f00c"}.icon-check-circle:before{content:"\f058"}.icon-check-double:before{content:"\f560"}.icon-check-square:before{content:"\f14a"}.icon-cheese:before{content:"\f7ef"}.icon-chess:before{content:"\f439"}.icon-chess-bishop:before{content:"\f43a"}.icon-chess-board:before{content:"\f43c"}.icon-chess-king:before{content:"\f43f"}.icon-chess-knight:before{content:"\f441"}.icon-chess-pawn:before{content:"\f443"}.icon-chess-queen:before{content:"\f445"}.icon-chess-rook:before{content:"\f447"}.icon-chevron-circle-down:before{content:"\f13a"}.icon-chevron-circle-left:before{content:"\f137"}.icon-chevron-circle-right:before{content:"\f138"}.icon-chevron-circle-up:before{content:"\f139"}.icon-chevron-down:before{content:"\f078"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-chevron-up:before{content:"\f077"}.icon-child:before{content:"\f1ae"}.icon-chrome:before{content:"\f268"}.icon-church:before{content:"\f51d"}.icon-circle:before{content:"\f111"}.icon-circle-notch:before{content:"\f1ce"}.icon-city:before{content:"\f64f"}.icon-clinic-medical:before{content:"\f7f2"}.icon-clipboard:before{content:"\f328"}.icon-clipboard-check:before{content:"\f46c"}.icon-clipboard-list:before{content:"\f46d"}.icon-clock:before{content:"\f017"}.icon-clone:before{content:"\f24d"}.icon-closed-captioning:before{content:"\f20a"}.icon-cloud:before{content:"\f0c2"}.icon-cloud-download-alt:before{content:"\f381"}.icon-cloud-meatball:before{content:"\f73b"}.icon-cloud-moon:before{content:"\f6c3"}.icon-cloud-moon-rain:before{content:"\f73c"}.icon-cloud-rain:before{content:"\f73d"}.icon-cloud-showers-heavy:before{content:"\f740"}.icon-cloud-sun:before{content:"\f6c4"}.icon-cloud-sun-rain:before{content:"\f743"}.icon-cloud-upload-alt:before{content:"\f382"}.icon-cloudscale:before{content:"\f383"}.icon-cloudsmith:before{content:"\f384"}.icon-cloudversify:before{content:"\f385"}.icon-cocktail:before{content:"\f561"}.icon-code:before{content:"\f121"}.icon-code-branch:before{content:"\f126"}.icon-codepen:before{content:"\f1cb"}.icon-codiepie:before{content:"\f284"}.icon-coffee:before{content:"\f0f4"}.icon-cog:before{content:"\f013"}.icon-cogs:before{content:"\f085"}.icon-coins:before{content:"\f51e"}.icon-columns:before{content:"\f0db"}.icon-comment:before{content:"\f075"}.icon-comment-alt:before{content:"\f27a"}.icon-comment-dollar:before{content:"\f651"}.icon-comment-dots:before{content:"\f4ad"}.icon-comment-medical:before{content:"\f7f5"}.icon-comment-slash:before{content:"\f4b3"}.icon-comments:before{content:"\f086"}.icon-comments-dollar:before{content:"\f653"}.icon-compact-disc:before{content:"\f51f"}.icon-compass:before{content:"\f14e"}.icon-compress:before{content:"\f066"}.icon-compress-arrows-alt:before{content:"\f78c"}.icon-concierge-bell:before{content:"\f562"}.icon-confluence:before{content:"\f78d"}.icon-connectdevelop:before{content:"\f20e"}.icon-contao:before{content:"\f26d"}.icon-cookie:before{content:"\f563"}.icon-cookie-bite:before{content:"\f564"}.icon-copy:before{content:"\f0c5"}.icon-copyright:before{content:"\f1f9"}.icon-couch:before{content:"\f4b8"}.icon-cpanel:before{content:"\f388"}.icon-creative-commons:before{content:"\f25e"}.icon-creative-commons-by:before{content:"\f4e7"}.icon-creative-commons-nc:before{content:"\f4e8"}.icon-creative-commons-nc-eu:before{content:"\f4e9"}.icon-creative-commons-nc-jp:before{content:"\f4ea"}.icon-creative-commons-nd:before{content:"\f4eb"}.icon-creative-commons-pd:before{content:"\f4ec"}.icon-creative-commons-pd-alt:before{content:"\f4ed"}.icon-creative-commons-remix:before{content:"\f4ee"}.icon-creative-commons-sa:before{content:"\f4ef"}.icon-creative-commons-sampling:before{content:"\f4f0"}.icon-creative-commons-sampling-plus:before{content:"\f4f1"}.icon-creative-commons-share:before{content:"\f4f2"}.icon-creative-commons-zero:before{content:"\f4f3"}.icon-credit-card:before{content:"\f09d"}.icon-critical-role:before{content:"\f6c9"}.icon-crop:before{content:"\f125"}.icon-crop-alt:before{content:"\f565"}.icon-cross:before{content:"\f654"}.icon-crosshairs:before{content:"\f05b"}.icon-crow:before{content:"\f520"}.icon-crown:before{content:"\f521"}.icon-crutch:before{content:"\f7f7"}.icon-css3:before{content:"\f13c"}.icon-css3-alt:before{content:"\f38b"}.icon-cube:before{content:"\f1b2"}.icon-cubes:before{content:"\f1b3"}.icon-cut:before{content:"\f0c4"}.icon-cuttlefish:before{content:"\f38c"}.icon-d-and-d:before{content:"\f38d"}.icon-d-and-d-beyond:before{content:"\f6ca"}.icon-dashcube:before{content:"\f210"}.icon-database:before{content:"\f1c0"}.icon-deaf:before{content:"\f2a4"}.icon-delicious:before{content:"\f1a5"}.icon-democrat:before{content:"\f747"}.icon-deploydog:before{content:"\f38e"}.icon-deskpro:before{content:"\f38f"}.icon-desktop:before{content:"\f108"}.icon-dev:before{content:"\f6cc"}.icon-deviantart:before{content:"\f1bd"}.icon-dharmachakra:before{content:"\f655"}.icon-dhl:before{content:"\f790"}.icon-diagnoses:before{content:"\f470"}.icon-diaspora:before{content:"\f791"}.icon-dice:before{content:"\f522"}.icon-dice-d20:before{content:"\f6cf"}.icon-dice-d6:before{content:"\f6d1"}.icon-dice-five:before{content:"\f523"}.icon-dice-four:before{content:"\f524"}.icon-dice-one:before{content:"\f525"}.icon-dice-six:before{content:"\f526"}.icon-dice-three:before{content:"\f527"}.icon-dice-two:before{content:"\f528"}.icon-digg:before{content:"\f1a6"}.icon-digital-ocean:before{content:"\f391"}.icon-digital-tachograph:before{content:"\f566"}.icon-directions:before{content:"\f5eb"}.icon-discord:before{content:"\f392"}.icon-discourse:before{content:"\f393"}.icon-divide:before{content:"\f529"}.icon-dizzy:before{content:"\f567"}.icon-dna:before{content:"\f471"}.icon-dochub:before{content:"\f394"}.icon-docker:before{content:"\f395"}.icon-dog:before{content:"\f6d3"}.icon-dollar-sign:before{content:"\f155"}.icon-dolly:before{content:"\f472"}.icon-dolly-flatbed:before{content:"\f474"}.icon-donate:before{content:"\f4b9"}.icon-door-closed:before{content:"\f52a"}.icon-door-open:before{content:"\f52b"}.icon-dot-circle:before{content:"\f192"}.icon-dove:before{content:"\f4ba"}.icon-download:before{content:"\f019"}.icon-draft2digital:before{content:"\f396"}.icon-drafting-compass:before{content:"\f568"}.icon-dragon:before{content:"\f6d5"}.icon-draw-polygon:before{content:"\f5ee"}.icon-dribbble:before{content:"\f17d"}.icon-dribbble-square:before{content:"\f397"}.icon-dropbox:before{content:"\f16b"}.icon-drum:before{content:"\f569"}.icon-drum-steelpan:before{content:"\f56a"}.icon-drumstick-bite:before{content:"\f6d7"}.icon-drupal:before{content:"\f1a9"}.icon-dumbbell:before{content:"\f44b"}.icon-dumpster:before{content:"\f793"}.icon-dumpster-fire:before{content:"\f794"}.icon-dungeon:before{content:"\f6d9"}.icon-dyalog:before{content:"\f399"}.icon-earlybirds:before{content:"\f39a"}.icon-ebay:before{content:"\f4f4"}.icon-edge:before{content:"\f282"}.icon-edit:before{content:"\f044"}.icon-egg:before{content:"\f7fb"}.icon-eject:before{content:"\f052"}.icon-elementor:before{content:"\f430"}.icon-ellipsis-h:before{content:"\f141"}.icon-ellipsis-v:before{content:"\f142"}.icon-ello:before{content:"\f5f1"}.icon-ember:before{content:"\f423"}.icon-empire:before{content:"\f1d1"}.icon-envelope:before{content:"\f0e0"}.icon-envelope-open:before{content:"\f2b6"}.icon-envelope-open-text:before{content:"\f658"}.icon-envelope-square:before{content:"\f199"}.icon-envira:before{content:"\f299"}.icon-equals:before{content:"\f52c"}.icon-eraser:before{content:"\f12d"}.icon-erlang:before{content:"\f39d"}.icon-ethereum:before{content:"\f42e"}.icon-ethernet:before{content:"\f796"}.icon-etsy:before{content:"\f2d7"}.icon-euro-sign:before{content:"\f153"}.icon-exchange-alt:before{content:"\f362"}.icon-exclamation:before{content:"\f12a"}.icon-exclamation-circle:before{content:"\f06a"}.icon-exclamation-triangle:before{content:"\f071"}.icon-expand:before{content:"\f065"}.icon-expand-arrows-alt:before{content:"\f31e"}.icon-expeditedssl:before{content:"\f23e"}.icon-external-link-alt:before{content:"\f35d"}.icon-external-link-square-alt:before{content:"\f360"}.icon-eye:before{content:"\f06e"}.icon-eye-dropper:before{content:"\f1fb"}.icon-eye-slash:before{content:"\f070"}.icon-facebook:before{content:"\f09a"}.icon-facebook-f:before{content:"\f39e"}.icon-facebook-messenger:before{content:"\f39f"}.icon-facebook-square:before{content:"\f082"}.icon-fantasy-flight-games:before{content:"\f6dc"}.icon-fast-backward:before{content:"\f049"}.icon-fast-forward:before{content:"\f050"}.icon-fax:before{content:"\f1ac"}.icon-feather:before{content:"\f52d"}.icon-feather-alt:before{content:"\f56b"}.icon-fedex:before{content:"\f797"}.icon-fedora:before{content:"\f798"}.icon-female:before{content:"\f182"}.icon-fighter-jet:before{content:"\f0fb"}.icon-figma:before{content:"\f799"}.icon-file:before{content:"\f15b"}.icon-file-alt:before{content:"\f15c"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-code:before{content:"\f1c9"}.icon-file-contract:before{content:"\f56c"}.icon-file-csv:before{content:"\f6dd"}.icon-file-download:before{content:"\f56d"}.icon-file-excel:before{content:"\f1c3"}.icon-file-export:before{content:"\f56e"}.icon-file-image:before{content:"\f1c5"}.icon-file-import:before{content:"\f56f"}.icon-file-invoice:before{content:"\f570"}.icon-file-invoice-dollar:before{content:"\f571"}.icon-file-medical:before{content:"\f477"}.icon-file-medical-alt:before{content:"\f478"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-prescription:before{content:"\f572"}.icon-file-signature:before{content:"\f573"}.icon-file-upload:before{content:"\f574"}.icon-file-video:before{content:"\f1c8"}.icon-file-word:before{content:"\f1c2"}.icon-fill:before{content:"\f575"}.icon-fill-drip:before{content:"\f576"}.icon-film:before{content:"\f008"}.icon-filter:before{content:"\f0b0"}.icon-fingerprint:before{content:"\f577"}.icon-fire:before{content:"\f06d"}.icon-fire-alt:before{content:"\f7e4"}.icon-fire-extinguisher:before{content:"\f134"}.icon-firefox:before{content:"\f269"}.icon-first-aid:before{content:"\f479"}.icon-first-order:before{content:"\f2b0"}.icon-first-order-alt:before{content:"\f50a"}.icon-firstdraft:before{content:"\f3a1"}.icon-fish:before{content:"\f578"}.icon-fist-raised:before{content:"\f6de"}.icon-flag:before{content:"\f024"}.icon-flag-checkered:before{content:"\f11e"}.icon-flag-usa:before{content:"\f74d"}.icon-flask:before{content:"\f0c3"}.icon-flickr:before{content:"\f16e"}.icon-flipboard:before{content:"\f44d"}.icon-flushed:before{content:"\f579"}.icon-fly:before{content:"\f417"}.icon-folder:before{content:"\f07b"}.icon-folder-minus:before{content:"\f65d"}.icon-folder-open:before{content:"\f07c"}.icon-folder-plus:before{content:"\f65e"}.icon-font:before{content:"\f031"}.icon-font-awesome:before{content:"\f2b4"}.icon-font-awesome-alt:before{content:"\f35c"}.icon-font-awesome-flag:before{content:"\f425"}.icon-font-awesome-logo-full:before{content:"\f4e6"}.icon-fonticons:before{content:"\f280"}.icon-fonticons-fi:before{content:"\f3a2"}.icon-football-ball:before{content:"\f44e"}.icon-fort-awesome:before{content:"\f286"}.icon-fort-awesome-alt:before{content:"\f3a3"}.icon-forumbee:before{content:"\f211"}.icon-forward:before{content:"\f04e"}.icon-foursquare:before{content:"\f180"}.icon-free-code-camp:before{content:"\f2c5"}.icon-freebsd:before{content:"\f3a4"}.icon-frog:before{content:"\f52e"}.icon-frown:before{content:"\f119"}.icon-frown-open:before{content:"\f57a"}.icon-fulcrum:before{content:"\f50b"}.icon-funnel-dollar:before{content:"\f662"}.icon-futbol:before{content:"\f1e3"}.icon-galactic-republic:before{content:"\f50c"}.icon-galactic-senate:before{content:"\f50d"}.icon-gamepad:before{content:"\f11b"}.icon-gas-pump:before{content:"\f52f"}.icon-gavel:before{content:"\f0e3"}.icon-gem:before{content:"\f3a5"}.icon-genderless:before{content:"\f22d"}.icon-get-pocket:before{content:"\f265"}.icon-gg:before{content:"\f260"}.icon-gg-circle:before{content:"\f261"}.icon-ghost:before{content:"\f6e2"}.icon-gift:before{content:"\f06b"}.icon-gifts:before{content:"\f79c"}.icon-git:before{content:"\f1d3"}.icon-git-square:before{content:"\f1d2"}.icon-github:before{content:"\f09b"}.icon-github-alt:before{content:"\f113"}.icon-github-square:before{content:"\f092"}.icon-gitkraken:before{content:"\f3a6"}.icon-gitlab:before{content:"\f296"}.icon-gitter:before{content:"\f426"}.icon-glass-cheers:before{content:"\f79f"}.icon-glass-martini:before{content:"\f000"}.icon-glass-martini-alt:before{content:"\f57b"}.icon-glass-whiskey:before{content:"\f7a0"}.icon-glasses:before{content:"\f530"}.icon-glide:before{content:"\f2a5"}.icon-glide-g:before{content:"\f2a6"}.icon-globe:before{content:"\f0ac"}.icon-globe-africa:before{content:"\f57c"}.icon-globe-americas:before{content:"\f57d"}.icon-globe-asia:before{content:"\f57e"}.icon-globe-europe:before{content:"\f7a2"}.icon-gofore:before{content:"\f3a7"}.icon-golf-ball:before{content:"\f450"}.icon-goodreads:before{content:"\f3a8"}.icon-goodreads-g:before{content:"\f3a9"}.icon-google:before{content:"\f1a0"}.icon-google-drive:before{content:"\f3aa"}.icon-google-play:before{content:"\f3ab"}.icon-google-plus:before{content:"\f2b3"}.icon-google-plus-g:before{content:"\f0d5"}.icon-google-plus-square:before{content:"\f0d4"}.icon-google-wallet:before{content:"\f1ee"}.icon-gopuram:before{content:"\f664"}.icon-graduation-cap:before{content:"\f19d"}.icon-gratipay:before{content:"\f184"}.icon-grav:before{content:"\f2d6"}.icon-greater-than:before{content:"\f531"}.icon-greater-than-equal:before{content:"\f532"}.icon-grimace:before{content:"\f57f"}.icon-grin:before{content:"\f580"}.icon-grin-alt:before{content:"\f581"}.icon-grin-beam:before{content:"\f582"}.icon-grin-beam-sweat:before{content:"\f583"}.icon-grin-hearts:before{content:"\f584"}.icon-grin-squint:before{content:"\f585"}.icon-grin-squint-tears:before{content:"\f586"}.icon-grin-stars:before{content:"\f587"}.icon-grin-tears:before{content:"\f588"}.icon-grin-tongue:before{content:"\f589"}.icon-grin-tongue-squint:before{content:"\f58a"}.icon-grin-tongue-wink:before{content:"\f58b"}.icon-grin-wink:before{content:"\f58c"}.icon-grip-horizontal:before{content:"\f58d"}.icon-grip-lines:before{content:"\f7a4"}.icon-grip-lines-vertical:before{content:"\f7a5"}.icon-grip-vertical:before{content:"\f58e"}.icon-gripfire:before{content:"\f3ac"}.icon-grunt:before{content:"\f3ad"}.icon-guitar:before{content:"\f7a6"}.icon-gulp:before{content:"\f3ae"}.icon-h-square:before{content:"\f0fd"}.icon-hacker-news:before{content:"\f1d4"}.icon-hacker-news-square:before{content:"\f3af"}.icon-hackerrank:before{content:"\f5f7"}.icon-hamburger:before{content:"\f805"}.icon-hammer:before{content:"\f6e3"}.icon-hamsa:before{content:"\f665"}.icon-hand-holding:before{content:"\f4bd"}.icon-hand-holding-heart:before{content:"\f4be"}.icon-hand-holding-usd:before{content:"\f4c0"}.icon-hand-lizard:before{content:"\f258"}.icon-hand-middle-finger:before{content:"\f806"}.icon-hand-paper:before{content:"\f256"}.icon-hand-peace:before{content:"\f25b"}.icon-hand-point-down:before{content:"\f0a7"}.icon-hand-point-left:before{content:"\f0a5"}.icon-hand-point-right:before{content:"\f0a4"}.icon-hand-point-up:before{content:"\f0a6"}.icon-hand-pointer:before{content:"\f25a"}.icon-hand-rock:before{content:"\f255"}.icon-hand-scissors:before{content:"\f257"}.icon-hand-spock:before{content:"\f259"}.icon-hands:before{content:"\f4c2"}.icon-hands-helping:before{content:"\f4c4"}.icon-handshake:before{content:"\f2b5"}.icon-hanukiah:before{content:"\f6e6"}.icon-hard-hat:before{content:"\f807"}.icon-hashtag:before{content:"\f292"}.icon-hat-wizard:before{content:"\f6e8"}.icon-haykal:before{content:"\f666"}.icon-hdd:before{content:"\f0a0"}.icon-heading:before{content:"\f1dc"}.icon-headphones:before{content:"\f025"}.icon-headphones-alt:before{content:"\f58f"}.icon-headset:before{content:"\f590"}.icon-heart:before{content:"\f004"}.icon-heart-broken:before{content:"\f7a9"}.icon-heartbeat:before{content:"\f21e"}.icon-helicopter:before{content:"\f533"}.icon-highlighter:before{content:"\f591"}.icon-hiking:before{content:"\f6ec"}.icon-hippo:before{content:"\f6ed"}.icon-hips:before{content:"\f452"}.icon-hire-a-helper:before{content:"\f3b0"}.icon-history:before{content:"\f1da"}.icon-hockey-puck:before{content:"\f453"}.icon-holly-berry:before{content:"\f7aa"}.icon-home:before{content:"\f015"}.icon-hooli:before{content:"\f427"}.icon-hornbill:before{content:"\f592"}.icon-horse:before{content:"\f6f0"}.icon-horse-head:before{content:"\f7ab"}.icon-hospital:before{content:"\f0f8"}.icon-hospital-alt:before{content:"\f47d"}.icon-hospital-symbol:before{content:"\f47e"}.icon-hot-tub:before{content:"\f593"}.icon-hotdog:before{content:"\f80f"}.icon-hotel:before{content:"\f594"}.icon-hotjar:before{content:"\f3b1"}.icon-hourglass:before{content:"\f254"}.icon-hourglass-end:before{content:"\f253"}.icon-hourglass-half:before{content:"\f252"}.icon-hourglass-start:before{content:"\f251"}.icon-house-damage:before{content:"\f6f1"}.icon-houzz:before{content:"\f27c"}.icon-hryvnia:before{content:"\f6f2"}.icon-html5:before{content:"\f13b"}.icon-hubspot:before{content:"\f3b2"}.icon-i-cursor:before{content:"\f246"}.icon-ice-cream:before{content:"\f810"}.icon-icicles:before{content:"\f7ad"}.icon-id-badge:before{content:"\f2c1"}.icon-id-card:before{content:"\f2c2"}.icon-id-card-alt:before{content:"\f47f"}.icon-igloo:before{content:"\f7ae"}.icon-image:before{content:"\f03e"}.icon-images:before{content:"\f302"}.icon-imdb:before{content:"\f2d8"}.icon-inbox:before{content:"\f01c"}.icon-indent:before{content:"\f03c"}.icon-industry:before{content:"\f275"}.icon-infinity:before{content:"\f534"}.icon-info:before{content:"\f129"}.icon-info-circle:before{content:"\f05a"}.icon-instagram:before{content:"\f16d"}.icon-intercom:before{content:"\f7af"}.icon-internet-explorer:before{content:"\f26b"}.icon-invision:before{content:"\f7b0"}.icon-ioxhost:before{content:"\f208"}.icon-italic:before{content:"\f033"}.icon-itunes:before{content:"\f3b4"}.icon-itunes-note:before{content:"\f3b5"}.icon-java:before{content:"\f4e4"}.icon-jedi:before{content:"\f669"}.icon-jedi-order:before{content:"\f50e"}.icon-jenkins:before{content:"\f3b6"}.icon-jira:before{content:"\f7b1"}.icon-joget:before{content:"\f3b7"}.icon-joint:before{content:"\f595"}.icon-joomla:before{content:"\f1aa"}.icon-journal-whills:before{content:"\f66a"}.icon-js:before{content:"\f3b8"}.icon-js-square:before{content:"\f3b9"}.icon-jsfiddle:before{content:"\f1cc"}.icon-kaaba:before{content:"\f66b"}.icon-kaggle:before{content:"\f5fa"}.icon-key:before{content:"\f084"}.icon-keybase:before{content:"\f4f5"}.icon-keyboard:before{content:"\f11c"}.icon-keycdn:before{content:"\f3ba"}.icon-khanda:before{content:"\f66d"}.icon-kickstarter:before{content:"\f3bb"}.icon-kickstarter-k:before{content:"\f3bc"}.icon-kiss:before{content:"\f596"}.icon-kiss-beam:before{content:"\f597"}.icon-kiss-wink-heart:before{content:"\f598"}.icon-kiwi-bird:before{content:"\f535"}.icon-korvue:before{content:"\f42f"}.icon-landmark:before{content:"\f66f"}.icon-language:before{content:"\f1ab"}.icon-laptop:before{content:"\f109"}.icon-laptop-code:before{content:"\f5fc"}.icon-laptop-medical:before{content:"\f812"}.icon-laravel:before{content:"\f3bd"}.icon-lastfm:before{content:"\f202"}.icon-lastfm-square:before{content:"\f203"}.icon-laugh:before{content:"\f599"}.icon-laugh-beam:before{content:"\f59a"}.icon-laugh-squint:before{content:"\f59b"}.icon-laugh-wink:before{content:"\f59c"}.icon-layer-group:before{content:"\f5fd"}.icon-leaf:before{content:"\f06c"}.icon-leanpub:before{content:"\f212"}.icon-lemon:before{content:"\f094"}.icon-less:before{content:"\f41d"}.icon-less-than:before{content:"\f536"}.icon-less-than-equal:before{content:"\f537"}.icon-level-down-alt:before{content:"\f3be"}.icon-level-up-alt:before{content:"\f3bf"}.icon-life-ring:before{content:"\f1cd"}.icon-lightbulb:before{content:"\f0eb"}.icon-line:before{content:"\f3c0"}.icon-link:before{content:"\f0c1"}.icon-linkedin:before{content:"\f08c"}.icon-linkedin-in:before{content:"\f0e1"}.icon-linode:before{content:"\f2b8"}.icon-linux:before{content:"\f17c"}.icon-lira-sign:before{content:"\f195"}.icon-list:before{content:"\f03a"}.icon-list-alt:before{content:"\f022"}.icon-list-ol:before{content:"\f0cb"}.icon-list-ul:before{content:"\f0ca"}.icon-location-arrow:before{content:"\f124"}.icon-lock:before{content:"\f023"}.icon-lock-open:before{content:"\f3c1"}.icon-long-arrow-alt-down:before{content:"\f309"}.icon-long-arrow-alt-left:before{content:"\f30a"}.icon-long-arrow-alt-right:before{content:"\f30b"}.icon-long-arrow-alt-up:before{content:"\f30c"}.icon-low-vision:before{content:"\f2a8"}.icon-luggage-cart:before{content:"\f59d"}.icon-lyft:before{content:"\f3c3"}.icon-magento:before{content:"\f3c4"}.icon-magic:before{content:"\f0d0"}.icon-magnet:before{content:"\f076"}.icon-mail-bulk:before{content:"\f674"}.icon-mailchimp:before{content:"\f59e"}.icon-male:before{content:"\f183"}.icon-mandalorian:before{content:"\f50f"}.icon-map:before{content:"\f279"}.icon-map-marked:before{content:"\f59f"}.icon-map-marked-alt:before{content:"\f5a0"}.icon-map-marker:before{content:"\f041"}.icon-map-marker-alt:before{content:"\f3c5"}.icon-map-pin:before{content:"\f276"}.icon-map-signs:before{content:"\f277"}.icon-markdown:before{content:"\f60f"}.icon-marker:before{content:"\f5a1"}.icon-mars:before{content:"\f222"}.icon-mars-double:before{content:"\f227"}.icon-mars-stroke:before{content:"\f229"}.icon-mars-stroke-h:before{content:"\f22b"}.icon-mars-stroke-v:before{content:"\f22a"}.icon-mask:before{content:"\f6fa"}.icon-mastodon:before{content:"\f4f6"}.icon-maxcdn:before{content:"\f136"}.icon-medal:before{content:"\f5a2"}.icon-medapps:before{content:"\f3c6"}.icon-medium:before{content:"\f23a"}.icon-medium-m:before{content:"\f3c7"}.icon-medkit:before{content:"\f0fa"}.icon-medrt:before{content:"\f3c8"}.icon-meetup:before{content:"\f2e0"}.icon-megaport:before{content:"\f5a3"}.icon-meh:before{content:"\f11a"}.icon-meh-blank:before{content:"\f5a4"}.icon-meh-rolling-eyes:before{content:"\f5a5"}.icon-memory:before{content:"\f538"}.icon-mendeley:before{content:"\f7b3"}.icon-menorah:before{content:"\f676"}.icon-mercury:before{content:"\f223"}.icon-meteor:before{content:"\f753"}.icon-microchip:before{content:"\f2db"}.icon-microphone:before{content:"\f130"}.icon-microphone-alt:before{content:"\f3c9"}.icon-microphone-alt-slash:before{content:"\f539"}.icon-microphone-slash:before{content:"\f131"}.icon-microscope:before{content:"\f610"}.icon-microsoft:before{content:"\f3ca"}.icon-minus:before{content:"\f068"}.icon-minus-circle:before{content:"\f056"}.icon-minus-square:before{content:"\f146"}.icon-mitten:before{content:"\f7b5"}.icon-mix:before{content:"\f3cb"}.icon-mixcloud:before{content:"\f289"}.icon-mizuni:before{content:"\f3cc"}.icon-mobile:before{content:"\f10b"}.icon-mobile-alt:before{content:"\f3cd"}.icon-modx:before{content:"\f285"}.icon-monero:before{content:"\f3d0"}.icon-money-bill:before{content:"\f0d6"}.icon-money-bill-alt:before{content:"\f3d1"}.icon-money-bill-wave:before{content:"\f53a"}.icon-money-bill-wave-alt:before{content:"\f53b"}.icon-money-check:before{content:"\f53c"}.icon-money-check-alt:before{content:"\f53d"}.icon-monument:before{content:"\f5a6"}.icon-moon:before{content:"\f186"}.icon-mortar-pestle:before{content:"\f5a7"}.icon-mosque:before{content:"\f678"}.icon-motorcycle:before{content:"\f21c"}.icon-mountain:before{content:"\f6fc"}.icon-mouse-pointer:before{content:"\f245"}.icon-mug-hot:before{content:"\f7b6"}.icon-music:before{content:"\f001"}.icon-napster:before{content:"\f3d2"}.icon-neos:before{content:"\f612"}.icon-network-wired:before{content:"\f6ff"}.icon-neuter:before{content:"\f22c"}.icon-newspaper:before{content:"\f1ea"}.icon-nimblr:before{content:"\f5a8"}.icon-nintendo-switch:before{content:"\f418"}.icon-node:before{content:"\f419"}.icon-node-js:before{content:"\f3d3"}.icon-not-equal:before{content:"\f53e"}.icon-notes-medical:before{content:"\f481"}.icon-npm:before{content:"\f3d4"}.icon-ns8:before{content:"\f3d5"}.icon-nutritionix:before{content:"\f3d6"}.icon-object-group:before{content:"\f247"}.icon-object-ungroup:before{content:"\f248"}.icon-odnoklassniki:before{content:"\f263"}.icon-odnoklassniki-square:before{content:"\f264"}.icon-oil-can:before{content:"\f613"}.icon-old-republic:before{content:"\f510"}.icon-om:before{content:"\f679"}.icon-opencart:before{content:"\f23d"}.icon-openid:before{content:"\f19b"}.icon-opera:before{content:"\f26a"}.icon-optin-monster:before{content:"\f23c"}.icon-osi:before{content:"\f41a"}.icon-otter:before{content:"\f700"}.icon-outdent:before{content:"\f03b"}.icon-page4:before{content:"\f3d7"}.icon-pagelines:before{content:"\f18c"}.icon-pager:before{content:"\f815"}.icon-paint-brush:before{content:"\f1fc"}.icon-paint-roller:before{content:"\f5aa"}.icon-palette:before{content:"\f53f"}.icon-palfed:before{content:"\f3d8"}.icon-pallet:before{content:"\f482"}.icon-paper-plane:before{content:"\f1d8"}.icon-paperclip:before{content:"\f0c6"}.icon-parachute-box:before{content:"\f4cd"}.icon-paragraph:before{content:"\f1dd"}.icon-parking:before{content:"\f540"}.icon-passport:before{content:"\f5ab"}.icon-pastafarianism:before{content:"\f67b"}.icon-paste:before{content:"\f0ea"}.icon-patreon:before{content:"\f3d9"}.icon-pause:before{content:"\f04c"}.icon-pause-circle:before{content:"\f28b"}.icon-paw:before{content:"\f1b0"}.icon-paypal:before{content:"\f1ed"}.icon-peace:before{content:"\f67c"}.icon-pen:before{content:"\f304"}.icon-pen-alt:before{content:"\f305"}.icon-pen-fancy:before{content:"\f5ac"}.icon-pen-nib:before{content:"\f5ad"}.icon-pen-square:before{content:"\f14b"}.icon-pencil-alt:before{content:"\f303"}.icon-pencil-ruler:before{content:"\f5ae"}.icon-penny-arcade:before{content:"\f704"}.icon-people-carry:before{content:"\f4ce"}.icon-pepper-hot:before{content:"\f816"}.icon-percent:before{content:"\f295"}.icon-percentage:before{content:"\f541"}.icon-periscope:before{content:"\f3da"}.icon-person-booth:before{content:"\f756"}.icon-phabricator:before{content:"\f3db"}.icon-phoenix-framework:before{content:"\f3dc"}.icon-phoenix-squadron:before{content:"\f511"}.icon-phone:before{content:"\f095"}.icon-phone-slash:before{content:"\f3dd"}.icon-phone-square:before{content:"\f098"}.icon-phone-volume:before{content:"\f2a0"}.icon-php:before{content:"\f457"}.icon-pied-piper:before{content:"\f2ae"}.icon-pied-piper-alt:before{content:"\f1a8"}.icon-pied-piper-hat:before{content:"\f4e5"}.icon-pied-piper-pp:before{content:"\f1a7"}.icon-piggy-bank:before{content:"\f4d3"}.icon-pills:before{content:"\f484"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-p:before{content:"\f231"}.icon-pinterest-square:before{content:"\f0d3"}.icon-pizza-slice:before{content:"\f818"}.icon-place-of-worship:before{content:"\f67f"}.icon-plane:before{content:"\f072"}.icon-plane-arrival:before{content:"\f5af"}.icon-plane-departure:before{content:"\f5b0"}.icon-play:before{content:"\f04b"}.icon-play-circle:before{content:"\f144"}.icon-playstation:before{content:"\f3df"}.icon-plug:before{content:"\f1e6"}.icon-plus:before{content:"\f067"}.icon-plus-circle:before{content:"\f055"}.icon-plus-square:before{content:"\f0fe"}.icon-podcast:before{content:"\f2ce"}.icon-poll:before{content:"\f681"}.icon-poll-h:before{content:"\f682"}.icon-poo:before{content:"\f2fe"}.icon-poo-storm:before{content:"\f75a"}.icon-poop:before{content:"\f619"}.icon-portrait:before{content:"\f3e0"}.icon-pound-sign:before{content:"\f154"}.icon-power-off:before{content:"\f011"}.icon-pray:before{content:"\f683"}.icon-praying-hands:before{content:"\f684"}.icon-prescription:before{content:"\f5b1"}.icon-prescription-bottle:before{content:"\f485"}.icon-prescription-bottle-alt:before{content:"\f486"}.icon-print:before{content:"\f02f"}.icon-procedures:before{content:"\f487"}.icon-product-hunt:before{content:"\f288"}.icon-project-diagram:before{content:"\f542"}.icon-pushed:before{content:"\f3e1"}.icon-puzzle-piece:before{content:"\f12e"}.icon-python:before{content:"\f3e2"}.icon-qq:before{content:"\f1d6"}.icon-qrcode:before{content:"\f029"}.icon-question:before{content:"\f128"}.icon-question-circle:before{content:"\f059"}.icon-quidditch:before{content:"\f458"}.icon-quinscape:before{content:"\f459"}.icon-quora:before{content:"\f2c4"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-quran:before{content:"\f687"}.icon-r-project:before{content:"\f4f7"}.icon-radiation:before{content:"\f7b9"}.icon-radiation-alt:before{content:"\f7ba"}.icon-rainbow:before{content:"\f75b"}.icon-random:before{content:"\f074"}.icon-raspberry-pi:before{content:"\f7bb"}.icon-ravelry:before{content:"\f2d9"}.icon-react:before{content:"\f41b"}.icon-reacteurope:before{content:"\f75d"}.icon-readme:before{content:"\f4d5"}.icon-rebel:before{content:"\f1d0"}.icon-receipt:before{content:"\f543"}.icon-recycle:before{content:"\f1b8"}.icon-red-river:before{content:"\f3e3"}.icon-reddit:before{content:"\f1a1"}.icon-reddit-alien:before{content:"\f281"}.icon-reddit-square:before{content:"\f1a2"}.icon-redhat:before{content:"\f7bc"}.icon-redo:before{content:"\f01e"}.icon-redo-alt:before{content:"\f2f9"}.icon-registered:before{content:"\f25d"}.icon-renren:before{content:"\f18b"}.icon-reply:before{content:"\f3e5"}.icon-reply-all:before{content:"\f122"}.icon-replyd:before{content:"\f3e6"}.icon-republican:before{content:"\f75e"}.icon-researchgate:before{content:"\f4f8"}.icon-resolving:before{content:"\f3e7"}.icon-restroom:before{content:"\f7bd"}.icon-retweet:before{content:"\f079"}.icon-rev:before{content:"\f5b2"}.icon-ribbon:before{content:"\f4d6"}.icon-ring:before{content:"\f70b"}.icon-road:before{content:"\f018"}.icon-robot:before{content:"\f544"}.icon-rocket:before{content:"\f135"}.icon-rocketchat:before{content:"\f3e8"}.icon-rockrms:before{content:"\f3e9"}.icon-route:before{content:"\f4d7"}.icon-rss:before{content:"\f09e"}.icon-rss-square:before{content:"\f143"}.icon-ruble-sign:before{content:"\f158"}.icon-ruler:before{content:"\f545"}.icon-ruler-combined:before{content:"\f546"}.icon-ruler-horizontal:before{content:"\f547"}.icon-ruler-vertical:before{content:"\f548"}.icon-running:before{content:"\f70c"}.icon-rupee-sign:before{content:"\f156"}.icon-sad-cry:before{content:"\f5b3"}.icon-sad-tear:before{content:"\f5b4"}.icon-safari:before{content:"\f267"}.icon-sass:before{content:"\f41e"}.icon-satellite:before{content:"\f7bf"}.icon-satellite-dish:before{content:"\f7c0"}.icon-save:before{content:"\f0c7"}.icon-schlix:before{content:"\f3ea"}.icon-school:before{content:"\f549"}.icon-screwdriver:before{content:"\f54a"}.icon-scribd:before{content:"\f28a"}.icon-scroll:before{content:"\f70e"}.icon-sd-card:before{content:"\f7c2"}.icon-search:before{content:"\f002"}.icon-search-dollar:before{content:"\f688"}.icon-search-location:before{content:"\f689"}.icon-search-minus:before{content:"\f010"}.icon-search-plus:before{content:"\f00e"}.icon-searchengin:before{content:"\f3eb"}.icon-seedling:before{content:"\f4d8"}.icon-sellcast:before{content:"\f2da"}.icon-sellsy:before{content:"\f213"}.icon-server:before{content:"\f233"}.icon-servicestack:before{content:"\f3ec"}.icon-shapes:before{content:"\f61f"}.icon-share:before{content:"\f064"}.icon-share-alt:before{content:"\f1e0"}.icon-share-alt-square:before{content:"\f1e1"}.icon-share-square:before{content:"\f14d"}.icon-shekel-sign:before{content:"\f20b"}.icon-shield-alt:before{content:"\f3ed"}.icon-ship:before{content:"\f21a"}.icon-shipping-fast:before{content:"\f48b"}.icon-shirtsinbulk:before{content:"\f214"}.icon-shoe-prints:before{content:"\f54b"}.icon-shopping-bag:before{content:"\f290"}.icon-shopping-basket:before{content:"\f291"}.icon-shopping-cart:before{content:"\f07a"}.icon-shopware:before{content:"\f5b5"}.icon-shower:before{content:"\f2cc"}.icon-shuttle-van:before{content:"\f5b6"}.icon-sign:before{content:"\f4d9"}.icon-sign-in-alt:before{content:"\f2f6"}.icon-sign-language:before{content:"\f2a7"}.icon-sign-out-alt:before{content:"\f2f5"}.icon-signal:before{content:"\f012"}.icon-signature:before{content:"\f5b7"}.icon-sim-card:before{content:"\f7c4"}.icon-simplybuilt:before{content:"\f215"}.icon-sistrix:before{content:"\f3ee"}.icon-sitemap:before{content:"\f0e8"}.icon-sith:before{content:"\f512"}.icon-skating:before{content:"\f7c5"}.icon-sketch:before{content:"\f7c6"}.icon-skiing:before{content:"\f7c9"}.icon-skiing-nordic:before{content:"\f7ca"}.icon-skull:before{content:"\f54c"}.icon-skull-crossbones:before{content:"\f714"}.icon-skyatlas:before{content:"\f216"}.icon-skype:before{content:"\f17e"}.icon-slack:before{content:"\f198"}.icon-slack-hash:before{content:"\f3ef"}.icon-slash:before{content:"\f715"}.icon-sleigh:before{content:"\f7cc"}.icon-sliders-h:before{content:"\f1de"}.icon-slideshare:before{content:"\f1e7"}.icon-smile:before{content:"\f118"}.icon-smile-beam:before{content:"\f5b8"}.icon-smile-wink:before{content:"\f4da"}.icon-smog:before{content:"\f75f"}.icon-smoking:before{content:"\f48d"}.icon-smoking-ban:before{content:"\f54d"}.icon-sms:before{content:"\f7cd"}.icon-snapchat:before{content:"\f2ab"}.icon-snapchat-ghost:before{content:"\f2ac"}.icon-snapchat-square:before{content:"\f2ad"}.icon-snowboarding:before{content:"\f7ce"}.icon-snowflake:before{content:"\f2dc"}.icon-snowman:before{content:"\f7d0"}.icon-snowplow:before{content:"\f7d2"}.icon-socks:before{content:"\f696"}.icon-solar-panel:before{content:"\f5ba"}.icon-sort:before{content:"\f0dc"}.icon-sort-alpha-down:before{content:"\f15d"}.icon-sort-alpha-up:before{content:"\f15e"}.icon-sort-amount-down:before{content:"\f160"}.icon-sort-amount-up:before{content:"\f161"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-numeric-down:before{content:"\f162"}.icon-sort-numeric-up:before{content:"\f163"}.icon-sort-up:before{content:"\f0de"}.icon-soundcloud:before{content:"\f1be"}.icon-sourcetree:before{content:"\f7d3"}.icon-spa:before{content:"\f5bb"}.icon-space-shuttle:before{content:"\f197"}.icon-speakap:before{content:"\f3f3"}.icon-spider:before{content:"\f717"}.icon-spinner:before{content:"\f110"}.icon-splotch:before{content:"\f5bc"}.icon-spotify:before{content:"\f1bc"}.icon-spray-can:before{content:"\f5bd"}.icon-square:before{content:"\f0c8"}.icon-square-full:before{content:"\f45c"}.icon-square-root-alt:before{content:"\f698"}.icon-squarespace:before{content:"\f5be"}.icon-stack-exchange:before{content:"\f18d"}.icon-stack-overflow:before{content:"\f16c"}.icon-stamp:before{content:"\f5bf"}.icon-star:before{content:"\f005"}.icon-star-and-crescent:before{content:"\f699"}.icon-star-half:before{content:"\f089"}.icon-star-half-alt:before{content:"\f5c0"}.icon-star-of-david:before{content:"\f69a"}.icon-star-of-life:before{content:"\f621"}.icon-staylinked:before{content:"\f3f5"}.icon-steam:before{content:"\f1b6"}.icon-steam-square:before{content:"\f1b7"}.icon-steam-symbol:before{content:"\f3f6"}.icon-step-backward:before{content:"\f048"}.icon-step-forward:before{content:"\f051"}.icon-stethoscope:before{content:"\f0f1"}.icon-sticker-mule:before{content:"\f3f7"}.icon-sticky-note:before{content:"\f249"}.icon-stop:before{content:"\f04d"}.icon-stop-circle:before{content:"\f28d"}.icon-stopwatch:before{content:"\f2f2"}.icon-store:before{content:"\f54e"}.icon-store-alt:before{content:"\f54f"}.icon-strava:before{content:"\f428"}.icon-stream:before{content:"\f550"}.icon-street-view:before{content:"\f21d"}.icon-strikethrough:before{content:"\f0cc"}.icon-stripe:before{content:"\f429"}.icon-stripe-s:before{content:"\f42a"}.icon-stroopwafel:before{content:"\f551"}.icon-studiovinari:before{content:"\f3f8"}.icon-stumbleupon:before{content:"\f1a4"}.icon-stumbleupon-circle:before{content:"\f1a3"}.icon-subscript:before{content:"\f12c"}.icon-subway:before{content:"\f239"}.icon-suitcase:before{content:"\f0f2"}.icon-suitcase-rolling:before{content:"\f5c1"}.icon-sun:before{content:"\f185"}.icon-superpowers:before{content:"\f2dd"}.icon-superscript:before{content:"\f12b"}.icon-supple:before{content:"\f3f9"}.icon-surprise:before{content:"\f5c2"}.icon-suse:before{content:"\f7d6"}.icon-swatchbook:before{content:"\f5c3"}.icon-swimmer:before{content:"\f5c4"}.icon-swimming-pool:before{content:"\f5c5"}.icon-synagogue:before{content:"\f69b"}.icon-sync:before{content:"\f021"}.icon-sync-alt:before{content:"\f2f1"}.icon-syringe:before{content:"\f48e"}.icon-table:before{content:"\f0ce"}.icon-table-tennis:before{content:"\f45d"}.icon-tablet:before{content:"\f10a"}.icon-tablet-alt:before{content:"\f3fa"}.icon-tablets:before{content:"\f490"}.icon-tachometer-alt:before{content:"\f3fd"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-tape:before{content:"\f4db"}.icon-tasks:before{content:"\f0ae"}.icon-taxi:before{content:"\f1ba"}.icon-teamspeak:before{content:"\f4f9"}.icon-teeth:before{content:"\f62e"}.icon-teeth-open:before{content:"\f62f"}.icon-telegram:before{content:"\f2c6"}.icon-telegram-plane:before{content:"\f3fe"}.icon-temperature-high:before{content:"\f769"}.icon-temperature-low:before{content:"\f76b"}.icon-tencent-weibo:before{content:"\f1d5"}.icon-tenge:before{content:"\f7d7"}.icon-terminal:before{content:"\f120"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-th:before{content:"\f00a"}.icon-th-large:before{content:"\f009"}.icon-th-list:before{content:"\f00b"}.icon-the-red-yeti:before{content:"\f69d"}.icon-theater-masks:before{content:"\f630"}.icon-themeco:before{content:"\f5c6"}.icon-themeisle:before{content:"\f2b2"}.icon-thermometer:before{content:"\f491"}.icon-thermometer-empty:before{content:"\f2cb"}.icon-thermometer-full:before{content:"\f2c7"}.icon-thermometer-half:before{content:"\f2c9"}.icon-thermometer-quarter:before{content:"\f2ca"}.icon-thermometer-three-quarters:before{content:"\f2c8"}.icon-think-peaks:before{content:"\f731"}.icon-thumbs-down:before{content:"\f165"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbtack:before{content:"\f08d"}.icon-ticket-alt:before{content:"\f3ff"}.icon-times:before{content:"\f00d"}.icon-times-circle:before{content:"\f057"}.icon-tint:before{content:"\f043"}.icon-tint-slash:before{content:"\f5c7"}.icon-tired:before{content:"\f5c8"}.icon-toggle-off:before{content:"\f204"}.icon-toggle-on:before{content:"\f205"}.icon-toilet:before{content:"\f7d8"}.icon-toilet-paper:before{content:"\f71e"}.icon-toolbox:before{content:"\f552"}.icon-tools:before{content:"\f7d9"}.icon-tooth:before{content:"\f5c9"}.icon-torah:before{content:"\f6a0"}.icon-torii-gate:before{content:"\f6a1"}.icon-tractor:before{content:"\f722"}.icon-trade-federation:before{content:"\f513"}.icon-trademark:before{content:"\f25c"}.icon-traffic-light:before{content:"\f637"}.icon-train:before{content:"\f238"}.icon-tram:before{content:"\f7da"}.icon-transgender:before{content:"\f224"}.icon-transgender-alt:before{content:"\f225"}.icon-trash:before{content:"\f1f8"}.icon-trash-alt:before{content:"\f2ed"}.icon-trash-restore:before{content:"\f829"}.icon-trash-restore-alt:before{content:"\f82a"}.icon-tree:before{content:"\f1bb"}.icon-trello:before{content:"\f181"}.icon-tripadvisor:before{content:"\f262"}.icon-trophy:before{content:"\f091"}.icon-truck:before{content:"\f0d1"}.icon-truck-loading:before{content:"\f4de"}.icon-truck-monster:before{content:"\f63b"}.icon-truck-moving:before{content:"\f4df"}.icon-truck-pickup:before{content:"\f63c"}.icon-tshirt:before{content:"\f553"}.icon-tty:before{content:"\f1e4"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-square:before{content:"\f174"}.icon-tv:before{content:"\f26c"}.icon-twitch:before{content:"\f1e8"}.icon-twitter:before{content:"\f099"}.icon-twitter-square:before{content:"\f081"}.icon-typo3:before{content:"\f42b"}.icon-uber:before{content:"\f402"}.icon-ubuntu:before{content:"\f7df"}.icon-uikit:before{content:"\f403"}.icon-umbrella:before{content:"\f0e9"}.icon-umbrella-beach:before{content:"\f5ca"}.icon-underline:before{content:"\f0cd"}.icon-undo:before{content:"\f0e2"}.icon-undo-alt:before{content:"\f2ea"}.icon-uniregistry:before{content:"\f404"}.icon-universal-access:before{content:"\f29a"}.icon-university:before{content:"\f19c"}.icon-unlink:before{content:"\f127"}.icon-unlock:before{content:"\f09c"}.icon-unlock-alt:before{content:"\f13e"}.icon-untappd:before{content:"\f405"}.icon-upload:before{content:"\f093"}.icon-ups:before{content:"\f7e0"}.icon-usb:before{content:"\f287"}.icon-user:before{content:"\f007"}.icon-user-alt:before{content:"\f406"}.icon-user-alt-slash:before{content:"\f4fa"}.icon-user-astronaut:before{content:"\f4fb"}.icon-user-check:before{content:"\f4fc"}.icon-user-circle:before{content:"\f2bd"}.icon-user-clock:before{content:"\f4fd"}.icon-user-cog:before{content:"\f4fe"}.icon-user-edit:before{content:"\f4ff"}.icon-user-friends:before{content:"\f500"}.icon-user-graduate:before{content:"\f501"}.icon-user-injured:before{content:"\f728"}.icon-user-lock:before{content:"\f502"}.icon-user-md:before{content:"\f0f0"}.icon-user-minus:before{content:"\f503"}.icon-user-ninja:before{content:"\f504"}.icon-user-nurse:before{content:"\f82f"}.icon-user-plus:before{content:"\f234"}.icon-user-secret:before{content:"\f21b"}.icon-user-shield:before{content:"\f505"}.icon-user-slash:before{content:"\f506"}.icon-user-tag:before{content:"\f507"}.icon-user-tie:before{content:"\f508"}.icon-user-times:before{content:"\f235"}.icon-users:before{content:"\f0c0"}.icon-users-cog:before{content:"\f509"}.icon-usps:before{content:"\f7e1"}.icon-ussunnah:before{content:"\f407"}.icon-utensil-spoon:before{content:"\f2e5"}.icon-utensils:before{content:"\f2e7"}.icon-vaadin:before{content:"\f408"}.icon-vector-square:before{content:"\f5cb"}.icon-venus:before{content:"\f221"}.icon-venus-double:before{content:"\f226"}.icon-venus-mars:before{content:"\f228"}.icon-viacoin:before{content:"\f237"}.icon-viadeo:before{content:"\f2a9"}.icon-viadeo-square:before{content:"\f2aa"}.icon-vial:before{content:"\f492"}.icon-vials:before{content:"\f493"}.icon-viber:before{content:"\f409"}.icon-video:before{content:"\f03d"}.icon-video-slash:before{content:"\f4e2"}.icon-vihara:before{content:"\f6a7"}.icon-vimeo:before{content:"\f40a"}.icon-vimeo-square:before{content:"\f194"}.icon-vimeo-v:before{content:"\f27d"}.icon-vine:before{content:"\f1ca"}.icon-vk:before{content:"\f189"}.icon-vnv:before{content:"\f40b"}.icon-volleyball-ball:before{content:"\f45f"}.icon-volume-down:before{content:"\f027"}.icon-volume-mute:before{content:"\f6a9"}.icon-volume-off:before{content:"\f026"}.icon-volume-up:before{content:"\f028"}.icon-vote-yea:before{content:"\f772"}.icon-vr-cardboard:before{content:"\f729"}.icon-vuejs:before{content:"\f41f"}.icon-walking:before{content:"\f554"}.icon-wallet:before{content:"\f555"}.icon-warehouse:before{content:"\f494"}.icon-water:before{content:"\f773"}.icon-weebly:before{content:"\f5cc"}.icon-weibo:before{content:"\f18a"}.icon-weight:before{content:"\f496"}.icon-weight-hanging:before{content:"\f5cd"}.icon-weixin:before{content:"\f1d7"}.icon-whatsapp:before{content:"\f232"}.icon-whatsapp-square:before{content:"\f40c"}.icon-wheelchair:before{content:"\f193"}.icon-whmcs:before{content:"\f40d"}.icon-wifi:before{content:"\f1eb"}.icon-wikipedia-w:before{content:"\f266"}.icon-wind:before{content:"\f72e"}.icon-window-close:before{content:"\f410"}.icon-window-maximize:before{content:"\f2d0"}.icon-window-minimize:before{content:"\f2d1"}.icon-window-restore:before{content:"\f2d2"}.icon-windows:before{content:"\f17a"}.icon-wine-bottle:before{content:"\f72f"}.icon-wine-glass:before{content:"\f4e3"}.icon-wine-glass-alt:before{content:"\f5ce"}.icon-wix:before{content:"\f5cf"}.icon-wizards-of-the-coast:before{content:"\f730"}.icon-wolf-pack-battalion:before{content:"\f514"}.icon-won-sign:before{content:"\f159"}.icon-wordpress:before{content:"\f19a"}.icon-wordpress-simple:before{content:"\f411"}.icon-wpbeginner:before{content:"\f297"}.icon-wpexplorer:before{content:"\f2de"}.icon-wpforms:before{content:"\f298"}.icon-wpressr:before{content:"\f3e4"}.icon-wrench:before{content:"\f0ad"}.icon-x-ray:before{content:"\f497"}.icon-xbox:before{content:"\f412"}.icon-xing:before{content:"\f168"}.icon-xing-square:before{content:"\f169"}.icon-y-combinator:before{content:"\f23b"}.icon-yahoo:before{content:"\f19e"}.icon-yandex:before{content:"\f413"}.icon-yandex-international:before{content:"\f414"}.icon-yarn:before{content:"\f7e3"}.icon-yelp:before{content:"\f1e9"}.icon-yen-sign:before{content:"\f157"}.icon-yin-yang:before{content:"\f6ad"}.icon-yoast:before{content:"\f2b1"}.icon-youtube:before{content:"\f167"}.icon-youtube-square:before{content:"\f431"}.icon-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands'}.icon.icon-glass:before{content:"\f000"}.icon.icon-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-o:before{content:"\f005"}.icon.icon-remove:before{content:"\f00d"}.icon.icon-close:before{content:"\f00d"}.icon.icon-gear:before{content:"\f013"}.icon.icon-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-trash-o:before{content:"\f2ed"}.icon.icon-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-o:before{content:"\f15b"}.icon.icon-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-clock-o:before{content:"\f017"}.icon.icon-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-down:before{content:"\f358"}.icon.icon-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-up:before{content:"\f35b"}.icon.icon-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-play-circle-o:before{content:"\f144"}.icon.icon-repeat:before{content:"\f01e"}.icon.icon-rotate-right:before{content:"\f01e"}.icon.icon-refresh:before{content:"\f021"}.icon.icon-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-dedent:before{content:"\f03b"}.icon.icon-video-camera:before{content:"\f03d"}.icon.icon-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-picture-o:before{content:"\f03e"}.icon.icon-photo{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-photo:before{content:"\f03e"}.icon.icon-image{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-image:before{content:"\f03e"}.icon.icon-pencil:before{content:"\f303"}.icon.icon-map-marker:before{content:"\f3c5"}.icon.icon-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-pencil-square-o:before{content:"\f044"}.icon.icon-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-share-square-o:before{content:"\f14d"}.icon.icon-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-check-square-o:before{content:"\f14a"}.icon.icon-arrows:before{content:"\f0b2"}.icon.icon-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-circle-o:before{content:"\f057"}.icon.icon-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-check-circle-o:before{content:"\f058"}.icon.icon-mail-forward:before{content:"\f064"}.icon.icon-eye{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-warning:before{content:"\f071"}.icon.icon-calendar:before{content:"\f073"}.icon.icon-arrows-v:before{content:"\f338"}.icon.icon-arrows-h:before{content:"\f337"}.icon.icon-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bar-chart:before{content:"\f080"}.icon.icon-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bar-chart-o:before{content:"\f080"}.icon.icon-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gears:before{content:"\f085"}.icon.icon-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-thumbs-o-up:before{content:"\f164"}.icon.icon-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-thumbs-o-down:before{content:"\f165"}.icon.icon-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-heart-o:before{content:"\f004"}.icon.icon-sign-out:before{content:"\f2f5"}.icon.icon-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linkedin-square:before{content:"\f08c"}.icon.icon-thumb-tack:before{content:"\f08d"}.icon.icon-external-link:before{content:"\f35d"}.icon.icon-sign-in:before{content:"\f2f6"}.icon.icon-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-lemon-o:before{content:"\f094"}.icon.icon-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-square-o:before{content:"\f0c8"}.icon.icon-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bookmark-o:before{content:"\f02e"}.icon.icon-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook:before{content:"\f39e"}.icon.icon-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-f:before{content:"\f39e"}.icon.icon-github{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-feed:before{content:"\f09e"}.icon.icon-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hdd-o:before{content:"\f0a0"}.icon.icon-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-right:before{content:"\f0a4"}.icon.icon-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-left:before{content:"\f0a5"}.icon.icon-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-up:before{content:"\f0a6"}.icon.icon-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-down:before{content:"\f0a7"}.icon.icon-arrows-alt:before{content:"\f31e"}.icon.icon-group:before{content:"\f0c0"}.icon.icon-chain:before{content:"\f0c1"}.icon.icon-scissors:before{content:"\f0c4"}.icon.icon-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-files-o:before{content:"\f0c5"}.icon.icon-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-floppy-o:before{content:"\f0c7"}.icon.icon-navicon:before{content:"\f0c9"}.icon.icon-reorder:before{content:"\f0c9"}.icon.icon-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus:before{content:"\f0d5"}.icon.icon-money{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-money:before{content:"\f3d1"}.icon.icon-unsorted:before{content:"\f0dc"}.icon.icon-sort-desc:before{content:"\f0dd"}.icon.icon-sort-asc:before{content:"\f0de"}.icon.icon-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linkedin:before{content:"\f0e1"}.icon.icon-rotate-left:before{content:"\f0e2"}.icon.icon-legal:before{content:"\f0e3"}.icon.icon-tachometer:before{content:"\f3fd"}.icon.icon-dashboard:before{content:"\f3fd"}.icon.icon-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-comment-o:before{content:"\f075"}.icon.icon-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-comments-o:before{content:"\f086"}.icon.icon-flash:before{content:"\f0e7"}.icon.icon-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paste{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paste:before{content:"\f328"}.icon.icon-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-lightbulb-o:before{content:"\f0eb"}.icon.icon-exchange:before{content:"\f362"}.icon.icon-cloud-download:before{content:"\f381"}.icon.icon-cloud-upload:before{content:"\f382"}.icon.icon-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bell-o:before{content:"\f0f3"}.icon.icon-cutlery:before{content:"\f2e7"}.icon.icon-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-text-o:before{content:"\f15c"}.icon.icon-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-building-o:before{content:"\f1ad"}.icon.icon-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hospital-o:before{content:"\f0f8"}.icon.icon-tablet:before{content:"\f3fa"}.icon.icon-mobile:before{content:"\f3cd"}.icon.icon-mobile-phone:before{content:"\f3cd"}.icon.icon-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-circle-o:before{content:"\f111"}.icon.icon-mail-reply:before{content:"\f3e5"}.icon.icon-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-folder-o:before{content:"\f07b"}.icon.icon-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-folder-open-o:before{content:"\f07c"}.icon.icon-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-smile-o:before{content:"\f118"}.icon.icon-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-frown-o:before{content:"\f119"}.icon.icon-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-meh-o:before{content:"\f11a"}.icon.icon-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-keyboard-o:before{content:"\f11c"}.icon.icon-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-flag-o:before{content:"\f024"}.icon.icon-mail-reply-all:before{content:"\f122"}.icon.icon-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-o:before{content:"\f089"}.icon.icon-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-empty:before{content:"\f089"}.icon.icon-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-full:before{content:"\f089"}.icon.icon-code-fork:before{content:"\f126"}.icon.icon-chain-broken:before{content:"\f127"}.icon.icon-shield:before{content:"\f3ed"}.icon.icon-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-o:before{content:"\f133"}.icon.icon-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ticket:before{content:"\f3ff"}.icon.icon-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-minus-square-o:before{content:"\f146"}.icon.icon-level-up:before{content:"\f3bf"}.icon.icon-level-down:before{content:"\f3be"}.icon.icon-pencil-square:before{content:"\f14b"}.icon.icon-external-link-square:before{content:"\f360"}.icon.icon-compass{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-down:before{content:"\f150"}.icon.icon-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-down:before{content:"\f150"}.icon.icon-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-up:before{content:"\f151"}.icon.icon-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-up:before{content:"\f151"}.icon.icon-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-right:before{content:"\f152"}.icon.icon-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-right:before{content:"\f152"}.icon.icon-eur:before{content:"\f153"}.icon.icon-euro:before{content:"\f153"}.icon.icon-gbp:before{content:"\f154"}.icon.icon-usd:before{content:"\f155"}.icon.icon-dollar:before{content:"\f155"}.icon.icon-inr:before{content:"\f156"}.icon.icon-rupee:before{content:"\f156"}.icon.icon-jpy:before{content:"\f157"}.icon.icon-cny:before{content:"\f157"}.icon.icon-rmb:before{content:"\f157"}.icon.icon-yen:before{content:"\f157"}.icon.icon-rub:before{content:"\f158"}.icon.icon-ruble:before{content:"\f158"}.icon.icon-rouble:before{content:"\f158"}.icon.icon-krw:before{content:"\f159"}.icon.icon-won:before{content:"\f159"}.icon.icon-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitcoin:before{content:"\f15a"}.icon.icon-file-text:before{content:"\f15c"}.icon.icon-sort-alpha-asc:before{content:"\f15d"}.icon.icon-sort-alpha-desc:before{content:"\f15e"}.icon.icon-sort-amount-asc:before{content:"\f160"}.icon.icon-sort-amount-desc:before{content:"\f161"}.icon.icon-sort-numeric-asc:before{content:"\f162"}.icon.icon-sort-numeric-desc:before{content:"\f163"}.icon.icon-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube-play:before{content:"\f167"}.icon.icon-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket-square:before{content:"\f171"}.icon.icon-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-long-arrow-down:before{content:"\f309"}.icon.icon-long-arrow-up:before{content:"\f30c"}.icon.icon-long-arrow-left:before{content:"\f30a"}.icon.icon-long-arrow-right:before{content:"\f30b"}.icon.icon-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-android{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gittip:before{content:"\f184"}.icon.icon-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sun-o:before{content:"\f185"}.icon.icon-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-moon-o:before{content:"\f186"}.icon.icon-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-right:before{content:"\f35a"}.icon.icon-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-left:before{content:"\f359"}.icon.icon-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-left:before{content:"\f191"}.icon.icon-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-left:before{content:"\f191"}.icon.icon-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-dot-circle-o:before{content:"\f192"}.icon.icon-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-try:before{content:"\f195"}.icon.icon-turkish-lira:before{content:"\f195"}.icon.icon-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-plus-square-o:before{content:"\f0fe"}.icon.icon-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-institution:before{content:"\f19c"}.icon.icon-bank:before{content:"\f19c"}.icon.icon-mortar-board:before{content:"\f19d"}.icon.icon-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-spoon:before{content:"\f2e5"}.icon.icon-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-automobile:before{content:"\f1b9"}.icon.icon-cab:before{content:"\f1ba"}.icon.icon-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-envelope-o:before{content:"\f0e0"}.icon.icon-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-pdf-o:before{content:"\f1c1"}.icon.icon-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-word-o:before{content:"\f1c2"}.icon.icon-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-excel-o:before{content:"\f1c3"}.icon.icon-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-powerpoint-o:before{content:"\f1c4"}.icon.icon-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-image-o:before{content:"\f1c5"}.icon.icon-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-photo-o:before{content:"\f1c5"}.icon.icon-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-picture-o:before{content:"\f1c5"}.icon.icon-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-archive-o:before{content:"\f1c6"}.icon.icon-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-zip-o:before{content:"\f1c6"}.icon.icon-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-audio-o:before{content:"\f1c7"}.icon.icon-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-sound-o:before{content:"\f1c7"}.icon.icon-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-video-o:before{content:"\f1c8"}.icon.icon-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-movie-o:before{content:"\f1c8"}.icon.icon-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-code-o:before{content:"\f1c9"}.icon.icon-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-bouy:before{content:"\f1cd"}.icon.icon-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-buoy:before{content:"\f1cd"}.icon.icon-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-saver:before{content:"\f1cd"}.icon.icon-support{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-support:before{content:"\f1cd"}.icon.icon-circle-o-notch:before{content:"\f1ce"}.icon.icon-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ra:before{content:"\f1d0"}.icon.icon-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-resistance:before{content:"\f1d0"}.icon.icon-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ge:before{content:"\f1d1"}.icon.icon-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-git{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator-square:before{content:"\f1d4"}.icon.icon-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc-square:before{content:"\f1d4"}.icon.icon-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wechat:before{content:"\f1d7"}.icon.icon-send:before{content:"\f1d8"}.icon.icon-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paper-plane-o:before{content:"\f1d8"}.icon.icon-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-send-o:before{content:"\f1d8"}.icon.icon-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-circle-thin:before{content:"\f111"}.icon.icon-header:before{content:"\f1dc"}.icon.icon-sliders:before{content:"\f1de"}.icon.icon-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-futbol-o:before{content:"\f1e3"}.icon.icon-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-soccer-ball-o:before{content:"\f1e3"}.icon.icon-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-newspaper-o:before{content:"\f1ea"}.icon.icon-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bell-slash-o:before{content:"\f1f6"}.icon.icon-trash:before{content:"\f2ed"}.icon.icon-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-eyedropper:before{content:"\f1fb"}.icon.icon-area-chart:before{content:"\f1fe"}.icon.icon-pie-chart:before{content:"\f200"}.icon.icon-line-chart:before{content:"\f201"}.icon.icon-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-cc:before{content:"\f20a"}.icon.icon-ils:before{content:"\f20b"}.icon.icon-shekel:before{content:"\f20b"}.icon.icon-sheqel:before{content:"\f20b"}.icon.icon-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-meanpath:before{content:"\f2b4"}.icon.icon-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-diamond:before{content:"\f3a5"}.icon.icon-intersex:before{content:"\f224"}.icon.icon-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-official:before{content:"\f09a"}.icon.icon-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-hotel:before{content:"\f236"}.icon.icon-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc:before{content:"\f23b"}.icon.icon-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-battery-4:before{content:"\f240"}.icon.icon-battery:before{content:"\f240"}.icon.icon-battery-3:before{content:"\f241"}.icon.icon-battery-2:before{content:"\f242"}.icon.icon-battery-1:before{content:"\f243"}.icon.icon-battery-0:before{content:"\f244"}.icon.icon-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sticky-note-o:before{content:"\f249"}.icon.icon-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-clone{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hourglass-o:before{content:"\f254"}.icon.icon-hourglass-1:before{content:"\f251"}.icon.icon-hourglass-2:before{content:"\f252"}.icon.icon-hourglass-3:before{content:"\f253"}.icon.icon-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-rock-o:before{content:"\f255"}.icon.icon-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-grab-o:before{content:"\f255"}.icon.icon-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-paper-o:before{content:"\f256"}.icon.icon-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-stop-o:before{content:"\f256"}.icon.icon-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-scissors-o:before{content:"\f257"}.icon.icon-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-lizard-o:before{content:"\f258"}.icon.icon-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-spock-o:before{content:"\f259"}.icon.icon-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-pointer-o:before{content:"\f25a"}.icon.icon-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-peace-o:before{content:"\f25b"}.icon.icon-registered{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-television:before{content:"\f26c"}.icon.icon-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-plus-o:before{content:"\f271"}.icon.icon-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-minus-o:before{content:"\f272"}.icon.icon-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-times-o:before{content:"\f273"}.icon.icon-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-check-o:before{content:"\f274"}.icon.icon-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-map-o:before{content:"\f279"}.icon.icon-commenting:before{content:"\f4ad"}.icon.icon-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-commenting-o:before{content:"\f4ad"}.icon.icon-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-vimeo:before{content:"\f27d"}.icon.icon-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-credit-card-alt:before{content:"\f09d"}.icon.icon-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-pause-circle-o:before{content:"\f28b"}.icon.icon-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-stop-circle-o:before{content:"\f28d"}.icon.icon-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wheelchair-alt:before{content:"\f368"}.icon.icon-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-question-circle-o:before{content:"\f059"}.icon.icon-volume-control-phone:before{content:"\f2a0"}.icon.icon-asl-interpreting:before{content:"\f2a3"}.icon.icon-deafness:before{content:"\f2a4"}.icon.icon-hard-of-hearing:before{content:"\f2a4"}.icon.icon-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-signing:before{content:"\f2a7"}.icon.icon-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-official:before{content:"\f2b3"}.icon.icon-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-circle:before{content:"\f2b3"}.icon.icon-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fa:before{content:"\f2b4"}.icon.icon-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-handshake-o:before{content:"\f2b5"}.icon.icon-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-envelope-open-o:before{content:"\f2b6"}.icon.icon-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-address-book-o:before{content:"\f2b9"}.icon.icon-vcard:before{content:"\f2bb"}.icon.icon-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-address-card-o:before{content:"\f2bb"}.icon.icon-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-vcard-o:before{content:"\f2bb"}.icon.icon-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-user-circle-o:before{content:"\f2bd"}.icon.icon-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-user-o:before{content:"\f007"}.icon.icon-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-drivers-license:before{content:"\f2c2"}.icon.icon-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-id-card-o:before{content:"\f2c2"}.icon.icon-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-drivers-license-o:before{content:"\f2c2"}.icon.icon-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-thermometer-4:before{content:"\f2c7"}.icon.icon-thermometer:before{content:"\f2c7"}.icon.icon-thermometer-3:before{content:"\f2c8"}.icon.icon-thermometer-2:before{content:"\f2c9"}.icon.icon-thermometer-1:before{content:"\f2ca"}.icon.icon-thermometer-0:before{content:"\f2cb"}.icon.icon-bathtub:before{content:"\f2cd"}.icon.icon-s15:before{content:"\f2cd"}.icon.icon-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-rectangle:before{content:"\f410"}.icon.icon-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-window-close-o:before{content:"\f410"}.icon.icon-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-rectangle-o:before{content:"\f410"}.icon.icon-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-eercast:before{content:"\f2da"}.icon.icon-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-snowflake-o:before{content:"\f2dc"}.icon.icon-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}#modx-navbar #modx-topnav{margin-left:auto;margin-right:auto;max-width:1200px}#modx-navbar #modx-topnav::after{clear:both;content:"";display:block}#modx-footer .modx-subnav li.sub:after,#modx-leftbar-header a:after,.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.crumb_wrapper .crumbs li.first:before,.ext-mb-icon:before,.home-panel ol li:hover button:before,.icon,.icon-3gp:before,.icon-7z:before,.icon-aac:before,.icon-access:before,.icon-aif:before,.icon-aiff:before,.icon-as:before,.icon-avi:before,.icon-backup:before,.icon-bak:before,.icon-bat:before,.icon-bk:before,.icon-bmp:before,.icon-bz2:before,.icon-cal:before,.icon-cfm:before,.icon-coffeescript:before,.icon-css:before,.icon-csv:before,.icon-db:before,.icon-dmg:before,.icon-doc:before,.icon-docx:before,.icon-fla:before,.icon-flac:before,.icon-flv:before,.icon-folder:before,.icon-gif:before,.icon-gz:before,.icon-htaccess:before,.icon-htm:before,.icon-html:before,.icon-ical:before,.icon-ics:before,.icon-iso:before,.icon-jar:before,.icon-java:before,.icon-jpeg:before,.icon-jpg:before,.icon-js:before,.icon-json:before,.icon-less:before,.icon-lock,.icon-log:before,.icon-m4a:before,.icon-m4v:before,.icon-mov:before,.icon-mp3:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-ogg:before,.icon-pdf:before,.icon-php:before,.icon-png:before,.icon-ppt:before,.icon-pptx:before,.icon-rar:before,.icon-rb:before,.icon-rss:before,.icon-scr:before,.icon-scss:before,.icon-sh:before,.icon-sql:before,.icon-styl:before,.icon-svg:before,.icon-swf:before,.icon-tar:before,.icon-tgz:before,.icon-tiff:before,.icon-txt:before,.icon-vcs:before,.icon-wav:before,.icon-wma:before,.icon-wmv:before,.icon-xls:before,.icon-xlsx:before,.icon-xml:before,.icon-zip:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.locked-resource:before,.modx-browser-detail-thumb.preview:before,.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before,.modx-header-breadcrumbs ul li:after,.modx-manager-search-results .loading-indicator:before,.modx-status-msg:after,.parent-resource:before,.tree-context:before,.tree-new-category>em>button:before,.tree-new-chunk>em>button:before,.tree-new-plugin>em>button:before,.tree-new-resource>em>button:before,.tree-new-snippet>em>button:before,.tree-new-static-resource>em>button:before,.tree-new-symlink>em>button:before,.tree-new-template>em>button:before,.tree-new-tv>em>button:before,.tree-new-weblink>em>button:before,.tree-resource:before,.tree-static-resource:before,.tree-symlink:before,.tree-trash>em>button:before,.tree-weblink:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.icon-file_manager button:before,.x-btn-icon.icon-file_upload button:before,.x-btn-icon.icon-folder button:before,.x-btn-icon.icon-page_white button:before,.x-btn-icon.refresh button:before,.x-date-left a:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before,.x-form-field-wrap .x-form-trigger:before,.x-form-invalid-msg:before,.x-form-item label.x-form-item-label .modx-tv-reset:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before,.x-grid-group-hd div.x-grid-group-title:before,.x-grid3-check-col-on:before,.x-grid3-check-col:before,.x-grid3-hd-btn:before,.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before,.x-grid3-row-collapsed .x-grid3-row-expander:before,.x-grid3-row-expanded .x-grid3-row-expander:before,.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before,.x-tab-scroller-left:before,.x-tab-scroller-right:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before,.x-tool:after,.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before,.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free','Font Awesome 5 Brands';font-weight:900}.crumb_wrapper .crumbs li.first:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.refresh button:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before{position:absolute;top:0;left:0;right:0;bottom:0;line-height:100%;width:100%;height:100%;font-size:14px;color:inherit;text-align:center}#modx-tv-tabs:after,#modx-tv-tabs:before{content:" ";display:table}#modx-tv-tabs:after{clear:both}.x-splitbar-proxy{background-color:#aaa}.x-color-palette a{border-color:#fff}.x-color-palette a.x-color-palette-sel,.x-color-palette a:hover{background-color:#ebebeb;border-color:#b4b4b4}.x-color-palette em{border-color:#aca899}.loading-indicator{background-image:url(../images/modx-theme/grid/loading.gif);font-size:11px}.x-spotlight{background-color:#ccc}.ext-ie7 .x-plain-body{position:relative}.x-statusbar .x-status-busy{background-image:url(../images/modx-theme/grid/loading.gif)}.x-statusbar .x-status-text-panel{border-color:#dfdfdf #fff #fff #dfdfdf}.x-resizable-handle-southeast{bottom:1px;right:1px}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background-image:url(../images/modx-theme/sizer/e-handle.gif)}.x-resizable-over .x-resizable-handle-north,.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-south{background-image:url(../images/modx-theme/sizer/s-handle.gif)}.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background-image:url(../images/modx-theme/sizer/s-handle.gif)}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background-image:url(../images/modx-theme/sizer/se-handle.gif)}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background-image:url(../images/modx-theme/sizer/nw-handle.gif)}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background-image:url(../images/modx-theme/sizer/ne-handle.gif)}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background-image:url(../images/modx-theme/sizer/sw-handle.gif)}.x-resizable-proxy{border-color:#575757}.x-resizable-overlay{background-color:#fff}.x-grid3{background-color:transparent;background-image:none;border:1px solid #e4e9ee;border-radius:3px;overflow:hidden;padding:0}.x-grid-panel .x-panel-mc .x-panel-body{border:0 none}.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-grid3-row td,.x-grid3-summary-row td{border-left:1px solid transparent;padding-left:0}.x-grid3-hd-row td{border-left:1px solid #fff;border-right:none}.x-grid3-hd-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-summary-first{border-left:0 none}.x-grid3-hd-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-summary-last{border-right:0 none}.x-grid-row-loading{background-color:#fff;background-image:url(../images/modx-theme/shared/loading-balls.gif)}.x-grid3-row{border-color:#fff #fff #efefef}.x-grid3-row-expanded .x-grid3-row-body{color:#888;margin:0 2px 0 -20px;padding:0 25px 15px;word-wrap:break-word}.x-grid3-row-expanded .x-grid3-row-body .desc{word-wrap:break-word}.x-grid3-row-alt{background-color:#f5f6f9}.x-panel-body-noheader .x-grid3-row{border-color:transparent}.x-panel-body-noheader .x-grid3-row-alt{border-bottom:1px solid #eaeaea;border-top:1px solid #eaeaea}.x-panel-body-noheader .x-grid3-row-alt .x-grid3-row-table{border-top:1px solid transparent}.x-grid3-row-over{background-color:#e0e8ef;background-image:none;border-bottom:1px solid #d1d9df}.x-grid3-resize-proxy{background-color:#777}.x-grid3-resize-marker{background-color:#777}.x-grid3-header{background:#fff;border-bottom:1px solid #e4e9ee!important;padding:0}.x-panel-body-noheader .x-grid3-header{border:none}.x-grid3-header-offset{padding-left:0}.x-grid3-header .x-grid3-hd-row td{color:#696969;font-weight:700}.x-grid3-header-pop{border-left-color:#dfdfdf}.x-grid3-header-pop-inner{background-image:url(../images/modx-theme/grid/hd-pop.gif);border-left-color:#eee}td.sort-asc,td.sort-desc,td.x-grid3-hd-menu-open,td.x-grid3-hd-over{border-left-color:#fff;background:#fff}td.sort-asc .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner,td.x-grid3-hd-over .x-grid3-hd-inner{color:#696969}.sort-asc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_asc.gif)}.sort-desc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_desc.gif)}.x-panel-body-noheader .x-grid3-body{background-color:#fff}.x-grid3-cell-text,.x-grid3-hd-text{color:#515151}.x-grid3-split{background-image:url(../images/modx-theme/grid/grid-split.gif)}.x-grid3-hd-text{color:#464646}.x-dd-drag-proxy .x-grid3-hd-inner{background-color:#f2f2f2;background-image:url(../images/modx-theme/grid/grid3-hrow-over.gif);border-color:#c8c8c8}.col-move-top{background-image:url(../images/modx-theme/grid/col-move-top.gif)}.col-move-bottom{background-image:url(../images/modx-theme/grid/col-move-bottom.gif)}.x-grid3-row-selected{background-color:#f0f0f0;background-image:none;border-bottom:1px solid #e4e4e4!important;border-top:1px solid #e4e4e4!important;color:#565550}.x-grid3-row-last,.x-grid3-row-last .x-grid3-row-selected{border-bottom-color:transparent!important}.x-grid3-cell-selected{background-color:#e0eaef!important;color:#515151}.x-grid3-cell-selected span{color:#515151!important}.x-grid3-cell-selected .x-grid3-cell-text{color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker,.x-grid3-locked td.x-grid3-row-marker{background-color:#d7d9df!important;background-image:url(../images/modx-theme/grid/grid-hrow.gif)!important;border-right-color:#9c9c9c!important;border-top-color:#fff;color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div,.x-grid3-locked td.x-grid3-row-marker div{color:#464646!important}.x-grid3-dirty-cell{background-image:url(../images/modx-theme/grid/dirty.gif)}.x-grid3-bottombar,.x-grid3-topbar{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-grid3-bottombar .x-toolbar{border-top-color:#bcbcbc}.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)!important;color:#515151!important}.x-grid3-hd-inner{font-weight:700;padding:13px 18px 13px 5px}.ext-ie .x-grid3-hd-inner{width:auto}.x-grid3-cell-inner,.x-grid3-hd-inner{padding:13px 18px 13px 5px}.x-props-grid .x-grid3-body .x-grid3-td-name{background-color:#fff!important;border-right-color:#eee}.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-asc.gif)}.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-desc.gif)}.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-lock.gif)}.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-unlock.gif)}.x-grid3-hd-btn{background-color:#fff}.x-grid3-hd-btn:before{content:"\f0d7";font-weight:900;font-style:normal;color:#77899f;font-size:14px;text-align:center;position:absolute;top:14px;left:0;right:0}.x-grid3-hd-btn:hover{background-color:#fff}.x-grid3-body .x-grid3-td-expander{background-image:none;text-align:right}.x-grid3-row-collapsed .x-grid3-row-expander{height:27px;margin-top:14px}.x-grid3-row-collapsed .x-grid3-row-expander:before{content:"\f0fe";font-weight:400;font-size:14px;color:#53595f}.x-grid3-row-expanded .x-grid3-row-expander{height:27px;margin-top:14px}.x-grid3-row-expanded .x-grid3-row-expander:before{content:"\f146";font-weight:400;font-size:14px;color:#53595f}.x-grid3-body .x-grid3-td-checker{background-image:none;padding:10px 0 0}.x-grid3-hd-checker:not(.x-grid3-hd-inner),.x-grid3-row-checker{cursor:pointer}.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before{content:"\f0c8";font-weight:400;font-size:14px;display:inline-block;padding:3px 5px;color:#53595f}.x-grid3-hd-checker-on .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-hd-checker-on .x-grid3-row-checker:before,.x-grid3-row-selected .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-selected .x-grid3-row-checker:before{content:"\f14a";font-weight:400}.x-grid3-body .x-grid3-td-numberer{background-color:#e5e5e5;border-bottom:1px solid #dadada;border-right:1px solid #dadada!important}.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{color:#444;padding-left:10px;padding-top:10px!important}.x-grid3-body .x-grid3-td-row-icon{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)}.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander,.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer{background-image:none}.x-grid3-check-col{cursor:pointer;margin-top:10px}.x-grid3-check-col:before{content:"\f0c8";font-weight:400;font-size:14px;display:block;padding:3px 5px;color:#53595f;text-align:left;width:14px;margin:0 auto}.x-grid3-check-col-on{cursor:pointer;margin-top:10px}.x-grid3-check-col-on:before{content:"\f14a";font-weight:400;font-size:14px;display:block;padding:3px 5px;color:#53595f;text-align:left;width:14px;margin:0 auto}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1}.x-grid-group-hd{border-bottom-color:#53595f}.x-grid-group-hd div.x-grid-group-title{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;font-size:12px;font-weight:700;padding:8px 4px 12px 5px}.x-grid-group-hd div.x-grid-group-title:before{content:"\f146";font-weight:400;font-size:14px;font-style:normal;margin-right:10px}.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before{content:"\f0fe";font-weight:400;font-style:normal;margin-right:10px}.x-group-by-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-cols-icon{background-image:url(../images/modx-theme/grid/columns.gif)}.x-show-groups-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-grid-empty{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;text-align:center}.x-grid-with-col-lines .x-grid3-row td.x-grid3-cell{border-right-color:#ededed}.x-grid-with-col-lines .x-grid3-row{border-left:0 none;border-top:0 none}.x-grid-with-col-lines .x-grid3-row-selected{border-top-color:#e4e4e4}.x-dd-drag-ghost{background-color:#fff;border-color:#ddd #bbb #bbb #dfdfdf;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-no.gif)}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-yes.gif)}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-add.gif)}.x-view-selector{background-color:#d8d8d8;border-color:#8d8d8d}.x-tip{background:#575757;border-radius:3px;padding:5px;width:auto!important;max-width:400px;min-width:200px}.x-tip .x-tip-close{background-image:url(../images/modx-theme/qtip/close.gif)}.x-tip .x-tip-bc,.x-tip .x-tip-bl,.x-tip .x-tip-br,.x-tip .x-tip-ml,.x-tip .x-tip-mr,.x-tip .x-tip-tc,.x-tip .x-tip-tl,.x-tip .x-tip-tr{background-image:none}.x-tip .x-tip-mc{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-tip .x-tip-ml{background-color:transparent}.x-tip .x-tip-header-text{color:#f0f0f0;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-tip .x-tip-body{color:#f0f0f0;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:auto!important}.x-tip img{display:block;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.x-form-invalid-tip .x-tip-bc,.x-form-invalid-tip .x-tip-bl,.x-form-invalid-tip .x-tip-br,.x-form-invalid-tip .x-tip-ml,.x-form-invalid-tip .x-tip-mr,.x-form-invalid-tip .x-tip-tc,.x-form-invalid-tip .x-tip-tl,.x-form-invalid-tip .x-tip-tr{background-image:url(../images/modx-theme/form/error-tip-corners.gif)}.x-form-invalid-tip .x-tip-body{background-image:url(../images/modx-theme/form/exclamation.gif)}.x-tip-anchor{background-image:url(../images/modx-theme/qtip/tip-anchor-sprite.gif)}.x-menu{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;box-shadow:0 4px 6px rgba(0,0,0,.15)}.x-menu-list{padding:0}.x-menu-list li{border:0;margin:0;padding:0}.x-menu-list li:first-child{margin-top:3px}.x-menu-list li:last-child{margin-bottom:3px}.x-menu-list li.x-menu-date-item{margin:0}.x-menu-list li a.x-menu-item{color:#515151;font-size:13px;padding:3px 21px 3px 27px}.x-menu-list li a.x-menu-item:hover{color:#515151}.x-menu-list li.x-menu-item-active{background-color:#f0f0f0}.x-menu-list li.x-menu-item-active a{color:#515151}.x-menu-floating{border-color:#c7c7c7}.x-menu-nosep{background-image:none}.x-menu-list-item{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-menu-item-arrow{background-image:url(../images/modx-theme/menu/menu-parent.gif)}.x-menu-sep{background-color:#e4e4e4;border-bottom:none;margin:2px 0}.x-menu-item-active a.x-menu-item{border:0 none;margin:0}.x-menu-check-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/unchecked.gif)}.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/modx-theme/menu/checked.gif)}.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/group-checked.gif)}.x-menu-group-item .x-menu-item-icon{background-image:none}.x-menu-plain{background-color:#fff!important}.x-cycle-menu .x-menu-item-checked{background-color:#dfdfdf;border-color:#b9b9b9!important}.x-menu-scroller-top{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-menu-scroller-bottom{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-box-ml,.x-box-tl{background-color:#fafafa;background-image:none;color:#393939;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-box-mc p{font-weight:400;margin-bottom:5px}.x-box-tl{background-color:rgba(250,250,250,.8);border-left:1px solid #dedede;border-right:1px solid #dedede;border-top:1px solid #dedede}.x-box-ml{background-color:rgba(250,250,250,.8);border-left:1px solid #dedede;border-right:1px solid #dedede}.x-box-bl{background-color:rgba(230,230,230,.8);border-bottom:1px solid #dedede;border-left:1px solid #dedede;border-right:1px solid #dedede}.x-box-mc h3{font-size:14px;font-weight:700}.x-box-bc,.x-box-bl,.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr,.x-box-br,.x-box-mr{background-image:none}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/modx-theme/box/tb-gray.gif)}.x-box-blue .x-box-mc{background-color:#d8d8d8}.x-box-blue .x-box-mc h3{color:#363636}.x-box-blue .x-box-ml{background-image:url(../images/modx-theme/box/l-gray.gif)}.x-box-blue .x-box-mr{background-image:url(../images/modx-theme/box/r-gray.gif)}#x-debug-browser .x-tree .x-tree-node a span{color:#333;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:11px}#x-debug-browser .x-tree a i{color:#cf1124;font-style:normal}#x-debug-browser .x-tree a em{color:#999}#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background-color:#d8d8d8}.x-panel-bwrap{overflow:visible}.x-panel-body{border:0;border-radius:3px;overflow:visible}#modx-panel-packages-browser .x-panel-body{border-radius:0}.x-grid-panel .x-panel-body{background-color:#f5f5f5;border-bottom:1px solid #e4e4e4;border-top:1px solid #fafafa;border:0 none}.x-grid-panel .x-panel-body-noheader{background-color:transparent;border:0 none;padding:0!important}.x-panel-tl .x-panel-header{color:#6a6a6a;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-panel-tl .x-panel-icon{background-position:0 8px}.x-panel-tc{background-image:none}.x-panel-bl,.x-panel-br,.x-panel-tl,.x-panel-tr{background-image:none;border-bottom-color:#dfdfdf}.x-panel-bc{background-image:none}.x-panel-tc{background-color:#f5f5f5}.x-panel-tl{border-color:#e3e3e3 #e3e3e3;border-style:solid solid none;border-width:1px 1px 0}.x-panel-tl .x-panel-header{border-bottom:1px solid #e4e4e4;padding:10px 0}.x-panel-bc .x-panel-footer{padding-bottom:0}.x-panel-btns{background-color:transparent;padding:15px 0 1px 0}.x-panel-btns td.x-toolbar-cell{padding:0}.x-panel-mc{background-color:#f5f5f5;border-bottom:1px solid #dfdfdf;border-top:1px solid #fafafa;padding:10px 5px}.x-panel-bl,.x-panel-ml,.x-panel-tl{background-color:#f5f5f5;padding-left:8px}.x-panel-ml,.x-panel-mr{background-image:none}.x-panel-bl{border-color:#e3e3e3 #e3e3e3;border-style:none solid solid;border-width:0 1px 1px;padding-bottom:8px}.x-panel-ml{border-left:1px solid #e3e3e3;border-right:1px solid #e3e3e3}.x-panel-mr{padding-right:8px}.x-panel-br,.x-panel-mr,.x-panel-tr{background-color:#f7f7f7}.x-tool{background:0 0;border-radius:50%;color:#515151;font-size:14px;margin:0 3px 0 0;position:relative;transition:all .3s;width:18px;height:18px}.x-tool:after{box-sizing:border-box;padding-top:2px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-tool:hover{color:#fff;background:#234368}.x-tool.x-tool-toggle:after{content:"\f077";padding-top:2px}.x-tool.x-tool-toggle-over:after,.x-tool.x-tool-toggle:hover:after{content:"\f077"}.x-panel-collapsed .x-tool.x-tool-toggle:after{content:"\f078";padding-top:3px}.x-panel-collapsed .x-tool.x-tool-toggle-over:after,.x-panel-collapsed .x-tool.x-tool-toggle:hover:after{content:"\f078";padding-top:3px}.x-tool.x-tool-close:after{content:"\f00d"}.x-tool.x-tool-minimize:after{content:"\f066"}.x-tool.x-tool-maximize:after{content:"\f065"}.x-tool.x-tool-restore:after{content:"\f066"}.x-tool.x-tool-gear:after{content:"\f013"}.x-tool.x-tool-pin:after{content:"\f111"}.x-tool.x-tool-pin-over:after,.x-tool.x-tool-pin:hover:after{content:"\f192"}.x-tool.x-tool-unpin:after{content:"\f192"}.x-tool.x-tool-unpin-over:after,.x-tool.x-tool-unpin:hover:after{content:"\f111"}.x-tool.x-tool-right:after{content:"\f054";padding-left:1px}.x-tool.x-tool-left:after{content:"\f053";padding-right:2px}.x-tool.x-tool-up:after{content:"\f077";padding-top:1px}.x-tool.x-tool-down:after{content:"\f078";padding-top:1px}.x-tool.x-tool-minus:after{content:"\f068"}.x-tool.x-tool-plus:after{content:"\f067"}.x-panel-dd-spacer{border-color:#dfdfdf}.x-panel-fbar div,.x-panel-fbar input,.x-panel-fbar label,.x-panel-fbar select,.x-panel-fbar span,.x-panel-fbar td{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-panel-header{border-radius:3px 3px 0 0;border:1px solid silver;font-size:14px;font-weight:700;margin-top:0;padding:10px 10px 8px}.x-portal-space{border-bottom:1px solid #afafaf;padding:0}.x-column-inner{overflow:visible}.x-column-inner>.x-column{margin-right:0;overflow:visible}.x-column-inner>.x-column:not(.x-hide-display)~.x-column{margin-right:0;margin-left:15px}.x-panel-nofooter .x-panel-bc{background-image:none;height:0}.x-panel-ghost{background-color:#dbdbdb}.x-panel-ghost ul{border-color:#d0d0d0}.x-panel-dd-spacer{border-color:#d0d0d0}.x-dlg-mask{background-color:#ccc}.x-html-editor-wrap{background-color:#fff;border-color:#bcbcbc}.x-panel-noborder .x-panel-header-noborder{border-bottom-color:transparent}.x-border-layout-ct{background-color:#fafafa}.x-accordion-hd{background-image:url(../images/modx-theme/panel/light-hd.gif);color:#222;font-weight:400}.x-layout-collapsed{background-color:#e4e4e4;border-color:#dfdfdf;width:7px!important}.x-layout-collapsed-over{background-color:#e6e6e6}.x-layout-split-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-split-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-split-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-layout-split-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-cmini-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-cmini-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-list-header{background-color:#f9f9f9;background-image:url(../images/modx-theme/grid/grid3-hrow.gif)}.x-list-header-inner div em{border-left-color:#dfdfdf;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-list-body dt em{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-list-over{background-color:#eee}.x-list-selected{background-color:#e7e7e7}.x-list-resizer{border-left-color:#555;border-right-color:#555}.x-list-header-inner em.sort-asc,.x-list-header-inner em.sort-desc{background-image:url(../images/modx-theme/grid/sort-hd.gif);border-color:#dfdfdf}.x-slider-horz,.x-slider-horz .x-slider-end,.x-slider-horz .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-bg.png)}.x-slider-horz .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-thumb.png)}.x-slider-vert,.x-slider-vert .x-slider-end,.x-slider-vert .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-v-bg.png)}.x-slider-vert .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-v-thumb.png)}.x-portal .x-panel-tl .x-panel-header{background:0 0;font-size:14px;padding:8px 0 8px 0}.x-portal .x-tool{margin-top:0}.x-portal .x-panel-body{font-weight:400;margin-bottom:5px;padding:0;text-transform:none}.x-portal-space{margin-bottom:5px}.x-grid3-body .x-grid3-td-checker{background-image:none!important}.modx-combo-desc{color:#515151;font-size:.9em;font-style:italic}.modx-combo-title{font-weight:700}.modx-grid-draggable .x-grid3-row{cursor:move}.actions button.primary-button,.primary-button.inline-button,.primary-button.x-btn,.primary-button.x-date-mp-cancel,.primary-button.x-date-mp-ok,.primary-button.x-form-trigger,.primary-button.x-superboxselect-item{transition:background-color .2s ease-out;background:#6cb24a;box-shadow:none;color:#fff}.actions button.primary-button:hover,.actions button.x-btn-focus.primary-button,.actions button.x-btn-over.primary-button,.primary-button.inline-button:hover,.primary-button.x-btn:hover,.primary-button.x-date-mp-cancel:hover,.primary-button.x-date-mp-ok:hover,.primary-button.x-form-trigger:hover,.primary-button.x-superboxselect-item:hover,.x-btn-focus.primary-button.inline-button,.x-btn-focus.primary-button.x-btn,.x-btn-focus.primary-button.x-date-mp-cancel,.x-btn-focus.primary-button.x-date-mp-ok,.x-btn-focus.primary-button.x-form-trigger,.x-btn-focus.primary-button.x-superboxselect-item,.x-btn-over.primary-button.inline-button,.x-btn-over.primary-button.x-btn,.x-btn-over.primary-button.x-date-mp-cancel,.x-btn-over.primary-button.x-date-mp-ok,.x-btn-over.primary-button.x-form-trigger,.x-btn-over.primary-button.x-superboxselect-item{background:#528738;box-shadow:none;color:#fff}.actions button.primary-button:active,.actions button.x-btn-click.primary-button,.primary-button.inline-button:active,.primary-button.x-btn:active,.primary-button.x-date-mp-cancel:active,.primary-button.x-date-mp-ok:active,.primary-button.x-form-trigger:active,.primary-button.x-superboxselect-item:active,.x-btn-click.primary-button.inline-button,.x-btn-click.primary-button.x-btn,.x-btn-click.primary-button.x-date-mp-cancel,.x-btn-click.primary-button.x-date-mp-ok,.x-btn-click.primary-button.x-form-trigger,.x-btn-click.primary-button.x-superboxselect-item{background:#385c26;box-shadow:none;color:#fff}.actions button.x-item-disabled.primary-button,.actions button.x-item-disabled.primary-button:active,.actions button.x-item-disabled.primary-button:hover,.x-item-disabled.primary-button.inline-button,.x-item-disabled.primary-button.inline-button:active,.x-item-disabled.primary-button.inline-button:hover,.x-item-disabled.primary-button.x-btn,.x-item-disabled.primary-button.x-btn:active,.x-item-disabled.primary-button.x-btn:hover,.x-item-disabled.primary-button.x-date-mp-cancel,.x-item-disabled.primary-button.x-date-mp-cancel:active,.x-item-disabled.primary-button.x-date-mp-cancel:hover,.x-item-disabled.primary-button.x-date-mp-ok,.x-item-disabled.primary-button.x-date-mp-ok:active,.x-item-disabled.primary-button.x-date-mp-ok:hover,.x-item-disabled.primary-button.x-form-trigger,.x-item-disabled.primary-button.x-form-trigger:active,.x-item-disabled.primary-button.x-form-trigger:hover,.x-item-disabled.primary-button.x-superboxselect-item,.x-item-disabled.primary-button.x-superboxselect-item:active,.x-item-disabled.primary-button.x-superboxselect-item:hover{background:#6cb24a;box-shadow:none;color:#fff;opacity:.6}.actions button,.inline-button,.x-btn,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{background-color:#fff;background-repeat:no-repeat;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;color:#515151;cursor:pointer;display:inline-block;line-height:1;padding:10px 15px 10px 15px;position:relative;text-decoration:none;transition:background-color .2s ease-out;zoom:1}.actions .ext-webkit button em,.ext-webkit .actions button em,.ext-webkit .inline-button em,.ext-webkit .x-btn em,.ext-webkit .x-date-mp-cancel em,.ext-webkit .x-date-mp-ok em,.ext-webkit .x-form-trigger em,.ext-webkit .x-superboxselect-item em{font-size:0}.actions button button,.inline-button button,.x-btn button,.x-date-mp-cancel button,.x-date-mp-ok button,.x-date-picker .x-btn button,.x-form-trigger button,.x-superboxselect-item button{background-repeat:no-repeat;color:inherit;cursor:pointer;font-size:13px;font-style:normal;line-height:1;height:16px;min-width:100%;padding:0}.actions .ext-ie8 button button,.ext-ie8 .actions button button,.ext-ie8 .inline-button button,.ext-ie8 .x-btn button,.ext-ie8 .x-date-mp-cancel button,.ext-ie8 .x-date-mp-ok button,.ext-ie8 .x-form-trigger button,.ext-ie8 .x-superboxselect-item button{padding-top:0}.actions button .x-btn-arrow,.actions button .x-btn-split,.inline-button .x-btn-arrow,.inline-button .x-btn-split,.x-btn .x-btn-arrow,.x-btn .x-btn-split,.x-date-mp-cancel .x-btn-arrow,.x-date-mp-cancel .x-btn-split,.x-date-mp-ok .x-btn-arrow,.x-date-mp-ok .x-btn-split,.x-date-picker .x-btn .x-btn-arrow,.x-date-picker .x-btn .x-btn-split,.x-form-trigger .x-btn-arrow,.x-form-trigger .x-btn-split,.x-superboxselect-item .x-btn-arrow,.x-superboxselect-item .x-btn-split{display:block;padding-right:20px;position:relative}.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before{color:inherit;content:"\f0d7";font-size:14px;margin-top:0;position:absolute;top:50%;right:0}.actions button .x-btn-arrow button,.actions button .x-btn-split button,.inline-button .x-btn-arrow button,.inline-button .x-btn-split button,.x-btn .x-btn-arrow button,.x-btn .x-btn-split button,.x-date-mp-cancel .x-btn-arrow button,.x-date-mp-cancel .x-btn-split button,.x-date-mp-ok .x-btn-arrow button,.x-date-mp-ok .x-btn-split button,.x-form-trigger .x-btn-arrow button,.x-form-trigger .x-btn-split button,.x-superboxselect-item .x-btn-arrow button,.x-superboxselect-item .x-btn-split button{border-right-color:inherit;border-right-style:solid;border-right-width:1px;padding-right:10px}.actions button.x-btn-focus,.actions button.x-btn-over,.actions button:focus,.actions button:hover,.inline-button:focus,.inline-button:hover,.x-btn-focus.inline-button,.x-btn-focus.x-btn,.x-btn-focus.x-date-mp-cancel,.x-btn-focus.x-date-mp-ok,.x-btn-focus.x-form-trigger,.x-btn-focus.x-superboxselect-item,.x-btn-over.inline-button,.x-btn-over.x-btn,.x-btn-over.x-date-mp-cancel,.x-btn-over.x-date-mp-ok,.x-btn-over.x-form-trigger,.x-btn-over.x-superboxselect-item,.x-btn:focus,.x-btn:hover,.x-date-mp-cancel:focus,.x-date-mp-cancel:hover,.x-date-mp-ok:focus,.x-date-mp-ok:hover,.x-form-trigger:focus,.x-form-trigger:hover,.x-superboxselect-item:focus,.x-superboxselect-item:hover{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.actions button.x-btn-click,.actions button:active,.inline-button:active,.x-btn-click.inline-button,.x-btn-click.x-btn,.x-btn-click.x-date-mp-cancel,.x-btn-click.x-date-mp-ok,.x-btn-click.x-form-trigger,.x-btn-click.x-superboxselect-item,.x-btn:active,.x-date-mp-cancel:active,.x-date-mp-ok:active,.x-form-trigger:active,.x-superboxselect-item:active{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.actions button.x-btn-menu-active .x-btn-split:before,.x-btn-menu-active.inline-button .x-btn-split:before,.x-btn-menu-active.x-btn .x-btn-split:before,.x-btn-menu-active.x-date-mp-cancel .x-btn-split:before,.x-btn-menu-active.x-date-mp-ok .x-btn-split:before,.x-btn-menu-active.x-form-trigger .x-btn-split:before,.x-btn-menu-active.x-superboxselect-item .x-btn-split:before{content:"\f0d8"}.actions button.x-item-disabled,.actions button.x-item-disabled:active,.actions button.x-item-disabled:hover,.x-item-disabled.inline-button,.x-item-disabled.inline-button:active,.x-item-disabled.inline-button:hover,.x-item-disabled.x-btn,.x-item-disabled.x-btn:active,.x-item-disabled.x-btn:hover,.x-item-disabled.x-date-mp-cancel,.x-item-disabled.x-date-mp-cancel:active,.x-item-disabled.x-date-mp-cancel:hover,.x-item-disabled.x-date-mp-ok,.x-item-disabled.x-date-mp-ok:active,.x-item-disabled.x-date-mp-ok:hover,.x-item-disabled.x-form-trigger,.x-item-disabled.x-form-trigger:active,.x-item-disabled.x-form-trigger:hover,.x-item-disabled.x-superboxselect-item,.x-item-disabled.x-superboxselect-item:active,.x-item-disabled.x-superboxselect-item:hover{background-color:#fff;color:#1e1e1e;box-shadow:0 0 0 1px #e4e4e4;opacity:.6}.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-remove:before{content:"\f00d"}.fa.fa-close:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before{content:"\f01e"}.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before{content:"\f0c9"}.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-dashboard:before{content:"\f3fd"}.fa.fa-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-mobile-phone:before{content:"\f3cd"}.fa.fa-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before{content:"\f153"}.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-usd:before{content:"\f155"}.fa.fa-dollar:before{content:"\f155"}.fa.fa-inr:before{content:"\f156"}.fa.fa-rupee:before{content:"\f156"}.fa.fa-jpy:before{content:"\f157"}.fa.fa-cny:before{content:"\f157"}.fa.fa-rmb:before{content:"\f157"}.fa.fa-yen:before{content:"\f157"}.fa.fa-rub:before{content:"\f158"}.fa.fa-ruble:before{content:"\f158"}.fa.fa-rouble:before{content:"\f158"}.fa.fa-krw:before{content:"\f159"}.fa.fa-won:before{content:"\f159"}.fa.fa-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-android{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-try:before{content:"\f195"}.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-institution:before{content:"\f19c"}.fa.fa-bank:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-git{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before{content:"\f20b"}.fa.fa-shekel:before{content:"\f20b"}.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-battery-4:before{content:"\f240"}.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-clone{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before{content:"\f2a4"}.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-thermometer-4:before{content:"\f2c7"}.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before{content:"\f2cd"}.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}button{margin:2px}.x-panel-btns .x-btn{margin:0 0 0 7px}.actions{bottom:8px;margin:0;overflow:visible;position:absolute}.actions li{float:left;line-height:.7;margin-right:2px}.actions button,.inline-button,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{box-shadow:0 0 0 1px #dcdcdc;box-sizing:content-box;padding:5px}.actions button:focus,.actions button:hover,.inline-button:focus,.inline-button:hover,.x-date-mp-cancel:focus,.x-date-mp-cancel:hover,.x-date-mp-ok:focus,.x-date-mp-ok:hover,.x-date-picker .x-btn:focus,.x-date-picker .x-btn:hover,.x-form-trigger:focus,.x-form-trigger:hover,.x-superboxselect-item:focus,.x-superboxselect-item:hover{box-shadow:#999}.actions button:active,.inline-button:active,.x-date-mp-cancel:active,.x-date-mp-ok:active,.x-date-picker .x-btn:active,.x-form-trigger:active,.x-superboxselect-item:active{box-shadow:#999}.actions button.yellow,.inline-button.yellow,.x-date-mp-cancel.yellow,.x-date-mp-ok.yellow,.x-date-picker .x-btn.yellow,.x-form-trigger.yellow,.x-superboxselect-item.yellow{background:#fce588;box-shadow:0 0 0 1px #fce588;color:#515151!important}.actions button.yellow:focus,.actions button.yellow:hover,.inline-button.yellow:focus,.inline-button.yellow:hover,.x-date-mp-cancel.yellow:focus,.x-date-mp-cancel.yellow:hover,.x-date-mp-ok.yellow:focus,.x-date-mp-ok.yellow:hover,.x-date-picker .x-btn.yellow:focus,.x-date-picker .x-btn.yellow:hover,.x-form-trigger.yellow:focus,.x-form-trigger.yellow:hover,.x-superboxselect-item.yellow:focus,.x-superboxselect-item.yellow:hover{background:#fbe06f;box-shadow:0 0 0 1px #fbe06f}.actions button.yellow:active,.inline-button.yellow:active,.x-date-mp-cancel.yellow:active,.x-date-mp-ok.yellow:active,.x-date-picker .x-btn.yellow:active,.x-form-trigger.yellow:active,.x-superboxselect-item.yellow:active{background:#fbda56;box-shadow:0 0 0 1px #fbda56}.actions button.orange,.inline-button.orange,.x-date-mp-cancel.orange,.x-date-mp-ok.orange,.x-date-picker .x-btn.orange,.x-form-trigger.orange,.x-superboxselect-item.orange{background:#f0b429;box-shadow:0 0 0 1px #f0b429;color:#fff!important}.actions button.orange:focus,.actions button.orange:hover,.inline-button.orange:focus,.inline-button.orange:hover,.x-date-mp-cancel.orange:focus,.x-date-mp-cancel.orange:hover,.x-date-mp-ok.orange:focus,.x-date-mp-ok.orange:hover,.x-date-picker .x-btn.orange:focus,.x-date-picker .x-btn.orange:hover,.x-form-trigger.orange:focus,.x-form-trigger.orange:hover,.x-superboxselect-item.orange:focus,.x-superboxselect-item.orange:hover{background:#eeac11;box-shadow:0 0 0 1px #eeac11}.actions button.orange:active,.inline-button.orange:active,.x-date-mp-cancel.orange:active,.x-date-mp-ok.orange:active,.x-date-picker .x-btn.orange:active,.x-form-trigger.orange:active,.x-superboxselect-item.orange:active{background:#d79b0f;box-shadow:0 0 0 1px #d79b0f}.actions button.red,.inline-button.red,.x-date-mp-cancel.red,.x-date-mp-ok.red,.x-date-picker .x-btn.red,.x-form-trigger.red,.x-superboxselect-item.red{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff!important}.actions button.red:focus,.actions button.red:hover,.inline-button.red:focus,.inline-button.red:hover,.x-date-mp-cancel.red:focus,.x-date-mp-cancel.red:hover,.x-date-mp-ok.red:focus,.x-date-mp-ok.red:hover,.x-date-picker .x-btn.red:focus,.x-date-picker .x-btn.red:hover,.x-form-trigger.red:focus,.x-form-trigger.red:hover,.x-superboxselect-item.red:focus,.x-superboxselect-item.red:hover{background:#c11022;box-shadow:0 0 0 1px #c11022}.actions button.red:active,.inline-button.red:active,.x-date-mp-cancel.red:active,.x-date-mp-ok.red:active,.x-date-picker .x-btn.red:active,.x-form-trigger.red:active,.x-superboxselect-item.red:active{background:#b30f1f;box-shadow:0 0 0 1px #b30f1f}.actions button.green,.inline-button.green,.x-date-mp-cancel.green,.x-date-mp-ok.green,.x-date-picker .x-btn.green,.x-form-trigger.green,.x-superboxselect-item.green{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff!important}.actions button.green:focus,.actions button.green:hover,.inline-button.green:focus,.inline-button.green:hover,.x-date-mp-cancel.green:focus,.x-date-mp-cancel.green:hover,.x-date-mp-ok.green:focus,.x-date-mp-ok.green:hover,.x-date-picker .x-btn.green:focus,.x-date-picker .x-btn.green:hover,.x-form-trigger.green:focus,.x-form-trigger.green:hover,.x-superboxselect-item.green:focus,.x-superboxselect-item.green:hover{background:#61a043;box-shadow:0 0 0 1px #61a043}.actions button.green:active,.inline-button.green:active,.x-date-mp-cancel.green:active,.x-date-mp-ok.green:active,.x-date-picker .x-btn.green:active,.x-form-trigger.green:active,.x-superboxselect-item.green:active{background:#568e3b;box-shadow:0 0 0 1px #568e3b}.actions button.blue,.inline-button.blue,.x-date-mp-cancel.blue,.x-date-mp-ok.blue,.x-date-picker .x-btn.blue,.x-form-trigger.blue,.x-superboxselect-item.blue{background:#4a90e2;box-shadow:0 0 0 1px #4a90e2;color:#fff!important}.actions button.blue:focus,.actions button.blue:hover,.inline-button.blue:focus,.inline-button.blue:hover,.x-date-mp-cancel.blue:focus,.x-date-mp-cancel.blue:hover,.x-date-mp-ok.blue:focus,.x-date-mp-ok.blue:hover,.x-date-picker .x-btn.blue:focus,.x-date-picker .x-btn.blue:hover,.x-form-trigger.blue:focus,.x-form-trigger.blue:hover,.x-superboxselect-item.blue:focus,.x-superboxselect-item.blue:hover{background:#3483de;box-shadow:0 0 0 1px #3483de}.actions button.blue:active,.inline-button.blue:active,.x-date-mp-cancel.blue:active,.x-date-mp-ok.blue:active,.x-date-picker .x-btn.blue:active,.x-form-trigger.blue:active,.x-superboxselect-item.blue:active{background:#2275d7;box-shadow:0 0 0 1px #2275d7}.x-toolbar .x-form-field-trigger-wrap{background:#fff;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;cursor:pointer;line-height:1}.x-toolbar .x-form-field-trigger-wrap .x-form-text{background:#fff;border:0;margin:0!important}.x-toolbar .x-form-field-trigger-wrap .x-form-trigger:before{margin-top:0}.x-toolbar .x-form-field-trigger-wrap.x-trigger-wrap-focus{box-shadow:0 0 0 1px #999}.x-toolbar .x-toolbar-left-row td .x-btn{display:block}.x-toolbar .x-toolbar-left-row td .x-btn,.x-toolbar .x-toolbar-left-row td .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-left-row td .x-form-text{margin-right:7px}.x-toolbar .x-toolbar-left-row td:first-of-type .x-btn,.x-toolbar .x-toolbar-left-row td:first-of-type .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-left-row td:first-of-type .x-form-text{margin-left:1px}.x-toolbar .x-toolbar-right-row .x-btn,.x-toolbar .x-toolbar-right-row .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-right-row .x-form-text{margin-left:7px}.x-toolbar .x-toolbar-right-row .x-form-filter{border-radius:3px 0 0 3px;z-index:1}.x-toolbar .x-toolbar-right-row .x-form-filter-clear{border-radius:0 3px 3px 0;margin-left:0}.x-toolbar .x-form-text{padding:8px 13px;border-radius:3px;font-size:13px!important}.x-toolbar.x-small-editor .x-form-text{padding-top:8px}.x-toolbar .xtb-sep{margin:0;width:0}.x-tree .x-toolbar .x-btn{padding:7px}.x-tree .x-toolbar .x-btn-icon{box-shadow:none;padding:7px}.x-tree .x-toolbar .x-btn-icon.x-btn-over{background:0 0;box-shadow:none;color:#234368}.x-tree .x-toolbar .x-btn-icon.x-btn-click{background:0 0;box-shadow:none;color:#1b3451}.x-tree .x-toolbar .x-btn-icon:before{content:none}.x-tree .x-toolbar .x-toolbar-left-row .x-form-field-wrap,.x-tree .x-toolbar .x-toolbar-right-row .x-form-field-wrap{margin-right:6px;margin-left:6px!important}#modx-action-buttons{position:fixed;top:0;right:0;left:auto;background:#f1f1f1;padding:.8rem 1rem;border:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;border-radius:3px;z-index:12}#modx-action-buttons .x-toolbar-cell:not(:first-child){padding-left:.5rem}#modx-action-buttons .x-btn{margin:0}#modx-action-buttons #modx-abtn-menu .x-btn-split{padding:0}#modx-action-buttons #modx-abtn-menu .x-btn-split:before{display:none}#modx-action-buttons #modx-abtn-menu .x-btn-split .x-btn-text{padding:0;border:none}#modx-action-buttons .x-toolbar-left{width:auto!important;zoom:1}@media screen and (max-width:960px){#modx-action-buttons{background:0 0;padding:0 15px;position:relative;top:auto;left:auto;right:auto;bottom:auto;max-width:100%;border-radius:0}#modx-action-buttons table table{display:block}#modx-action-buttons table table tbody{display:block}#modx-action-buttons table table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-action-buttons table table tbody tr::after{clear:both;content:"";display:block}#modx-action-buttons table table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}#modx-action-buttons table table tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-panel-welcome #modx-action-buttons{display:none}#modx-action-buttons .x-toolbar-cell{width:auto;margin:5px}}@media screen and (max-width:960px){.tab-panel-wrapper .x-panel-tbar table{display:block}.tab-panel-wrapper .x-panel-tbar table tbody{display:block}.tab-panel-wrapper .x-panel-tbar table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.tab-panel-wrapper .x-panel-tbar table tbody tr::after{clear:both;content:"";display:block}.tab-panel-wrapper .x-panel-tbar table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}.tab-panel-wrapper .x-panel-tbar table tbody tr td .x-btn{margin-left:3px;margin-right:3px}.tab-panel-wrapper .x-panel-tbar .x-toolbar-left input,.tab-panel-wrapper .x-panel-tbar .x-toolbar-right input{height:auto!important;width:100%;box-sizing:border-box;margin-left:0}}@media screen and (max-width:960px){html.ext-strict body #modx-container .x-small-editor .x-form-text{height:auto!important}}@media screen and (max-width:960px){#modx-grid-element-properties table{display:block}#modx-grid-element-properties table tbody{display:block}#modx-grid-element-properties table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-grid-element-properties table tbody tr::after{clear:both;content:"";display:block}#modx-grid-element-properties table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}#modx-grid-element-properties table tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-grid-element-properties .x-toolbar-left{margin-bottom:0}#modx-grid-element-properties .x-toolbar-cell>*{width:100%!important;box-sizing:border-box;margin-left:auto;margin-right:auto}}.x-btn-icon button{font-size:18px;height:18px;width:18px;position:relative}.x-btn-icon.arrow_up button{background:0 0!important;position:relative}.x-btn-icon.arrow_up button:before{content:"\f3bf";top:1px;bottom:auto}.x-btn-icon.arrow_down button{background:0 0!important;position:relative}.x-btn-icon.arrow_down button:before{content:"\f3be";top:1px;bottom:auto}.x-btn-icon.refresh button{background:0 0!important;position:relative}.x-btn-icon.refresh button:before{content:"\f021";top:1px;bottom:auto}.x-btn-icon.icon-folder button:before{content:"\f07b"}.x-btn-icon.icon-page_white button:before{content:"\f15c"}.x-btn-icon.icon-file_upload button:before{content:"\f35b"}.x-btn-icon.icon-file_manager button:before{content:"\f14d"}.x-btn-text-icon button{padding-left:20px!important}.x-html-editor-tb .x-btn{background-color:transparent;background-image:none;border:0 none;box-shadow:none;margin:0}.x-html-editor-tb .x-btn-over{border:0 none}.x-btn-group{border-radius:3px;border:1px solid #dbe0e4;margin-right:2px;padding:0}.x-btn-group .x-btn{background-color:transparent;background-image:none;border:1px solid transparent;box-shadow:transparent 0 0 1px}.x-btn-group .x-btn button{color:#868b8f;height:auto!important}.x-btn-group .x-btn-over{background:#dfdfdf;background:#f0f0f0;border:1px solid #dbe0e4}.x-btn-group .x-btn-over button{color:#5b7a98}.x-btn-group .x-btn-click{background-color:#fff;background-image:none;box-shadow:0 0 3px #aaa inset;margin:0 2px 0 0}.x-btn-group-bwrap{padding:1px 0 0}.x-btn-group-header{background-color:#dbe0e4;color:#73797f;text-shadow:0 1px 0 #fafafa}.x-btn-group-tl,.x-btn-group-tr{background-image:none;padding:0}.x-btn-group-bc,.x-btn-group-bl,.x-btn-group-br,.x-btn-group-tc{background-image:none}.x-btn-group-ml{background-image:none;padding-left:1px}.x-btn-group-mr{background-image:none;padding-right:1px}.x-btn em.x-btn-arrow-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-btn em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b.gif)}.x-btn-click em.x-btn-split-bottom,.x-btn-menu-active em.x-btn-split-bottom,.x-btn-over em.x-btn-split-bottom,.x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.x-btn-group-notitle .x-btn-group-tc{background-image:url(../images/modx-theme/button/group-tb.gif)}#modx-leftbar .x-toolbar-ct .x-btn{margin:0 3px;padding:0;width:25px;height:30px;border:none;box-shadow:none;color:#515151;background:#f1f1f1;opacity:1;display:inline-block;position:relative}#modx-leftbar .x-toolbar-ct .x-btn>em>button{font-size:18px;text-shadow:none;overflow:visible;position:absolute;height:24px;top:4px;left:2px}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over,#modx-leftbar .x-toolbar-ct .x-btn:active,#modx-leftbar .x-toolbar-ct .x-btn:focus,#modx-leftbar .x-toolbar-ct .x-btn:hover{background:0 0;box-shadow:none;color:#234368}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over button,#modx-leftbar .x-toolbar-ct .x-btn:active button,#modx-leftbar .x-toolbar-ct .x-btn:focus button,#modx-leftbar .x-toolbar-ct .x-btn:hover button{color:inherit}#modx-leftbar .x-toolbar-ct .x-btn span{vertical-align:middle}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn>em>button{font-size:20px}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled{color:#919191!important;opacity:.6}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled button{color:inherit}.tree-new-resource>em>button:before{content:"\f15b"}.tree-new-weblink>em>button:before{content:"\f0c1"}.tree-new-symlink>em>button:before{content:"\f0c5";font-weight:400}.tree-new-static-resource>em>button:before{content:"\f15c";font-weight:400}.tree-trash>em>button:before{content:"\f2ed";font-weight:400}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-symlink>em>button{top:4px;left:2px}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-weblink>em>button{left:2px}.tree-new-template>em>button:before{content:"\f0db"}.tree-new-tv>em>button:before{content:"\f022";font-weight:400}.tree-new-chunk>em>button:before{content:"\f009";font-weight:900}.tree-new-snippet>em>button:before{content:"\f121"}.tree-new-plugin>em>button:before{content:"\f085"}.tree-new-category>em>button:before{content:"\f07b"}textarea{overflow:auto}.x-form-textarea,textarea.x-form-field{display:block;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:5px}.modx-tv .x-form-textarea:not(div){font-family:inherit}.modx-code-content{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.modx-text-content,textarea[name=description],textarea[name=introtext]{font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-text,.x-form-textarea,textarea.x-form-field{max-width:100%;background-color:#fff;background-image:none;border-radius:3px;border:1px solid #e4e4e4;position:relative;transition:border-color .25s}.x-viewport .x-form-textarea .x-form-focus,.x-viewport .x-trigger-wrap-focus,.x-viewport input.x-form-focus,.x-viewport textarea.x-form-focus{border-color:#999}.x-viewport .x-trigger-wrap-open{border-radius:3px 3px 0 0}.x-form-invalid,textarea.x-form-invalid{border-color:#cf1124!important}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}#modx-input-props,#modx-widget-props{padding:15px 0 0 0}.x-form-item{display:block;margin:0;outline:0 none;position:relative}.x-form-item label.x-form-item-label{color:#515151;font-size:13px;font-weight:700;position:relative}.x-form-item label.x-form-item-label .modx-tv-label-title{display:inline-block}.x-form-item label.x-form-item-label .modx-tv-label-description{display:inline-block;font-style:italic;font-weight:400}.x-form-item label.x-form-item-label .modx-tv-reset{cursor:pointer;display:inline-block;height:16px;opacity:0;padding:3px;position:relative;top:0;right:0;transition:all .25s;width:16px}.x-form-item label.x-form-item-label .modx-tv-reset:before{box-sizing:border-box;color:#515151;content:"\f021";font-size:14px;position:relative;bottom:3px;left:0;text-align:center;vertical-align:middle;width:16px;height:16px}.x-form-item label.x-form-item-label .modx-tv-reset:hover:before{color:#234368}.x-form-item label.x-form-item-label .modx-tv-reset:active:before{color:#1b3451}.x-form-item label.x-form-item-label:hover .modx-tv-reset{opacity:1}.x-form-item.modx-tv{padding:0!important}.x-form-item .modx-tv-inherited{color:#515151;display:inline-block;font-size:10px;font-style:italic;position:absolute;top:19px;right:0}.x-form-item .modx-tv-image-preview{margin-top:7px}.x-form-item .modx-tv-image-preview img{display:block}.x-form-item .modx-tag-list{list-style:none;margin:0;overflow:auto;padding:0}.x-form-item .modx-tag-list .modx-tag-opt{background-color:#e4e4e4;border-radius:0 3px 3px 0;cursor:pointer;display:inline-block;margin:4px 5px 0 10px;padding:1px 5px;position:relative}.x-form-item .modx-tag-list .modx-tag-opt:before{border-style:solid;border-width:10px 10px 10px 0;border-color:transparent #e4e4e4 transparent transparent;content:'';position:absolute;top:0;left:-10px;-ms-transform:rotate(360deg);transform:rotate(360deg);width:0;height:0}.x-form-item .modx-tag-list .modx-tag-opt:after{background-color:#fff;border-radius:50%;content:'';position:absolute;top:8px;left:-4px;width:4px;height:4px}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked,.x-form-item .modx-tag-list .modx-tag-opt:hover{background-color:#234368;color:#fff;text-decoration:none}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:before{border-color:transparent #234368 transparent transparent}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover{background-color:#1b3451}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover:before{border-color:transparent #1b3451 transparent transparent}.x-form-item .modx-tv-legacy-select{border:1px solid #e4e4e4;border-radius:3px;padding:5px;transition:all .25s}.x-form-item .modx-tv-legacy-select:focus{border:1px solid #1b3451}.x-form-item .modx-tv-legacy-select option[selected]{background-color:#e4e4e4}.x-form-label-left .x-form-item{padding:15px 0 0 0;padding-bottom:0}.x-form-label-left .x-form-item:first-of-type{padding:0}.x-form-label-left .x-form-item label.x-form-item-label{display:inline-block;margin:0;padding:7px 0 7px 0}.x-form-label-top .x-form-item{padding:0;padding-bottom:0}.x-form-label-top .x-form-item label.x-form-item-label{display:inline-block;margin:0;padding:15px 0 4px 0}.x-window .x-form-item .x-form-item-label{padding:10px 0 4px 0}.x-form-item.x-hide-label{padding-top:10px!important}#modx-resource-content .x-form-item.x-hide-label{padding-top:0!important}.x-form-item.x-hide-label label.x-form-item-label{display:none}.x-form-item .x-form-element{padding:0;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-item .x-column-inner>.x-column~.x-column{margin-left:5px}.x-form-item .x-column-inner>.x-column .x-form-field-wrap{width:auto!important}.x-form-item .container{margin:0}.x-form-item .x-btn{padding:7px 10px 7px 10px}.desc-under{color:#999;display:block;font-size:12px;font-style:italic;margin:2px 0 0 0;text-align:justify}.desc-under.desc-checkbox{margin:0 0 4px 0}.desc-under .warning{color:#cf1124;overflow:hidden;padding:0}.x-fieldset{border:1px solid #e4e4e4;border-radius:3px!important;margin:15px 0 0 0;overflow:visible;padding:0;position:relative}.x-fieldset .x-fieldset-header{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;margin:0 0 0 10px;padding:0 5px 0 3px;position:relative}.x-fieldset .x-fieldset-header .x-fieldset-header-text{line-height:18px}.x-fieldset .x-fieldset-bwrap .x-fieldset-body{overflow-x:hidden!important;padding:0 10px 10px 10px}.x-form-field{font:inherit}.x-form-field.x-form-composite{margin-bottom:0!important}.x-form-field.x-form-composite .x-btn{top:1px!important}.x-static-text-field{color:inherit;font-size:inherit}.x-static-text-field.x-form-focus{border-color:#e4e4e4!important}.x-form-text{line-height:20px;min-height:20px;padding:5px}.x-form-field-wrap{max-width:100%;background:#fff;border:1px solid #e4e4e4;border-radius:3px}.x-form-field-wrap .x-form-text:not(.x-form-invalid){border:0}.x-form-field-wrap .x-form-trigger{border:0;border-radius:0 3px 3px 0;box-shadow:none;padding:0;width:30px;height:100%!important;position:absolute;top:0;right:0}.x-form-field-wrap .x-form-trigger:before{box-sizing:border-box;content:"\f078";font-size:14px;margin-top:-7px;opacity:.8;position:absolute;top:50%;right:0;text-align:center;width:30px;transition:opacity .25s}.x-form-field-wrap .x-form-trigger.x-form-trigger-over,.x-form-field-wrap .x-form-trigger:hover{box-shadow:#999}.x-form-field-wrap .x-form-trigger.x-form-trigger-over:before,.x-form-field-wrap .x-form-trigger:hover:before{opacity:1}.x-form-field-wrap .x-form-trigger.x-form-trigger-click,.x-form-field-wrap .x-form-trigger:active{box-shadow:0 0 0 1px #8a8a8a}.x-form-field-wrap .x-form-trigger.x-form-trigger-click:before,.x-form-field-wrap .x-form-trigger:active:before{opacity:1}.x-form-field-wrap .x-form-trigger.x-form-date-trigger:before{content:"\f133";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-time-trigger:before{content:"\f017";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-file-trigger:before{content:"\f15b";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-image-trigger:before{content:"\f1c5";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-code-trigger:before{content:"\f1c9";font-weight:400}.x-form-field-wrap.x-datetime-wrap{background:0 0;border:0}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-trigger:before{content:"\f133"}.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-trigger:before{content:"\f017"}.x-form-field-wrap.x-form-fileupload-wrap{overflow:visible;position:relative}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file{position:absolute;top:0;right:0;min-height:20px;opacity:0;padding:5px;z-index:2}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-btn{border-radius:0 3px 3px 0;padding:7px;position:absolute;top:0;right:0;z-index:1;line-height:0;box-shadow:none;border-left:solid 1px #e4e4e4}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-text{position:relative;z-index:3}.x-fieldset-checkbox-toggle legend,.x-form-check-wrap{height:auto!important;line-height:18px}.x-form-label-left .x-fieldset-checkbox-toggle legend,.x-form-label-left .x-form-check-wrap{padding:7px 0 7px 0}.x-form-label-top .x-fieldset-checkbox-toggle legend,.x-form-label-top .x-form-check-wrap{padding:0}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-form-check-wrap .x-fieldset-header-text,.x-form-check-wrap .x-form-cb-label{color:#515151;cursor:pointer;display:inline-block;font-weight:400;margin:0;padding-left:1.9em;position:relative;top:0}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text,.ext-ie8 .x-form-check-wrap .x-form-cb-label{padding-left:3px}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text:before,.ext-ie8 .x-form-check-wrap .x-form-cb-label:before{content:''}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before{box-sizing:border-box;content:'';font-size:18px;padding-right:3px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:focus:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:hover:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-form-check-wrap .x-fieldset-header-text:focus:before,.x-form-check-wrap .x-fieldset-header-text:hover:before,.x-form-check-wrap .x-form-cb-label:focus:before,.x-form-check-wrap .x-form-cb-label:hover:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:active:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-form-check-wrap .x-fieldset-header-text:active:before,.x-form-check-wrap .x-form-cb-label:active:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox,.x-fieldset-checkbox-toggle legend .x-form-radio,.x-fieldset-checkbox-toggle legend input[type=checkbox],.x-form-check-wrap .x-form-checkbox,.x-form-check-wrap .x-form-radio,.x-form-check-wrap input[type=checkbox]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;width:18px;height:18px;z-index:1}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-checkbox,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-radio,.ext-ie8 .x-fieldset-checkbox-toggle legend input[type=checkbox],.ext-ie8 .x-form-check-wrap .x-form-checkbox,.ext-ie8 .x-form-check-wrap .x-form-radio,.ext-ie8 .x-form-check-wrap input[type=checkbox]{position:relative;top:auto;left:auto;width:13px;height:13px}.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:hover+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:focus+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:hover+.x-form-cb-label:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:active+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:active+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:active+.x-form-cb-label:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]+.x-fieldset-header-text:before{content:"\f0c8";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-checkbox:checked+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:checked+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:checked+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:checked+.x-fieldset-header-text:before{content:"\f14a";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio+.x-form-cb-label:before{content:"\f111";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio:checked+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:checked+.x-form-cb-label:before{content:"\f192";font-weight:400}#modx-resource-tabs .x-fieldset legend [type=checkbox],#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-resource-tabs .x-form-check-wrap [type=checkbox]{position:absolute;left:-9999px}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label{position:relative;padding-left:3.6em;padding-top:.2em;margin-left:0;cursor:pointer;box-sizing:border-box}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{content:'';position:absolute;transition:all .2s ease;font-size:inherit}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{left:0;top:0;width:3em;height:1.6em;background:#e4e4e4;border-radius:1.2em;z-index:10}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after{left:.1em;top:.8em;margin-top:-.65em;height:1.3em;width:1.3em;border-radius:50%;background-color:#fff;z-index:11}#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after{left:1.6em;top:.8em}#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before{background-color:#6cb24a;border-color:#6cb24a}#modx-resource-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before{background-color:#cf1124;border-color:#cf1124}#modx-resource-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before{background-color:#f0b429;border-color:#f0b429}.x-form-check-group,.x-form-radio-group{overflow:hidden}.x-form-check-group .x-column .x-form-item:first-child,.x-form-radio-group .x-column .x-form-item:first-child{padding:4px 0 0 0}.x-superboxselect{height:auto!important;margin:0;outline:0;padding:0 5px 5px 5px;position:relative;white-space:normal;width:auto!important}.ext-strict .x-toolbar .x-small-editor .x-superboxselect{height:auto!important}.x-superboxselect ul{cursor:text;min-height:20px;overflow:visible;padding-right:61px;white-space:normal;width:auto!important}.x-toolbar .x-superboxselect ul{margin:-5px 0 0 -5px}.x-superboxselect ul li{margin:5px 5px 0 0;padding:0}.x-superboxselect ul li.x-superboxselect-item{cursor:default;font-size:12px;padding:4px 18px 4px 4px!important;position:relative}.x-superboxselect ul li.x-superboxselect-item.x-superboxselect-item-focus{background-color:#234368;box-shadow:0 0 0 1px #234368;color:#fff}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close{border:0;color:inherit;cursor:pointer;display:inline-block;outline:0;opacity:.6;padding:0;position:absolute;top:0;right:0;transition:opacity .25s;width:16px;height:100%}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before{box-sizing:border-box;content:"\f00d";color:inherit;font-size:14px;margin-top:-7px;position:absolute;top:50%;right:0;text-align:center;vertical-align:middle;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:focus,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:hover{opacity:1}.x-superboxselect ul li.x-superboxselect-input{display:inline-block}.x-superboxselect ul li.x-superboxselect-input input{background:0 0;border:0;line-height:20px;outline:0}.x-superboxselect.x-superboxselect-stacked li{box-sizing:border-box;margin:5px 0 0 0;width:100%}.x-superboxselect .x-superboxselect-btns{overflow:visible;position:absolute;top:0;right:0;width:61px;height:100%}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-expand{border-radius:0;right:31px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear{border-left:1px solid #e4e4e4}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before{content:"\f00d"}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:hover{border-left:1px solid #234368}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:active{border-left:1px solid #1b3451}.inline-form{border:0 none;padding:15px 15px 0}.inline-form label{color:#777;display:block;font-weight:700;margin-bottom:2px}.inline-form input[type=text],.inline-form textarea{background-color:#fff;background-image:none;border-radius:3px;border:1px solid #ccc;position:relative;width:97%}.inline-form input[type=text]{font-size:13px;height:20px!important;padding:5px}.modx-tv-description{color:#515151;font-size:10px;line-height:1.2;margin-top:2px!important}.modx-tv-reload-btn{float:right;position:absolute;right:19px;z-index:10}.modx-tv-reload-btn div{z-index:10}.modx-tv-th label{cursor:pointer}.modx-tv-th .tv-description{color:#515151;font-size:11px;font-weight:400}.x-editor .x-form-check-wrap{background-color:#fff}.x-grid-editor .x-form-field-wrap{background:#f6f2f7 url(../images/modx-theme/form/combo-bck.png) repeat-x scroll 0 100%}.x-grid-editor .x-form-field-wrap input{background-color:transparent!important}.x-grid-editor .x-form-field-wrap img{background-color:#fff;background-image:url(../images/modx-theme/form/trigger.png)}.x-form-grow-sizer{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-invalid-msg{color:#cf1124;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:2px;position:relative;min-width:95%}.x-form-invalid-msg:before{content:"\f071";position:absolute;top:3px;left:3px;color:inherit}.x-form-empty-field{color:#515151}.x-grid3 .x-small-editor .x-form-field-wrap,.x-grid3 .x-small-editor .x-form-text{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:7px;padding:2px 5px 2px 5px}.x-grid3 .x-small-editor .x-form-field-wrap .x-form-text,.x-grid3 .x-small-editor .x-form-text .x-form-text{margin:0;padding:0}.x-grid3 .x-small-editor .x-form-field-wrap{overflow:hidden}.x-combo-list{border:0;border-radius:0 0 3px 3px;overflow:visible}.x-combo-list .x-combo-list-inner{background-color:#fff;border:1px solid #999;border-radius:0 0 3px 3px;margin-left:-1px;width:100%!important}.x-combo-list .x-combo-list-item{border:0;padding:5px;color:#515151;min-height:18.2px}.x-combo-list .x-combo-list-item.x-combo-selected{background-color:#e4e4e4;border:0!important}.x-combo-list .x-toolbar{border:0;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px #234368;margin-top:-1px;position:relative}.x-combo-list .x-toolbar .x-toolbar-ct{padding:5px 0 15px 0}.x-combo-list .x-toolbar .x-toolbar-left table{margin:0 auto}.x-combo-list .x-toolbar .x-toolbar-cell{display:inline-block}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn,.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:0 0;box-shadow:none;font-size:10px;line-height:16px;margin-right:2px;min-height:16px;padding:2px}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn{padding:1px;transition:color .25s}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-over,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:focus,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:hover{color:#234368}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-click,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:active{color:#1b3451}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-item-disabled{color:#515151;opacity:.4}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn button:before{line-height:20px;top:0;left:0;right:0}.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#fbfbfb;width:23px}.x-combo-list .x-toolbar .xtb-text{font-size:10px;line-height:1;margin:0 auto;padding:0;text-align:center}.x-combo-list .x-toolbar .x-toolbar-cell:first-child .x-btn{margin-left:1px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:none;position:absolute;top:2px;right:0;left:0}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:inline-block;position:absolute;top:auto;right:0;bottom:4px;left:0}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .x-btn{margin-right:0}.x-combo-list .x-toolbar .x-toolbar-cell:last-child{opacity:0;transition:opacity .25s}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn{font-size:12px;line-height:1;margin:0;opacity:.4;padding:0;position:absolute;bottom:2px;right:1px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn:hover{opacity:1}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button{width:16px;height:16px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button:before{font-size:12px}.x-combo-list .x-toolbar:hover .x-toolbar-cell:last-child{opacity:1}.x-combo-list .x-resizable-handle-southeast{bottom:1px;right:3px}.x-combo-list-hd{background-image:url(../images/modx-theme/layout/panel-title-light-bg.gif);border-bottom-color:#bcbcbc;color:#464646}.x-combo-list-small{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-date-mp,.x-date-picker{background-color:#fbfbfb}.x-date-mp .x-btn,.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-btn,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{border:0;padding:5px 10px 5px 10px;margin:0 0 0 7px}.x-date-mp .x-btn:first-child,.x-date-mp .x-date-mp-cancel:first-child,.x-date-mp .x-date-mp-ok:first-child,.x-date-picker .x-btn:first-child,.x-date-picker .x-date-mp-cancel:first-child,.x-date-picker .x-date-mp-ok:first-child{margin:0}.x-date-mp .x-btn button,.x-date-mp .x-date-mp-cancel button,.x-date-mp .x-date-mp-ok button,.x-date-picker .x-btn button,.x-date-picker .x-date-mp-cancel button,.x-date-picker .x-date-mp-ok button{font-size:11px;font-style:normal;margin:0}.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{height:16px}.x-date-middle{padding:5px 3px 5px 3px}.x-date-left a,.x-date-mp-ybtn a.x-date-mp-next,.x-date-mp-ybtn a.x-date-mp-prev,.x-date-right a{display:inline-block;opacity:.6;margin:0 auto;position:relative;transition:opacity .25s}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before{box-sizing:border-box;color:#234368;content:'';font-size:18px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-date-left a:hover,.x-date-mp-ybtn a.x-date-mp-next:hover,.x-date-mp-ybtn a.x-date-mp-prev:hover,.x-date-right a:hover{opacity:1}.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-right a:before{content:"\f0da";left:auto;right:0}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-prev:before{content:"\f0d9"}.x-date-inner{margin:0 auto}.x-date-inner th{border-bottom-color:#e4e4e4;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-date-inner td,.x-date-mp td{background-color:#fff;border:0;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:1px}.x-date-inner a,td.x-date-mp-month a,td.x-date-mp-year a{border-radius:3px;color:#999;font:inherit;font-weight:700}td.x-date-mp-month a,td.x-date-mp-year a{margin:0 3px 0 3px}.x-date-inner .x-date-disabled a:hover,.x-date-inner .x-date-nextday a:hover,.x-date-inner .x-date-prevday a:hover,.x-date-inner a:hover,td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{background-color:#dcdcdc;color:#515151}.x-date-inner .x-date-disabled a{background-color:#e4e4e4;color:#999}.x-date-inner .x-date-active{color:#000}.x-date-inner .x-date-today a{border-color:#234368}.x-date-inner span{font-style:normal}.x-date-inner .x-date-active span,.x-date-inner .x-date-selected span{font-weight:700}.x-date-inner .x-date-selected a,td.x-date-mp-sel a{background-color:#234368;border-color:#fff;color:#fff}.x-date-inner .x-date-nextday a,.x-date-inner .x-date-prevday a{color:#dcdcdc}.x-date-bottom,.x-date-mp-btns{border-top:1px solid #e4e4e4;padding:5px}.x-date-bottom td,.x-date-mp-btns td{background-color:transparent;border-top:1px solid #e4e4e4}td.x-date-mp-sep{border-right:1px solid #e4e4e4}.x-date-mmenu{background-color:#eee!important}.x-date-mmenu .x-menu-item{color:#000;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.radio-version .x-form-check-wrap .x-form-cb-label{display:block}.radio-version .x-form-check-wrap .x-form-cb-label .changelog{float:right}#modx-tv-tabs{width:100%}.x-tab-panel-noborder{border:1px solid #e2e3de;margin:20px 0 20px;overflow:visible}.x-tab-panel-noborder .x-tab-panel-body-noborder{background-color:#fff;border-radius:3px}.x-tab-panel-footer,.x-tab-panel-header{border:0;position:relative}.x-tab-panel-header ul.x-tab-strip{background-color:transparent!important;border:0;margin:0;position:relative;top:1px}.x-tab-panel-footer-plain .x-tab-strip-spacer,.x-tab-panel-header-plain .x-tab-strip-spacer{border:none;height:0}.x-tab-panel .x-tab-panel{padding-top:18px}.x-tab-panel .x-tab-panel.vertical-tabs-panel{padding-top:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap{padding:2px 0 0 0;margin:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap .x-tab-strip{background-color:#fbfbfb!important}.x-tab-panel-header,.x-tab-strip{padding-left:0}.x-tab-panel-bwrap{border-radius:3px;overflow:visible}.x-tab-panel-bwrap .x-tab-panel-bwrap{box-shadow:none}ul.x-tab-strip li{background-color:transparent;color:#53595f;border-top-left-radius:3px;border-top-right-radius:3px;cursor:pointer;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:2.2;margin-left:0;padding:0 12px;position:relative;z-index:5}ul.x-tab-strip li:hover{background-color:#e4e4e4;color:#000}ul.x-tab-strip li.x-tab-strip-active{color:#234368;background-color:#fff;cursor:default}.vertical-tabs-header ul.x-tab-strip li.x-tab-strip-active{border-radius:0}ul.x-tab-strip li.x-tab-strip-active:hover{background-color:#fff}ul.x-tab-strip li.x-tab-edge{height:0;visibility:hidden}.x-tab-panel,.x-tab-panel-header,.x-tab-strip-wrap{overflow:visible;border:none}.x-tab-strip-wrap{overflow:hidden;padding:2px 5px 0 5px;margin-left:-5px}.x-tab-strip-closable{padding-right:15px!important}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{right:2px;background-image:url(../images/modx-theme/tabs/tab-close.gif)}ul.x-tab-strip-top li:first-child{margin-left:0}ul.x-tab-strip-bottom{background-color:#f4f4f4;border-top-color:#dfdfdf}ul.x-tab-strip-bottom .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-left-bg.gif)}ul.x-tab-strip-bottom .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-left-bg.gif)}.x-tab-panel-body{background-color:#fff;border:0;overflow:visible}.x-tab-scroller-left,.x-tab-scroller-right{border:0}.x-tab-scroller-left:before,.x-tab-scroller-right:before{box-sizing:border-box;color:#515151;content:'';font-size:28px;margin-top:-20px;opacity:1;position:absolute;top:50%;right:0;text-align:center;width:18px;transition:opacity .25s}.x-tab-scroller-left-over:before,.x-tab-scroller-right-over:before{color:#234368}.x-tab-scroller-left-disabled,.x-tab-scroller-right-disabled{cursor:default}.x-tab-scroller-left-disabled:before,.x-tab-scroller-right-disabled:before{color:#515151;opacity:.4}.x-tab-scroller-left:before{content:"\f0d9"}.x-tab-scroller-right:before{content:"\f0da"}.x-tab-panel-bbar .x-toolbar,.x-tab-panel-tbar .x-toolbar{border-color:#dfdfdf}.x-tab-panel-body-noborder .x-panel-body-noheader:first-child{border-top:0 none}.x-tab-panel-bbar-noborder .x-toolbar{border-top-color:transparent}.x-tab-panel-tbar-noborder .x-toolbar{border-bottom-color:transparent}.vertical-tabs-panel{background-color:#fff;margin:0;overflow:hidden}.vertical-tabs-panel.wrapped{border:1px solid #e4e4e4}.vertical-tabs-panel .vertical-tabs-header{background:#fff!important;border-right:1px solid #e4e4e4!important;float:left;margin-bottom:-10000px;padding-bottom:10000px!important;width:168px!important}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap{background-color:transparent;display:inline-block;line-height:0;margin:0;padding:0;width:auto!important}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip{border:0;display:inline-block;top:0;width:auto}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{border-right:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;color:#515151;float:none;line-height:1;margin:0;overflow:hidden;padding:10px 15px 10px 15px;transition:background-color .25s,color .25s}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{font-size:12px;padding:8px}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li:hover{background:#fff}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{background:#fff;border-color:#234368;border-right-color:#fff;box-shadow:none;color:#234368;width:168px}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge{height:0;visibility:hidden}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge .x-tab-strip-text{display:none}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li .x-tab-strip-text{line-height:1.4;padding:2px 0 2px 0;word-break:break-all;white-space:pre-wrap}.vertical-tabs-panel .vertical-tabs-header h4{background:#fff;border-bottom:1px solid #e4e4e4;color:#53595f;font-size:16px;padding:15px 0 15px 15px}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-spacer{display:none}.vertical-tabs-panel .x-tab-panel-bwrap{box-shadow:none}.vertical-tabs-panel .x-tab-panel-bwrap .x-tab-panel-body{border-top:0;width:auto!important}.vertical-tabs-panel .x-tab-panel-bwrap .vertical-tabs-body{border:0;padding:15px 20px 15px 15px}.tvs-wrapper.below-content{border-radius:3px;margin:1rem}.tvs-wrapper.below-content .vertical-tabs-panel{border-radius:3px}@media screen and (max-width:960px){.tvs-wrapper.below-content{margin:0}}.window-vtabs .x-panel-mr{padding-right:0}.window-vtabs .vertical-tabs-panel{width:100%!important;margin:0}#modx-split-wrapper .x-border-layout-ct{background:0 0}#modx-leftbar-tabs-xcollapsed{display:none!important}#modx-leftbar{background-color:#fff;z-index:0;min-width:288px}@media screen and (min-width:961px){#modx-leftbar{max-width:50%}}#modx-leftbar .x-toolbar{padding:0!important;border:0}#modx-header{background:#234368;max-width:80px;position:absolute;z-index:2;height:100%}#modx-navbar{font-weight:700;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:100%;z-index:20;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:0 10px}#modx-navbar .icon{color:#fff;font-size:20px;vertical-align:middle}#modx-navbar a,#modx-navbar li{background:0 0;margin:0;padding:0;position:relative;width:100%;text-align:center}#modx-navbar a{cursor:pointer;color:#fff;display:block;line-height:12px;font-size:10px;text-decoration:none}#modx-navbar li a:hover{opacity:.7}#modx-navbar #modx-leftbar-trigger a,#modx-navbar #modx-manager-search-icon a,#modx-navbar #modx-user-menu a{padding:12px 0}#modx-navbar #modx-topnav{list-style:none;margin:0;padding:0}#modx-navbar #modx-topnav .top:not(#modx-manager-search-icon){border-top:1px solid rgba(255,255,255,.1)}#modx-navbar #modx-topnav>li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger)>a{display:block;position:relative;padding:12px 0}#modx-navbar #modx-topnav>li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger)>a:before{position:absolute;top:0;left:0;right:0;bottom:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free','Font Awesome 5 Brands';font-weight:900;text-align:center;font-size:20px;margin:5px 0;width:100%;position:static}#modx-navbar #modx-topnav #limenu-site>a:before{content:"\f15c";font-weight:300!important}#modx-navbar #modx-topnav #limenu-media>a:before{content:"\f1c5";font-weight:300!important}#modx-navbar #modx-topnav #limenu-components>a:before{content:"\f1b2"}#modx-navbar #modx-topnav #limenu-manage>a:before{content:"\f1de"}#modx-navbar #modx-user-menu{margin-top:auto}#modx-navbar #modx-user-menu #user-username{display:none}#modx-navbar #modx-user-menu #user-avatar img{border-radius:20px;height:40px;width:40px;display:block;margin:auto}#modx-navbar #modx-user-menu #limenu-user a{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}#modx-navbar #modx-home-dashboard{border-radius:3px;width:40px;height:40px;line-height:40px;padding:10px}#modx-navbar #modx-site-info{font-size:10px}#modx-navbar #modx-site-info .site_name{color:#fff}#modx-navbar #modx-site-info .full_appname{color:#fff}#modx-navbar #modx-site-info>.info-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#modx-footer ul.modx-subnav li:hover ul ul,#modx-footer ul.modx-subnav ul li:hover ul ul,#modx-footer ul.modx-subnav ul ul li:hover ul ul{display:none}#modx-footer ul.modx-subnav li:hover ul,#modx-footer ul.modx-subnav ul li:hover ul,#modx-footer ul.modx-subnav ul ul li:hover ul,#modx-footer ul.modx-subnav ul ul ul li:hover ul{display:block}#modx-leftbar-trigger{transition:all .2s ease}#modx-leftbar-trigger .icon:before{content:"\f060"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f061"!important}#modx-footer .modx-subnav{border:1px solid rgba(255,255,255,.1);box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;background:#fff;display:block;box-sizing:border-box;list-style:none;position:absolute;z-index:10000;opacity:0;visibility:hidden;transition:all .15s ease}#modx-footer .modx-subnav li{display:block;border-radius:3px;background:#fff;margin:0;padding:0;position:relative}#modx-footer .modx-subnav li:not(:first-child){border-top:1px solid #e4e4e4}#modx-footer .modx-subnav li:hover:after{border-right-color:#e4e4e4}#modx-footer .modx-subnav li.sub:after{position:absolute;color:#999;content:"\f0da";font-size:14px;margin-top:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);right:10px}#modx-footer .modx-subnav li a{border-radius:3px;text-align:left;background-color:#fff;color:#515151;font-weight:700;line-height:1.5;margin:0;padding:8px 15px;text-shadow:none;width:270px;display:block;text-decoration:none;cursor:pointer}#modx-footer .modx-subnav li a span{color:#999;display:block;float:none;font-size:12px;font-weight:400;line-height:1.3;margin-top:6px;width:100%}#modx-footer .modx-subnav li a:hover{background:#e4e4e4;border-top-color:#e4e4e4;border-bottom-color:#e4e4e4;color:#53595f}#modx-footer .modx-subnav li a:hover .description{color:#707070}#modx-footer .modx-subnav.active{opacity:1;visibility:visible}#modx-footer .modx-subnav .modx-subsubnav{border:1px solid rgba(255,255,255,.1);box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;background:#fff;display:none;list-style:none;position:absolute;left:295px;bottom:0;z-index:24}#modx-footer .modx-subnav-arrow{right:100%;border:12px solid transparent;border-right-color:#fff;content:' ';position:absolute;pointer-events:none;margin-top:-6px}#modx-footer #limenu-user-submenu #language .modx-subsubnav{max-height:86vh;overflow-y:auto}@media screen and (max-width:960px){#modx-header{position:relative;min-width:100%;height:auto!important}#modx-navbar{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-navbar #modx-headnav{-ms-flex-order:1;order:1;width:50%}#modx-navbar #modx-headnav a{line-height:initial!important}#modx-navbar #modx-headnav img{max-width:35px}#modx-navbar #modx-topnav{width:100%;-ms-flex-order:0;order:0}#modx-navbar #modx-user-menu{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:50%;-ms-flex-order:2;order:2;margin-top:0}#modx-navbar>ul{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}#modx-navbar>ul>li{-ms-flex-preferred-size:50px;flex-basis:50px}#modx-navbar #modx-site-info{display:none}#modx-navbar #modx-home-dashboard{margin:0;padding:5px}#modx-leftbar-trigger .icon{padding:3px 4px}#modx-leftbar-trigger .icon:before{content:"\f062"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f063"!important}#modx-footer .modx-subnav{min-width:300px;top:60px!important}#modx-footer .modx-subnav .description{display:none}#modx-footer .modx-subnav li{border-radius:0}#modx-footer .modx-subnav li.sub:after{display:none}#modx-footer .modx-subnav li a{width:auto;white-space:nowrap}#modx-footer .modx-subnav .modx-subsubnav{position:initial;left:auto;box-shadow:none;display:block;max-height:initial!important;overflow-y:initial!important}#modx-footer .modx-subnav .modx-subsubnav li>a{margin-left:1rem}#modx-footer .modx-subnav-arrow{display:none}#modx-footer .modx-subnav-wrapper{max-height:400px;overflow-y:auto}}@media (max-height:520px){#modx-footer .modx-subnav .description{display:none}}#modx-manager-search{padding:10px 10px 5px;height:38px;min-width:100px;background:#fff;border-radius:3px 3px 0 0}#modx-manager-search .x-form-text{background:0 0}#modx-manager-search .x-form-field-wrap{background-image:none;color:#565353;font-size:12px;outline:0!important}#modx-manager-search .x-form-field-wrap .x-form-text{color:#515151;letter-spacing:0;text-shadow:none;font-weight:400}#modx-manager-search .x-form-field-wrap .x-form-empty-field{color:#6a747a}#modx-manager-search .x-form-field-wrap .x-form-trigger{display:none}.modx-manager-search-results{background:#e4e4e4;border-radius:0 0 3px 3px;border:1px solid #e4e4e4;box-shadow:0 4px 10px 0 rgba(0,0,0,.2);position:relative;width:402px!important;height:auto!important;box-sizing:border-box}@media screen and (max-width:960px){.modx-manager-search-results{left:5px!important}}.modx-manager-search-results .loading-indicator{background:0 0;color:#515151;font-size:14px;margin:10px 0;text-align:center}.modx-manager-search-results .loading-indicator:before{content:"\f110";margin-right:5px}.modx-manager-search-results .x-combo-list-inner{background:#fff;border:0;margin:0;overflow:auto;width:100%!important}@media screen and (max-width:960px){.modx-manager-search-results .x-combo-list-inner{height:auto!important;line-height:4em}.modx-manager-search-results .x-combo-list-inner .section>*{padding-top:.5em;padding-bottom:.5em}}.modx-manager-search-results .section{border-left:1px solid #ededed;font-size:13px;margin-left:95px;position:relative;width:auto}.modx-manager-search-results .x-combo-list-item,.modx-manager-search-results h3{color:#515151;line-height:17px;margin:0;padding:4px 8px}.modx-manager-search-results h3{color:#53595f;font-size:13px;font-weight:400;left:-116px;position:absolute;text-align:right;top:0;width:95px}.modx-manager-search-results a{cursor:pointer;display:inline-block;padding-left:18px;position:relative;color:inherit;text-decoration:none}.modx-manager-search-results i{color:#234368;left:0;position:absolute;top:2px}.modx-manager-search-results em{font-style:normal;opacity:.7}.modx-manager-search-results .x-combo-list-item{overflow:visible;white-space:normal}.modx-manager-search-results .x-combo-list-item a{display:block}.modx-manager-search-results .x-combo-list-item.x-combo-selected,.modx-manager-search-results .x-combo-list-item:hover{border:0;background-color:#e4e4e4;margin-left:0;z-index:10}.modx-manager-search-results .x-combo-list-item.x-combo-selected h3,.modx-manager-search-results .x-combo-list-item:hover h3{left:0}.modx-manager-search-results .x-combo-list-item.x-combo-selected p,.modx-manager-search-results .x-combo-list-item:hover p{border-left-color:transparent}.modx-manager-search-results .x-combo-list-item.x-combo-selected a,.modx-manager-search-results .x-combo-list-item:hover a{color:#515151}.modx-manager-search-results .icon-user{background-image:none!important}.breadcrumbs .panel-desc{margin-top:0}.crumb_wrapper{background:#fbfbfb;border-bottom:1px solid #e4e4e4;border-top:1px solid #e4e4e4;margin-top:15px}.crumb_wrapper .crumbs{height:34px;overflow:hidden}.crumb_wrapper .crumbs li{color:#53595f;float:left;font-size:12px;font-weight:400;line-height:12px;padding:0 0 0 20px;position:relative;z-index:1}.crumb_wrapper .crumbs li.first{padding:0}.crumb_wrapper .crumbs li.first:before{content:"\f015";display:inline-block;font-size:20px;line-height:34px;position:absolute;top:0;left:0;text-align:center;text-indent:0;z-index:2}#packages-breadcrumbs .crumb_wrapper .crumbs li.first:before{content:"\f1b2"}.crumb_wrapper .crumbs li.first:hover:before{color:#fff}.crumb_wrapper .crumbs li.first:hover{background-color:#515151}.crumb_wrapper .crumbs li.first .root{background-color:transparent;box-sizing:content-box;display:inline-block;line-height:12px;margin:0;padding:12px;text-indent:-999em;width:35px;z-index:3}.crumb_wrapper .crumbs li.first .root:before{display:none}.crumb_wrapper .crumbs li.first .root:hover{background-color:transparent}.crumb_wrapper .crumbs li:hover button,.crumb_wrapper .crumbs li:hover span,.crumb_wrapper .crumbs li:hover span:after{background-color:#515151;color:#fff}.crumb_wrapper .crumbs li:hover button:after,.crumb_wrapper .crumbs li:hover span:after{border:1px solid #fbfbfb;border-left-color:#515151;border-bottom-color:#515151}.crumb_wrapper .crumbs li:hover button:before,.crumb_wrapper .crumbs li:hover span:before{background-color:#515151}.crumb_wrapper .crumbs li:hover+li button:before,.crumb_wrapper .crumbs li:hover+li span:before{border-left-color:#515151}.crumb_wrapper .crumbs li button{background-color:transparent;border:0;color:#53595f;cursor:pointer;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;line-height:1;text-decoration:none}.crumb_wrapper .crumbs li span{background-color:#fbfbfb}.crumb_wrapper .crumbs li button,.crumb_wrapper .crumbs li span{display:inline-block;margin:0 0 0 1px;padding:11px 13px 11px 15px;position:relative}.crumb_wrapper .crumbs li button:before,.crumb_wrapper .crumbs li span:before{background-color:transparent;content:'';display:inline-block;width:0;height:0;border-top:50px solid transparent;border-bottom:50px solid transparent;border-left:30px solid #fbfbfb;padding-right:3px;position:absolute;top:50%;left:-33px;margin-top:-50px;-ms-transform:scale(.99999);transform:scale(.99999);z-index:-1}.crumb_wrapper .crumbs li button:after,.crumb_wrapper .crumbs li span:after{background-color:#fbfbfb;border:1px solid #dcdcdc;border-left:0;border-bottom:0;border-radius:3px;content:'';display:inline-block;width:34px;height:34px;position:absolute;top:0;right:-22px;-ms-transform:scaleX(.6) rotate(45deg);transform:scaleX(.6) rotate(45deg);z-index:-1}.x-toolbar{background-color:#f7f7f7;background-image:none;border-color:#dfdfdf}.x-toolbar .x-toolbar-cell label,.x-toolbar .xtb-text{margin:0 5px 0 7px;padding:0}.x-toolbar .x-item-disabled{opacity:.6}.x-toolbar td.x-toolbar-cell:first-of-type .xtb-text{margin-left:0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:0}.x-toolbar .x-btn-group-header{line-height:1}.x-toolbar em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-toolbar .x-btn-click em.x-btn-split-bottom,.x-toolbar .x-btn-menu-active em.x-btn-split-bottom,.x-toolbar .x-btn-over em.x-btn-split-bottom,.x-toolbar .x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.ext-ie .x-toolbar-cell .x-form-field-wrap{height:30px}.x-tbar-page-first{background-image:url(../images/modx-theme/grid/page-first.png)!important}.x-tbar-loading{background-image:url(../images/modx-theme/grid/refresh.png)!important}.x-tbar-page-last{background:0 0!important;position:relative}.x-tbar-page-last:before{content:"\f04e";top:1px;left:1px;right:auto}.x-tbar-page-next{background:0 0!important;position:relative}.x-tbar-page-next:before{content:"\f0da";font-size:18px;line-height:110%;left:1px;right:auto}.x-tbar-page-prev{background:0 0!important;position:relative}.x-tbar-page-prev:before{content:"\f0d9";font-size:18px;line-height:110%;left:auto;right:1px}.x-tbar-loading{background:0 0!important;position:relative}.x-tbar-loading:before{content:"\f01e";top:1px;bottom:auto}.x-tbar-page-first{background:0 0!important;position:relative}.x-tbar-page-first:before{content:"\f04a";top:1px;left:auto;right:1px}.x-paging-info{color:#444}.x-toolbar-more-icon{background-image:url(../images/modx-theme/toolbar/more.gif)!important}.x-panel-bbar{padding-top:10px}.modx-browser-rte-buttons .x-panel-bbar{background-color:#fff;border-top:1px solid #fff;padding:5px}.modx-browser-rte-buttons .x-panel-bbar .x-toolbar-layout-ct{width:auto!important}.x-panel-bbar .x-toolbar{background-color:transparent;border:0 none;overflow:hidden;padding:2px 0}.x-panel-bbar .x-toolbar .x-form-text{padding:5px 10px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number,.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-size{width:32px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number{margin-right:3px}.x-panel-bbar .x-toolbar .x-btn{margin-right:10px;padding:8px 13px}.modx-browser-rte .x-panel-bbar .x-toolbar .x-btn{margin-right:0;padding:10px 15px 10px 15px}.x-panel-bbar .x-toolbar .xtb-text{margin:0 3px 0 0}.x-panel-tbar{overflow:visible;padding-bottom:2px}.x-panel-tbar .x-toolbar{border:0;padding:5px 0;overflow:visible}.x-panel-mc .x-panel-tbar .x-toolbar{background-image:none;border:0;padding:15px 0 7px 0}.x-panel-tbar-noheader .x-toolbar{background-color:transparent;background-image:none;border:0;padding:5px 0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{border-radius:3px}.x-html-editor-tb .x-btn-text{background-image:url(../images/modx-theme/editor/tb-sprite.gif)}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{background-color:transparent;border-bottom-color:transparent}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-top-color:transparent}#modx-leftbar .x-tab-panel-noborder{margin:0 12px}#modx-leftbar .x-tab-panel-bwrap{border-radius:0 0 3px 3px;position:relative;z-index:1}#modx-leftbar .x-tab-panel-bwrap .x-tab-panel-body-noborder{border-radius:0 0 3px 3px;background:#f1f1f1}@media screen and (max-width:960px){#modx-leftbar #modx-leftbar-tabpanel{width:auto!important;margin:0 auto;padding:.5em}}@media screen and (max-width:960px){#modx-leftbar{position:relative!important;top:auto!important;left:auto!important;width:100%!important;height:auto!important;box-shadow:none;margin:0 auto 10px auto}#modx-leftbar #modx-leftbar-header{display:none}}@media screen and (max-width:960px){#modx-leftbar .x-plain-body{width:100%!important;height:auto!important}}#modx-leftbar .x-panel-tbar{padding:0}#modx-leftbar .x-toolbar{padding:4px 5px 2px 0}#modx-leftbar .x-tree-root-ct{padding:6px}#modx-leftbar .x-tree .x-panel-body{background:#fff;border-radius:0}#modx-tree-usergroup .x-toolbar-left-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-resource-tree-tbar .x-toolbar-left .x-btn .tree-new-resource,#modx-tree-element .x-toolbar-left .x-btn .tree-new-template{margin-left:16px}#modx-split-wrapper #modx-leftbar-tabs-xcollapsed,#modx-split-wrapper .x-layout-split{margin-left:-80px}.x-layout-split{overflow:visible;width:8px;z-index:2}.x-layout-split:hover{background:#999}#modx-leftbar-tabs-xcollapsed .x-layout-mini{left:0}#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border-right:0;border-left:5px solid #515151}@media screen and (max-width:960px){#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border:none}}#modx-leftbar-tabs-xcollapsed .x-layout-mini:hover:after{border-left-color:#234368}.modx-tree{padding:0}#modx-file-tree .modx-tree:first-child{padding-top:4px}.x-tree-arrows .x-tree-elbow-end-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-plus{background:0 0}.x-tree-arrows .x-tree-elbow-end-minus:hover,.x-tree-arrows .x-tree-elbow-end-plus:hover,.x-tree-arrows .x-tree-elbow-minus:hover,.x-tree-arrows .x-tree-elbow-plus:hover{background:#d9d9d9;border-radius:50%}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{background:transparent 0 0;display:inline-block;width:10px;padding-left:4px;padding-right:4px;text-align:center;margin:0}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{content:"\f0da"}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-minus:before{content:"\f0d7"}.x-tree-node-el{color:#515151;font:normal 14px/2.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:0 0 0 8px;background-repeat:no-repeat;background-position:5px}.x-tree-node-el.is_folder{background:0 0}.x-tree-node-el .x-btn{box-shadow:none}.x-tree-node-el .icon{display:inline-block;width:1em;font-size:1.15em;line-height:.75em;vertical-align:-15%}.x-tree-node-el a span{padding-left:7px}.x-tree-node-el a span span{padding-left:0}.x-tree-node-el .icon-plus-circle,.x-tree-node-el .icon-refresh{font-size:1em;vertical-align:0}.unpublished,.unpublished a span{color:#b3b2b2!important;font-style:normal}.unpublished a span i.icon,.unpublished a span i.icon-large,.unpublished i.icon,.unpublished i.icon-large{color:#b3b2b2!important;font-style:normal}.hidemenu,.hidemenu a span{color:#999;font-style:italic}.hidemenu a span i.icon,.hidemenu a span i.icon-large,.hidemenu i.icon,.hidemenu i.icon-large{color:#999;font-style:normal}.deleted{color:rgba(175,90,98,.5)!important}.deleted i.icon,.deleted i.icon-large{color:rgba(175,90,98,.5)!important;font-style:normal}.deleted a span{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.element-node-disabled a span{color:#aaa}.x-tree-node{position:relative;background:#fff;color:#999}.x-tree-node .element-node-disabled a span,.x-tree-node .element-node-disabled i.icon,.x-tree-node .x-tree-node-disabled a span,.x-tree-node .x-tree-node-disabled i.icon{color:#aaa}.element-node-locked a span{font-style:inherit}.modx-tree-node-tool-ct{position:absolute;top:0;right:6px;bottom:0;line-height:1.8}.modx-tree-node-tool-ct .x-btn:focus,.modx-tree-node-tool-ct .x-btn:hover{color:#6cb24a!important}.x-tree-node-el .modx-tree-node-btn-create{position:absolute;top:0;right:6px;bottom:0;line-height:34px;opacity:0;transition:opacity .4s ease-in}.x-tree-node-el .modx-tree-node-btn-create .x-btn{color:#515151;opacity:.4;transition:opacity .2s ease-in-out,color .2s ease-in-out}.x-tree-node-el .modx-tree-node-btn-create .x-btn:focus,.x-tree-node-el .modx-tree-node-btn-create .x-btn:hover{opacity:1;color:#6cb24a}.x-tree-node-el:focus .modx-tree-node-btn-create,.x-tree-node-el:hover .modx-tree-node-btn-create{opacity:1}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.tree-pseudoroot-node.x-tree-node-el{background-color:#f1f1f1;font:500 14px/3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;position:relative;padding:0 0 0 4px}.tree-pseudoroot-node.x-tree-node-el a span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el>.icon{color:#53595f}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct{line-height:3;opacity:.5}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct .x-btn{margin-left:2px}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-collapsed{border-bottom:1px solid #e4e4e4}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded span,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded>.icon{color:#53595f}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-over{background-color:#e4e4e4;color:#53595f}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct{background:#fbfbfb;overflow-x:auto}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct:empty,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct:empty{padding:0}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct{opacity:1}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct .x-btn{color:inherit}.x-tree-elbow,.x-tree-elbow-end{display:inline-block}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.ext-ie .x-tree-node-el input{height:15px;width:15px}#modx-leftbar .icon,.x-tree-node .icon{background:0 0;border:0;display:inline-block;margin:0;padding:3px;text-align:center;opacity:.8}#modx-leftbar .icon.icon-code:before,#modx-leftbar .icon.icon-cogs:before,#modx-leftbar .icon.icon-columns:before,#modx-leftbar .icon.icon-folder:before,#modx-leftbar .icon.icon-th-large:before,.x-tree-node .icon.icon-code:before,.x-tree-node .icon.icon-cogs:before,.x-tree-node .icon.icon-columns:before,.x-tree-node .icon.icon-folder:before,.x-tree-node .icon.icon-th-large:before{font-weight:900}#modx-leftbar .icon i,.x-tree-node .icon i{font-style:normal}#modx-leftbar .icon button,.x-tree-node .icon button{display:none}.x-tree-node-ct .x-tree-node .icon{position:relative;top:-1px;left:-1px}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node div.x-tree-drag-insert-below{border-bottom:2px solid #a8c3e2!important}.x-tree-node div.x-tree-drag-insert-above{border-top:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #a8c3e2!important}.x-tree-node .x-tree-drag-append a span{background-color:#e4e4e4;border-color:#e4e4e4}.x-tree-node .x-tree-node-over{background-color:#e4e4e4}.x-tree-node .x-tree-selected{background-color:#d6e7f8}.x-tree-node .x-tree-expanded{color:#234368;background-color:#e4e4e4}.x-tree-node .x-tree-expanded a{color:#234368}.x-tree-node .x-tree-expanded a span{color:#234368}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}.icon-rss:before{content:"\f09e"}.icon-cal:before,.icon-ical:before,.icon-ics:before,.icon-vcs:before{content:"\f133"}.icon-db:before,.icon-sql:before{content:"\f1c0"}.icon-7z:before,.icon-bz2:before,.icon-dmg:before,.icon-gz:before,.icon-iso:before,.icon-rar:before,.icon-tar:before,.icon-tgz:before,.icon-zip:before{content:"\f1c6"}.icon-backup:before,.icon-bak:before,.icon-bk:before{content:"\f1da"}.icon-bmp:before,.icon-gif:before,.icon-jpeg:before,.icon-jpg:before,.icon-png:before,.icon-svg:before,.icon-tiff:before{content:"\f1c5"}.icon-bat:before,.icon-scr:before,.icon-sh:before{content:"\f120"}.icon-log:before,.icon-txt:before{content:"\f15c"}.icon-aac:before,.icon-aif:before,.icon-aiff:before,.icon-flac:before,.icon-m4a:before,.icon-mp3:before,.icon-ogg:before,.icon-wav:before,.icon-wma:before{content:"\f1c7"}.icon-3gp:before,.icon-avi:before,.icon-fla:before,.icon-flv:before,.icon-m4v:before,.icon-mov:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-swf:before,.icon-wmv:before{content:"\f1c8"}.icon-access:before,.icon-htaccess:before{content:"\f023"}.icon-as:before,.icon-cfm:before,.icon-jar:before,.icon-java:before,.icon-php:before,.icon-rb:before{content:"\f1c9"}.icon-doc:before,.icon-docx:before{content:"\f1c2"}.icon-csv:before,.icon-xls:before,.icon-xlsx:before{content:"\f1c3"}.icon-ppt:before,.icon-pptx:before{content:"\f1c4"}.icon-pdf:before{content:"\f1c1"}.icon-htm:before,.icon-html:before,.icon-xml:before{content:"\f1c9"}.icon-coffeescript:before,.icon-js:before,.icon-json:before{content:"\f1c9"}.icon-css:before,.icon-less:before,.icon-scss:before,.icon-styl:before{content:"\f1c9"}.icon-action{background-image:url(../images/restyle/icons/application_osx_terminal.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-action.x-tree-node-el{background-position:5px 5px!important}.icon-action:before{content:' '}.icon-namespace{background-image:url(../images/restyle/icons/computer.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-namespace.x-tree-node-el{background-position:5px 5px!important}.icon-namespace:before{content:' '}.icon-list-new{background-image:url(../images/restyle/icons/layout_add.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-list-new.x-tree-node-el{background-position:5px 5px!important}.icon-list-new:before{content:' '}.icon-mark-active{background-image:url(../images/restyle/icons/layout_edit.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-mark-active.x-tree-node-el{background-position:5px 5px!important}.icon-mark-active:before{content:' '}.icon-mark-complete{background-image:url(../images/restyle/icons/layout_header.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-mark-complete.x-tree-node-el{background-position:5px 5px!important}.icon-mark-complete:before{content:' '}.icon-package{background-image:url(../images/restyle/icons/package.png)!important;padding-right:5px!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-package.x-tree-node-el{background-position:5px 5px!important}.icon-package:before{content:' '}.icon-locked{background-image:url(../images/restyle/icons/lock_edit.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-locked.x-tree-node-el{background-position:5px 5px!important}.icon-locked:before{content:' '}.icon-lock{content:"\f023"}#modx-resource-tree-panel .x-accordion-hd{background-position:0 0}#modx-element-tree-panel .x-accordion-hd{background-position:0 -32px}#modx-file-tree-panel .x-accordion-hd{background-position:0 -64px}#modx-static-page-settings .x-accordion-hd{background-position:0 -96px}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.tree-context:before{content:"\f0ac"}.tree-resource:before{content:"\f15b"}.tree-static-resource:before{content:"\f15c"}.tree-weblink:before{content:"\f0c1"}.tree-symlink:before{content:"\f0c5"}.icon-folder:before,.parent-resource:before{content:"\f07b"}.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{content:"\f07c"}.locked-resource:before{content:"\f023"!important}.ext-ie .x-tree-node-el input{height:15px;width:15px}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.x-tree-root-node{margin:0}.x-tree-node{color:#515151}.x-dd-drag-ghost a,.x-tree-node a{color:#515151}.x-dd-drag-ghost a span,.x-tree-node a span{color:#515151}.x-tree-node .x-tree-node-disabled a span{color:#d1d0d0}.x-tree-node div.x-tree-drag-insert-below{border-bottom-color:#686868}.x-tree-node div.x-tree-drag-insert-above{border-top-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top-color:#686868}.x-tree-node .x-tree-drag-append a span{background-color:#dfdfdf;border-color:#e4e4e4}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}#modx-leftbar-header{height:57px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:left;justify-content:left;padding:.67rem 1rem;box-sizing:border-box;color:#53595f}#modx-leftbar-header img{max-width:33%;max-height:100%}#modx-leftbar-header a{color:#53595f;text-decoration:none;font:normal 25px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px}#modx-leftbar-header a:focus,#modx-leftbar-header a:hover{color:#234368}#modx-leftbar-header a:after{content:"\f06e";margin-left:5px;font-size:14px;opacity:.5}#modx-leftbar-header img+a{padding-left:.67rem}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip-wrap{margin:0;padding:0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip{display:-ms-flexbox;display:flex;width:100%}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li{margin-left:0;float:none;-ms-flex-positive:1;flex-grow:1;text-align:center;box-sizing:border-box}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li#modx-leftbar-tabpanel__modx-trash-link{border-right:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li:hover{color:#234368}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active{background:#f1f1f1}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:after{box-shadow:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:before{background:0 0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-clear,#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-tab-edge{display:none}#modx-leftbar-tabpanel__modx-trash-link .icon{opacity:.5}#modx-leftbar-tabpanel__modx-trash-link .icon:hover{color:#cf1124}#modx-leftbar-tabpanel__modx-trash-link.active .icon{opacity:1}.modx-browser-rte{background:#fff}.modx-browser-tree{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-tree,.x-window .modx-browser-tree{border-right:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-view-ct{background:#fff;border-radius:3px;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.modx-browser-rte .modx-browser-view-ct,.x-window .modx-browser-view-ct{border-radius:0;box-shadow:none}.modx-browser-thumb-wrap{float:left;margin:5px;overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center}.modx-browser-thumb-wrap.x-view-over .modx-browser-placeholder{color:#515151}.modx-browser-thumb-wrap.x-view-over .modx-browser-thumb{border:1px dotted #515151}.modx-browser-thumb-wrap.x-view-selected .modx-browser-placeholder{color:#234368}.modx-browser-thumb-wrap.x-view-selected .modx-browser-thumb{border:1px solid #234368}.modx-browser-thumb{background:#fff;border:1px solid #e4e4e4;height:100px;line-height:100px;padding:5px;width:100px}.modx-browser-thumb img{max-width:100%;vertical-align:middle;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.modx-browser-placeholder{font-size:14px;color:#dcdcdc}.details .modx-browser-placeholder{font-weight:700;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100px;width:100%;font-size:24px;overflow:hidden}.modx-browser-list-item{padding:0 5px 0 5px}.modx-browser-list-item>span{background-position:center left!important;border-bottom:1px solid #e4e4e4;clear:both;display:block;min-height:16px;padding:5px 0 5px 20px;position:relative}.modx-browser-list-item>span:before{font-size:14px;position:absolute;left:2px}.modx-browser-list-item>span span{display:inline-block;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.modx-browser-list-item>span span.file-size{float:right;width:13%}.modx-browser-list-item>span span.image-size{float:right;width:13%}.modx-browser-list-item.x-view-over>span{background:#fbfbfb}.modx-browser-list-item.x-view-selected>span{background:#fbfbfb;color:#234368}.modx-browser-view-ct .loading-indicator{background-position:left;background-repeat:no-repeat;font-size:11px;margin:10px;padding-left:20px}.modx-browser-pathbbar table,.modx-browser-pathbbar tbody,.modx-browser-pathbbar td,.modx-browser-pathbbar tr{display:block}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell{position:relative}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before{content:"\f328";font-size:14px;opacity:.6;position:absolute;top:50%;left:0;text-align:center;width:30px}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row .modx-browser-filepath{background:0 0;box-sizing:border-box;border-radius:0;border:0;border-top:1px solid #e4e4e4;margin:0!important;padding-left:30px;width:100%;height:32px!important}.modx-browser-details-ct{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-details-ct,.x-window .modx-browser-details-ct{border-left:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-detail-thumb{color:#000;cursor:default;padding:5px;position:relative}.modx-browser-detail-thumb.preview{cursor:pointer}.modx-browser-detail-thumb.preview:before{content:"\f002";font-size:56px;margin-top:-28px;opacity:0;position:absolute;top:50%;left:0;text-align:center;width:100%;text-shadow:0 0 10px rgba(0,0,0,.2);transition:opacity .25s}.modx-browser-detail-thumb.preview:hover:before{opacity:.6}.modx-browser-detail-thumb img{display:block;margin:0 auto;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.modx-browser-details-info{border-top:1px solid #e4e4e4;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:15px;text-align:left}.modx-browser-details-info b{color:#53595f;display:block;margin-bottom:2px}.modx-browser-details-info span{display:block;margin-bottom:10px}.modx-browser-fullview{text-align:center}.modx-browser-fullview img{display:block;margin:0 auto;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}@media screen and (max-width:960px){.modx-browser{top:15px!important;max-height:100%!important;overflow-y:scroll}.modx-browser-panel{width:100%!important;min-height:700px;margin:15px 0!important;background-color:#fff!important}.modx-browser-tree,.modx-browser-view-ct{width:35%!important;max-width:35%!important;padding:0 5px;display:inline-block!important;position:relative!important;float:left;left:0!important}.modx-browser-details-ct{width:20%!important;max-width:20%!important;padding:0 5px;display:inline-block!important;position:relative!important;float:left;left:0!important}.modx-browser-details-ct *,.modx-browser-tree *,.modx-browser-view-ct *{font-size:12px!important}.modx-browser-details-ct input,.modx-browser-tree input,.modx-browser-view-ct input{padding:5px!important}.modx-browser-tree .x-toolbar-ct tbody tr td{display:table-cell}.modx-browser .x-panel-tbar-noheader,.modx-browser .x-toolbar,.modx-browser-view-ct .x-panel-body,.modx-browser-view-ct .x-panel-tbar,.modx-browser-view-ct .x-panel-tbar .x-toolbar,.modx-browser-view-ct .x-panel-tbar-noheader{width:100%!important}.modx-browser-view-ct .x-panel-tbar .x-toolbar-cell label{line-height:2.2}.modx-browser-thumb-wrap{width:24%;margin:5px;padding:5px}.modx-browser-thumb{max-width:100%;height:25px;line-height:25px;overflow:hidden;padding:0}.modx-browser-thumb img{max-width:100%}.modx-browser-placeholder{height:50px}.modx-browser-details-info{padding:5px}}.x-window{box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;opacity:0;overflow:visible;-webkit-backface-visibility:hidden;transition:opacity .25s ease-in-out,transform .25s ease-in-out;transform:scale(1) translate3d(0,0,0)}.x-window.anim-ready{transform:scale(.7) translate3d(0,0,0)}.x-window.zoom-in{opacity:1;transform:scale(1) translate3d(0,0,0)}.x-window.zoom-out{transform:scale(1.3) translate3d(0,0,0);opacity:0}.x-window .x-window-tl,.x-window .x-window-tr{padding:0}.x-window .x-window-tc{z-index:1}.x-window .x-window-tc .x-window-header{background-color:#f4f4f4;border-bottom:1px solid #f4f4f4;border-radius:3px 3px 0 0;color:#515151;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;padding:8px;text-align:center}.x-window.x-panel-collapsed .x-window-tl{border-bottom:1px solid #dcdcdc}.x-window.x-panel-collapsed .x-window-header{border-radius:3px}.x-window .x-window-bwrap{overflow:visible}.x-window .x-window-bwrap .x-window-ml,.x-window .x-window-bwrap .x-window-mr{padding:0}.x-window .x-window-bwrap .x-window-mc{border:0;padding:0}.x-window .x-window-bwrap .x-window-mc .x-panel-bl,.x-window .x-window-bwrap .x-window-mc .x-panel-mc,.x-window .x-window-bwrap .x-window-mc .x-panel-ml,.x-window .x-window-bwrap .x-window-mc .x-panel-mr,.x-window .x-window-bwrap .x-window-mc .x-panel-tl{background:0 0;border:0;padding:0}.x-window .x-window-body{background-color:#fff!important;border:0;overflow-y:auto;padding:15px}.x-window.modx-window .x-window-body{padding-top:0}.x-window.modx-window .x-window-with-tabs .x-window-body,.x-window.modx-window.modx-alert .x-window-body,.x-window.modx-window.modx-confirm .x-window-body,.x-window.modx-window.modx-console .x-window-body{padding-top:15px}.x-window .x-panel-bwrap{background:#fff;padding:0}.x-window .x-panel-bwrap .x-panel-bwrap{background:0 0;box-shadow:none;overflow:visible;padding:0}.x-window .x-window-with-tabs .x-window-body{background-color:#fbfbfb!important;overflow:visible}.x-window .x-window-with-tabs .x-panel-bwrap{background:0 0;box-shadow:none;overflow:visible;padding:0}.x-window form.x-panel-body:first-of-type{overflow:visible!important}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap{padding-top:3px}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap .x-tab-strip{border:0}.x-window .x-tab-panel-bwrap{background:#fff;box-shadow:0 4px 6px rgba(0,0,0,.15);padding:10px}.x-window .x-tab-panel-bwrap .x-tab-panel-body{overflow-y:auto}.x-window .x-tab-panel-bwrap .x-tab-panel-body .modx-panel .x-panel-bwrap{padding:0}.x-window .x-window-bl,.x-window .x-window-br{padding:0}.x-window .x-window-bc .x-window-footer{background-color:#fff;border-top:1px solid #fff;border-radius:0 0 3px 3px;box-sizing:border-box;padding:5px 15px 15px;width:100%!important}.x-window.x-window-maximized{margin:0}.x-window.x-window-maximized .x-window-tc{padding:0}.x-window.x-window-maximized .x-window-mc{padding:0}.x-window.modx-console .modx-console-text{background-color:#fff;border:none;font:12px SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;height:auto!important}.x-window.modx-console .debug{color:#515151}.x-window.modx-console .success{color:#6cb24a}.x-window.modx-console .warn{color:#4a90e2}.x-window.modx-console .error{color:#cf1124}.x-progress-wrap{width:100%!important;border:1px solid #6cb24a}.x-progress-wrap .x-progress-inner{background-color:#fdfefd}.x-progress-wrap .x-progress-bar{background-color:#6cb24a;border:0}.x-progress-wrap .x-progress-text{color:#fff;font-size:11px;font-weight:700}.x-progress-wrap .x-progress-text-back{color:#515151}.ext-el-mask{background-color:#fff;opacity:0;transition:opacity .25s}.ext-el-mask.fade-in{opacity:.5}.x-masked .ext-el-mask{opacity:.5;z-index:9}.ext-mb-icon{display:inline-block;float:left;position:relative;width:40px!important}.ext-mb-icon:before{color:#4a90e2;content:'';font-size:32px;position:absolute;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);right:0;text-align:left;width:100%}.ext-mb-icon.ext-mb-info:before{color:#4a90e2;content:"\f05a"}.ext-mb-icon.ext-mb-question:before{color:#4a90e2;content:"\f059"}.ext-mb-icon.ext-mb-warning:before{color:#f0b429;content:"\f071"}.ext-mb-icon.ext-mb-error:before{color:#cf1124;content:"\f057"}.ext-mb-content{display:block;margin-left:0!important}.ext-el-mask-msg{background-color:#fff;border:1px solid #dcdcdc;box-shadow:0 4px 6px rgba(0,0,0,.15);border-radius:3px;padding:5px;z-index:10}.ext-el-mask-msg div{background-color:transparent;border:0;color:#515151;cursor:default;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ext-el-mask-msg .modx-lockmask div{color:#cf1124}.x-mask-loading div{background-image:url(../images/modx-theme/grid/loading.gif)}.dashboard{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:-1rem 0 0 -1rem!important;padding:0 15px}.dashboard .dashboard-button{padding:5px 20px;border-radius:3px;border:1px solid transparent;background:#fff;text-decoration:none;display:inline-block}.dashboard .dashboard-button-green{background:#6cb24a;color:#fff;border-color:#6cb24a}.dashboard .dashboard-button[disabled]{background-color:#e4e4e4}.dashboard .dashboard-button:not([disabled]):hover{border-color:#e4e4e4}.dashboard .dashboard-block{margin:1rem 0 0 1rem}.dashboard .dashboard-block:not(.headless){background-color:#fff;border-radius:3px}.dashboard .dashboard-block.headless .body{padding:0;overflow:visible;max-height:100%}.dashboard .dashboard-block.quarter{width:calc(25% - 1rem)}.dashboard .dashboard-block.one-third{width:calc(33.33332% - 1rem)}.dashboard .dashboard-block.half{width:calc(50% - 1rem)}.dashboard .dashboard-block.two-thirds{width:calc(66.66668% - 1rem)}.dashboard .dashboard-block.three-quarters{width:calc(75% - 1rem)}.dashboard .dashboard-block.full{width:calc(100% - 1rem)}.dashboard .dashboard-block.double{width:calc(100% - 1rem);min-height:250px;margin-top:2rem}.dashboard .dashboard-block.double .body{max-height:100%;height:100%}.dashboard .dashboard-block.double .dashboard-buttons{height:100%}.dashboard .dashboard-block.double .dashboard-button{-ms-flex-align:center;align-items:center}.dashboard .dashboard-block h4{color:#515151;font-size:13px;padding-bottom:2px}.dashboard .dashboard-block em{font-style:italic}.dashboard .dashboard-block strong{font-weight:700}.dashboard .dashboard-block ul{list-style:circle outside;padding:0 0 0 15px}.dashboard .dashboard-block img{max-width:100%}.dashboard .dashboard-block .draggable{cursor:move}.dashboard .dashboard-block .action-buttons{margin-left:auto;margin-right:10px}.dashboard .dashboard-block .action-buttons button{border:none;cursor:pointer;opacity:0;background:0 0}.dashboard .dashboard-block .action-buttons button.hidden{display:none}.dashboard .dashboard-block .body{color:#444;font-size:12px;height:auto;max-height:300px;overflow:auto;padding:10px;position:relative}.dashboard .dashboard-block .body .action-buttons{position:absolute;top:20px;right:-5px}.dashboard .dashboard-block .title-wrapper{border-bottom:1px solid #f0f0f0;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.dashboard .dashboard-block .title-wrapper .title{border-radius:3px;background:#fff;color:#515151;font-size:12px;font-weight:700;margin:0;padding:15px 10px;zoom:1;-ms-flex-positive:1;flex-grow:1}.dashboard .dashboard-block .actions button{width:10px;height:10px}.dashboard .dashboard-block:hover .action-buttons button{opacity:1}.dashboard ul.configcheck{list-style-type:none;padding:0}.dashboard ul.configcheck li{margin-bottom:.5em;margin-top:.5em;padding:1em 1.618em;background-color:#fbfbfb}.dashboard ul.configcheck li h5{color:#cf1124}.dashboard ul.configcheck li p{color:#515151}.dashboard .news_article{overflow:hidden;border-bottom:1px solid #dfdfdf;padding:15px 0}.dashboard .news_article h2{font-size:18px}.dashboard .news_article h2 a{text-decoration:none}.dashboard .news_article h2{font-size:18px}.dashboard .news_article .date_stamp{float:right;font-size:12px;font-style:italic}.dashboard .configcheck a,.dashboard .news_article a{text-decoration:underline}.dashboard .configcheck a:hover,.dashboard .news_article a:hover{text-decoration:none}.dashboard .table-wrapper{width:100%;overflow:auto}.dashboard table{width:100%;border:1px solid #ddd;border-radius:5px}.dashboard table th{font-weight:700;padding:10px;border-bottom:2px solid #f0f0f0}.dashboard table td{padding:10px;border-bottom:1px solid #f0f0f0;white-space:nowrap;vertical-align:center}.dashboard table td .unpublished{font-style:italic;color:#999}.dashboard table td .deleted{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.dashboard table tr:last-child td{border:none}.dashboard table tr:last-child td tr:last-child td{border:none}.dashboard table tr:last-child td tr:last-child td:first-child{border-bottom-left-radius:10px}.dashboard table tr:last-child td tr:last-child td:last-child{border-bottom-right-radius:10px}.dashboard .widget-footer{padding-top:10px;border-top:1px solid #f0f0f0}.dashboard .widget-footer a{display:block;padding-bottom:5px;padding-top:5px;font-size:14px;text-decoration:none;text-align:center}.dashboard .widget-actions a{display:inline-block;padding:3px 5px;border:1px solid #e4e4e4;border-radius:3px;margin-left:5px;text-decoration:none}.dashboard .widget-actions a:first-child{margin-left:0}.dashboard .widget-actions a:hover{background:#f0f0f0}.dashboard .widget-actions a .icon{width:12px;height:12px;text-align:center;display:inline-block}.dashboard .no-results{padding:10px;text-align:center;color:#999}.dashboard .user-with-avatar{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.dashboard .user-with-avatar .user-avatar{margin-right:10px}.dashboard .user-with-avatar .user-avatar img{width:35px;border-radius:50%}.dashboard .user-with-avatar .user-name{color:#234368;font-weight:500}.dashboard .user-with-avatar .user-group{color:#999}.dashboard .resource .title{color:#234368;font-weight:500}.dashboard .occurred-date{color:#234368;font-weight:500}.dashboard .occurred-time{color:#999}#modx-news-feed-container img{max-width:100%}.dashboard-buttons{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;width:calc(100% + 1rem);margin:-1rem 0 0 -1rem}.dashboard-buttons .dashboard-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-color:#fff;border-radius:3px;margin:1rem 0 0 1rem;padding:20px;text-decoration:none;color:#53595f;-ms-flex:1;flex:1}.dashboard-buttons .dashboard-button:hover{color:#000}.dashboard-buttons .dashboard-button:hover .icon{opacity:.7}.dashboard-buttons .dashboard-button-icon{border-radius:20px;border:1px solid #6cb24a;background:rgba(108,178,74,.2);padding:10px;text-align:center}.dashboard-buttons .dashboard-button-icon .icon{font-weight:700;display:block;color:#6cb24a;font-size:16px;width:16px;height:16px;text-align:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:10px}.dashboard-buttons .dashboard-button-title{font-weight:700}::-webkit-scrollbar,::-webkit-scrollbar-thumb{width:1rem;height:1rem;border:.25rem solid transparent;border-radius:.5rem;background-color:transparent}::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(85,108,136,.1)}::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 1rem rgba(85,108,136,.2)}::-webkit-resizer,::-webkit-scrollbar-corner{background-color:transparent}.updates-widget .updates-title{font-weight:500;color:#234368}.updates-widget .updates-updateable{display:inline-block;background:#4a90e2;color:#fff;border-radius:20px;padding:2px 8px;font-weight:700}.updates-widget .updates-available,.updates-widget .updates-ok{padding:3px 8px;color:#fff;border-radius:3px;text-transform:uppercase;font-size:10px}.updates-widget .updates-ok{background:#6cb24a}.updates-widget .updates-available{background:#cf1124}#modx-panel-system-info .x-form-label-left .x-form-item{padding:0}@media screen and (max-width:960px){.dashboard-buttons .dashboard-button{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:0;margin-top:5px}}@media screen and (max-width:960px){.dashboard .dashboard-block.half,.dashboard .dashboard-block.one-third,.dashboard .dashboard-block.quarter,.dashboard .dashboard-block.two-thirds{width:calc(100% - 1rem)}.dashboard-buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.dashboard-buttons .dashboard-button{padding:10px}.dashboard-buttons .dashboard-button-wrapper{display:none}}.nobg .x-panel-body{background:0 0;padding-right:1.5em}#managerbuttons{margin-bottom:1em;overflow:hidden;width:100%}#managerbuttons ul:after,#managerbuttons ul:before{content:" ";display:table}#managerbuttons ul:after{clear:both}#managerbuttons ul{margin:0;width:100%}#managerbuttons ul li{display:table;float:left;margin:0;padding:0 1%;position:relative;width:20%;box-sizing:border-box}#managerbuttons ul li:first-child{padding-left:0}#managerbuttons ul li:last-child{padding-right:0}#managerbuttons ul li a{background-color:#fff;border-radius:3px;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;color:#53595f;display:table-cell;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;padding:12px;position:relative;text-align:center;text-decoration:none;vertical-align:middle}#managerbuttons ul li a span{display:block;line-height:1.4}#managerbuttons ul li a span.headline{font-size:12px}#managerbuttons ul li a span.subline{font-weight:400}#managerbuttons ul li a span.icon{display:block;margin:0 auto;padding:0 0 10px;width:auto}#managerbuttons ul li a:hover span.icon{color:#234368}#contactus,#helpBanner{box-sizing:border-box;background:#fff;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;margin:.75em 0 1.75em;padding:18px;width:100%}#contactus h3,#helpBanner h3{margin:0 0 1em}#helpBanner{margin-top:1.5em;min-height:112px;background-image:url(../images/modx-logo-color.png);background-image:url(../images/modx-logo-color.svg),none;background-repeat:no-repeat;background-attachment:none;background-position:97% center;background-size:200px}#helpBanner #helpLogo{float:right;height:76px;margin-right:1em;width:200px}#contactus{box-sizing:border-box;float:left;width:60%}#contactus form{display:inline}#contactus input[type=email]{box-sizing:border-box;font-size:1.1em;margin-right:4px;padding:.4em;width:70%}#contactus input[type=submit]{border:0;cursor:pointer;font-size:1.1em;padding:6px 10px}#contactus p{color:#262626;margin:1em 0}#contactus form+p{margin:2em 0 0}#contactus a{color:#000;text-decoration:none}#contactus a:hover{text-decoration:underline}#contactus a:hover i{text-decoration:none}#contactus a i{margin:0 15px -6px 0}#mcsignup input.x-btn{padding:10px 15px}.icon.icon-2x{width:22px;text-align:center;vertical-align:text-bottom}#aboutMODX{box-sizing:border-box;background:#f0f0f0;float:left;margin:1em 0 0 2%;min-height:300px;padding:1em;width:38%}#aboutMODX p{line-height:1.6;margin:0 0 1em}#aboutMODX a{color:#234368;margin:-2px -4px;padding:2px 4px}#aboutMODX a:hover{background-color:#234368;color:#fff;text-decoration:none}.trashrow{background-color:#ccc!important}.x-btn-purge-all{color:#cf1124}.x-btn-purge-all:hover{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff}.x-btn-restore-all{color:#6cb24a}.x-btn-restore-all:hover{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff}body{color:#000;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}body a{color:#234368}body a:hover{color:#162a42}h2,h3{color:#515151;font:normal 25px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0 0 8px -1px}h3{font:550 15px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}strong{font-weight:700}em{font-style:italic}hr{background-color:#e4e4e4;border:0;color:#e4e4e4;height:1px;margin:20px 0}.aleft{text-align:left}.aright{text-align:right}.right{float:right}.left{float:left}.clear{clear:left}.bold{font-weight:700}.installed{color:#515151}.not-installed{color:#999;font-style:italic}.yellow{color:#fce588!important}.orange{color:#f0b429!important}.error,.red{color:#cf1124!important}.green{color:#6cb24a!important}.blue{color:#4a90e2!important}.primary{color:#6cb24a!important}.centered{text-align:center}.wait{background:transparent url(../images/style/wait.gif) no-repeat scroll center 55px;color:#53595f;font-size:15px;font-weight:700;padding:20px 10px 60px}.padding{background-color:#fff;padding:11px}.dashed{border-bottom:1px #90b1b9 dashed}.x-form-text,textarea.x-form-field{border-color:#e4e4e4}#modx-content,#modx-leftbar{transition:left .2s ease;position:absolute}#modx-leftbar-tabpanel{transition:all .6s ease}#modx-content{width:calc(100% - 390px);right:0;padding-left:.5rem;left:310px}.modx-form p{padding-bottom:10px}.x-layout-mini{left:2px}#modx-resource-content .x-panel-header{margin:0;padding:15px}#modx-resource-content .x-panel-bwrap{border:0}#modx-resource-content .modx-tv .modx-tv-label{width:auto;float:none;clear:none;padding:15px 0 4px;position:static}#modx-content-above .x-panel-bwrap,#modx-content-below .x-panel-bwrap{border:0}.x-tab-panel-header{box-sizing:border-box}.x-tab-panel-header .x-tab-strip li{box-sizing:border-box}@media screen and (max-width:960px){.x-viewport{overflow-y:auto}}@media screen and (max-width:960px){.x-viewport body{height:auto}}#modx-container{height:100%;width:100%;background:#f1f1f1}@media screen and (max-width:960px){#modx-container{height:auto}}@media screen and (max-width:1024px){#modx-page-settings-left,#modx-page-settings-right,#modx-resource-main-left,#modx-resource-main-right{box-sizing:border-box;width:100%!important;margin:0 auto 15px}}@media screen and (max-width:960px){#modx-chunk-form .main-wrapper,#modx-panel-plugin .main-wrapper,#modx-snippet-form .main-wrapper,#modx-template-form .main-wrapper,#modx-tv-tabs .main-wrapper{width:100%!important;padding:0}#modx-chunk-form .main-wrapper>.x-panel-bwrap,#modx-panel-plugin .main-wrapper>.x-panel-bwrap,#modx-snippet-form .main-wrapper>.x-panel-bwrap,#modx-template-form .main-wrapper>.x-panel-bwrap,#modx-tv-tabs .main-wrapper>.x-panel-bwrap{padding:1em}}@media screen and (max-width:960px){#modx-resource-main-right{margin:15px auto 0}}@media screen and (max-width:960px){.x-toolbar-ct{display:block}.x-toolbar-ct tbody{display:block}.x-toolbar-ct tbody tr{display:block}.x-toolbar-ct tbody tr td{display:block;width:100%}.x-toolbar-ct tbody tr td table{width:100%}.x-toolbar-ct tbody tr td table .x-form-field-wrap{width:100%!important;margin-left:0!important;margin-right:0!important}.x-toolbar-ct tbody tr td table .x-btn,.x-toolbar-ct tbody tr td table .x-form-text{width:100%!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box}.x-column{width:100%!important;margin-left:0!important;margin-right:0!important;float:none}}@media screen and (max-width:960px){#modx-tree-panel-usergroup .main-wrapper{width:100%!important;max-width:100%;position:relative;display:inline-block;float:left}}@media screen and (max-width:960px){.x-window{width:auto!important;max-width:100%!important;left:.5em!important;right:.5em!important}.x-window .x-window-body{width:100%!important;height:auto!important;box-sizing:border-box!important}.x-window .x-form-field-wrap{width:auto!important}.x-window input{width:100%!important;box-sizing:border-box;height:auto!important}}#modx-template-form .main-wrapper input{max-width:100%!important}@media screen and (max-width:960px){.x-column-inner>.x-column~.x-column{margin-left:0}}@media screen and (max-width:960px){#modx-import-base-path,.x-form-item label.x-form-item-label[for=modx-import-allowed-extensions],.x-form-item label.x-form-item-label[for=modx-import-base-path],.x-form-item label.x-form-item-label[for=modx-import-element],.x-form-item label.x-form-item-label[for=modx-import-parent],.x-form-item label.x-form-item-label[for=modx-import-resource-class]{width:auto!important;float:none}}#modx-import-allowed-extensions,#modx-import-base-path,#modx-import-element,#modx-import-resource-class{height:auto;width:100%!important;box-sizing:border-box}@media screen and (max-width:960px){#x-form-el-modx-import-allowed-extensions,#x-form-el-modx-import-base-path,#x-form-el-modx-import-element,#x-form-el-modx-import-resource-class{width:100%!important;padding-left:0!important}}.x-panel.drag-n-drop{z-index:0}.x-panel.drag-n-drop:before{position:absolute;top:0;right:0;left:0;bottom:0;display:block;content:' ';background:transparent url(../images/restyle/dragndrop.svg) no-repeat center;background-size:50% 50%;opacity:.1;z-index:-5}.x-panel.drag-n-drop>.x-panel-bwrap{background:0 0}.x-panel.drag-over .x-form-field{background:0 0}.x-panel.drag-over:after{content:"";top:0;right:0;bottom:0;left:0;position:absolute;display:block;opacity:.1;background:#6cb24a;border:5px solid #6cb24a}.x-panel-header{background:0 0;border:none;font-size:16px;margin:0;padding:0 0 10px 0}#modx-resource-tabs .x-panel-header{display:-ms-flexbox;display:flex;color:#515151;margin-bottom:5px;border-bottom:1px solid #e4e4e4}#modx-resource-tabs .x-panel-header .x-panel-header-text{-ms-flex-order:0;order:0;font-size:14px;-ms-flex:1;flex:1}#modx-resource-tabs .x-panel-header .x-tool.x-tool-toggle{-ms-flex-order:1;order:1;margin-left:auto}#modx-resource-main-left .x-panel-header{border-bottom:0;right:15px;position:absolute;z-index:20}#modx-resource-main-left .x-panel-header .x-panel-header-text{display:none}#modx-resource-main-left .x-panel-animated .x-panel-header,#modx-resource-main-left .x-panel-collapsed .x-panel-header{position:relative;padding-top:15px!important;width:100%;right:0}#modx-resource-main-left .x-panel-animated .x-panel-header .x-panel-header-text,#modx-resource-main-left .x-panel-collapsed .x-panel-header .x-panel-header-text{display:block}#modx-resource-tabs .x-panel-collapsed .x-panel-header{margin-bottom:0;padding:0;border-color:transparent}.x-small-editor .x-form-field{font-size:12px!important}.x-small-editor .x-form-num-field{text-align:left}.grid-row-inactive{color:#999!important}a.x-grid-link{color:#234368;text-decoration:underline}a.x-grid-link:focus,a.x-grid-link:hover{text-decoration:none}.x-editable-column{cursor:pointer}.x-editable-column:focus,.x-editable-column:hover{color:#234368}.x-editable-column:focus>div::after,.x-editable-column:hover>div::after{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free','Font Awesome 5 Brands';font-weight:900;content:"\f304";margin-left:.5em;color:#234368}.x-grid-buttons{text-align:center}.x-grid-buttons li{cursor:pointer;display:inline-block;font-size:1.1em;line-height:.7;margin-right:10px}.x-grid-buttons li:last-child{margin-right:0}.modx-page-header,.modx-page-header div{background-color:transparent!important}#modx-panel-welcome .modx-page-header,#modx-panel-welcome .modx-page-header div{margin:1rem}@media screen and (min-width:961px){#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{margin-top:1.25rem;box-sizing:border-box}#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel{margin:0}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{margin-top:1.25rem;font-weight:700;box-sizing:border-box;padding-left:18px;font-size:18px}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{width:100%!important}}#modx-content form.x-panel-body{background-color:transparent!important}@media screen and (max-width:960px){#modx-content{position:relative;width:auto!important;top:auto!important;left:auto!important}}#modx-content .modx_error{width:95%;margin:26px 0 0 15px}#modx-content .modx_error h2{margin:0 0 14px 0}#modx-content .modx_error .error_container{padding:10px;border:2px solid #cf1124;background:#f99;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#modx-content .modx_error .error_container ul{list-style:none;margin-top:6px;margin-left:0}#modx-content .modx_error .error_container ul li{margin-bottom:6px}#modx-content .modx_error .error_container ul li:last-child{margin-bottom:0}#modx-content .modx_error .error_container.multiple p:first-child{font-size:1.4em;font-weight:700}@media screen and (max-width:960px){#modx-content .x-panel-body{height:auto!important;max-height:100%!important;width:auto!important;max-width:100%!important}}#modx-mainpanel{height:100%;position:relative}.x-portal .x-panel-dd-spacer{margin-bottom:10px}.x-portlet{margin-bottom:10px}.x-portlet .x-panel-ml{padding-left:2px}.x-portlet .x-panel-mr{padding-right:2px}.x-portlet .x-panel-bl{padding-left:2px}.x-portlet .x-panel-br{padding-right:2px}.x-portlet .x-panel-body{background:#fff}.x-portlet .x-panel-mc{padding-top:2px}.x-portlet .x-panel-bc .x-panel-footer{padding-bottom:2px}.x-portlet .x-panel-nofooter .x-panel-bc{height:2px}.x-portal-space h2{border-bottom:1px solid #d4d4d4;margin:0 0 8px;padding:0 0 2px}.x-column-tree .x-panel-header{border-bottom-width:0;padding:3px 0 0 0}.x-column-tree .x-panel-header .x-panel-header-text{margin-left:3px}.x-column-tree .x-tree-node{zoom:1}.x-column-tree .x-tree-node-el{zoom:1}.x-column-tree .x-tree-selected{background:#d9e8fb}.x-column-tree .x-tree-node a{line-height:18px;vertical-align:middle}.x-column-tree .x-tree-node .x-tree-selected a span{background:0 0;color:#515151}.x-tree-col{float:left;overflow:hidden;padding:0 1px;zoom:1}.x-tree-col-text,.x-tree-hd-text{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;padding:3px 3px 3px 5px;text-overflow:ellipsis;white-space:nowrap}.x-tree-headers{cursor:default;margin-top:3px;zoom:1}.x-tree-hd{border-left:1px solid #eee;border-right:1px solid #d0d0d0;float:left;overflow:hidden}.ux-row-action-cell .x-grid3-cell-inner{padding:1px 0 0 0}.ext-ie .ux-row-action-item{width:16px}.ext-ie .ux-row-action-text{width:auto}.ux-row-action-item span{background:transparent url(../images/style/go-next.png) no-repeat scroll 1px 4px;display:inline!important;line-height:24px;margin:0 5px;padding:5px 5px 5px 22px;vertical-align:middle}.icon-uninstall span{background:url(../images/style/delete.png) no-repeat scroll 1px 4px transparent}.package-details span{background:url(../images/style/info.png) no-repeat scroll 1px 4px transparent}.package-download span{background:url(../images/style/download.png) no-repeat scroll 1px 4px transparent}.package-installed span{background:url(../images/style/accept.png) no-repeat scroll 1px 4px transparent}.ext-ie .ux-row-action-item span{width:auto}.x-grid-group-hd div{height:16px;position:relative}.ux-grow-action-item{background-position:0 50%!important;background-repeat:no-repeat;cursor:pointer;float:left;margin:0;min-width:16px;padding:0!important}.ext-ie .ux-grow-action-item{width:16px}.ux-action-right{float:right;margin:0 3px 0 2px;padding:0!important}.ux-grow-action-text{background:transparent none!important;float:left;margin:0!important;padding:0!important}.ux-row-action-item:hover{background:#dfdfdf;background:linear-gradient(center bottom,#dfdfdf 0,#fff 100%);border:1px solid #9caf78;color:#636f4c!important}.ux-row-action-item:active{background-color:#fff;background-image:none;border-color:#cfcfcf silver #aaa;box-shadow:0 0 3px #aaa inset;margin:2px 1px 0}.ux-row-action-item:active span{text-shadow:none}.ux-row-action-item{background:linear-gradient(center bottom,#dcdcdc 0,#fcfcfc 100%);background:url(/manager/templates/default/images/modx-theme/form/button-bg.png) repeat-x scroll 0 bottom #dcdcdc;border-collapse:separate;border-color:#cacaca silver #aaa;border-radius:3px;border-style:solid;border-width:1px;box-shadow:rgba(0,0,0,.2) 0 0 1px;color:#444;cursor:pointer;float:left;font-weight:700;margin:2px 1px 0;overflow:hidden;padding:3px;position:relative;text-shadow:0 1px 0 #fafafa}.x-tree-checkbox{background:url(../../../assets/ext3/resources/images/default/form/checkbox.gif) no-repeat 0 0;height:13px;margin:0 1px;vertical-align:middle;width:13px}.x-tree-checkbox-over .x-tree-checkbox{background-position:-13px 0}.x-tree-checkbox-down .x-tree-checkbox{background-position:-26px 0}.x-tree-node-disabled .x-tree-checkbox{background-position:-39px 0}.x-tree-node-checked{background-position:0 -13px}.x-tree-checkbox-over .x-tree-node-checked{background-position:-13px -13px}.x-tree-checkbox-down .x-tree-node-checked{background-position:-26px -13px}.x-tree-node-disabled .x-tree-node-checked{background-position:-39px -13px}.x-tree-node-grayed{background-position:0 -26px}.x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -26px}.x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -26px}.x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -26px}.x-tree-branch-unchecked .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-grayed{background-position:0 0}.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px 0}.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px 0}.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px 0}.x-tree-branch-checked .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-grayed{background-position:0 -13px}.x-tree-branch-checked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -13px}.x-tree-branch-checked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -13px}.x-tree-branch-checked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -13px}.x-rbtn button{-moz-outline:0 none;background-color:transparent;background-position:center;background-repeat:no-repeat;border:0 none;cursor:pointer;font-size:1px;height:16px;line-height:1px;margin:0;outline:0 none;padding:0;width:24px}.x-rbtn{table-layout:fixed}.x-rbtn td{background-image:url(../images/restyle/icons/rbtn.gif);background-repeat:no-repeat;border:0 none;height:21px;padding:0;vertical-align:middle;width:24px}.x-rbtn td.x-rbtn-first{background-position:0 0}.x-rbtn td.x-rbtn-item{background-position:0 -42px}.x-rbtn td.x-rbtn-last{background-position:right -21px}.x-rbtn td.x-rbtn-first-active{background-position:0 -63px}.x-rbtn td.x-rbtn-item-active{background-position:0 -105px}.x-rbtn td.x-rbtn-last-active{background-position:right -84px}.ux-up-item{background-color:#f0f0f0;background-image:url(../../../assets/modext/util/filetree/img/white_bg.png);background-repeat:no-repeat;cursor:default;height:17px;line-height:17px;margin-bottom:1px;position:relative}.ux-up-icon-file{float:left;height:16px;margin-right:4px;vertical-align:-3px;width:16px}.ux-up-indicator{background-color:#ff0;height:17px;opacity:.4;position:absolute;width:40px}.ux-up-icon-state{cursor:pointer;float:right;margin-right:2px;width:16px;z-index:-1}.ux-up-icon-queued{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/page_white_get.png)}.ux-up-icon-uploading{background-image:url(../../../../ext2/resources/images/default/grid/wait.gif)}.ux-up-icon-done{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/accept.png)}.ux-up-icon-failed{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/error.png)}.ux-up-icon-stopped{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/stop.png)}.ux-up-text{float:left}.ux-ftm-nodename{color:#515151;cursor:default!important;font-weight:700}.ux-icon-combo-icon{background-position:0 50%;background-repeat:no-repeat;height:14px;width:18px}.ux-icon-combo-input{padding-left:25px}.x-form-field-wrap .ux-icon-combo-icon{left:5px;top:3px}.ux-icon-combo-item{background-position:3px 50%!important;background-repeat:no-repeat!important;padding-left:24px!important}.modx-status-msg{background:#6cb24a;border-radius:3px;box-sizing:border-box;bottom:20px;color:#fff;max-width:360px;padding:15px 15px 15px 65px;position:fixed;right:15px;width:25%;z-index:20000}@media screen and (max-width:960px){.modx-status-msg{max-width:100%}}.modx-status-msg:before{position:relative}.modx-status-msg:after{background:#fff;border-radius:50%;color:#6cb24a;content:"\f00c";display:inline-block;font-size:16px;height:38px;left:15px;line-height:36px;margin-right:13px;position:absolute;text-align:center;top:15px;vertical-align:middle;width:38px}.modx-status-msg h3,.modx-status-msg span{font-size:14px}.modx-status-msg h3{color:#fff;margin:0}.modx-status-msg .has-position-center-center{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%)}.modx-status-msg .has-position-center-top{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:15px}.modx-status-msg .has-position-right-top{bottom:auto;left:auto;right:15px;top:15px}@media screen and (max-width:960px){.modx-status-msg,.modx-status-msg .has-position-center-center,.modx-status-msg .has-position-center-top,.modx-status-msg .has-position-right-top{border-radius:0;top:auto;bottom:0;left:0;right:0;width:100%}}iframe[classname=x-hidden]{visibility:hidden}.ext-ux-uploaddialog-addbtn{background:url(../images/restyle/fileup/file-add.gif) no-repeat left center!important}.ext-ux-uploaddialog-removebtn{background:url(../images/restyle/fileup/file-remove.gif) no-repeat left center!important}.ext-ux-uploaddialog-resetbtn{background:url(../images/restyle/fileup/reset.gif) no-repeat left center!important}.ext-ux-uploaddialog-uploadstartbtn{background:url(../images/restyle/fileup/upload-start.gif) no-repeat left center!important}.ext-ux-uploaddialog-uploadstopbtn{background:url(../images/restyle/fileup/upload-stop.gif) no-repeat left center!important}.ext-ux-uploaddialog-indicator-stoped{background:url(../images/restyle/fileup/done.gif) no-repeat center center;height:16px;width:16px}.ext-ux-uploaddialog-indicator-processing{background:url(../images/restyle/fileup/loading.gif) no-repeat center center;height:16px;width:16px}.ext-ux-uploaddialog-state{background-position:center center;background-repeat:no-repeat;text-align:center}.ext-ux-uploaddialog-state-0{background-image:url(../images/restyle/fileup/uncheck.gif)}.ext-ux-uploaddialog-state-1{background-image:url(../images/restyle/fileup/check.gif)}.ext-ux-uploaddialog-state-2{background-image:url(../images/restyle/fileup/failed.gif)}.ext-ux-uploaddialog-state-3{background-image:url(../images/restyle/fileup/file-uploading.gif)}.tq-treegrid .tq-treegrid-col{border:none}.tq-treegrid .tq-treegrid-icons{float:left}.tq-treegrid .x-tree-node-el{line-height:13px;padding:1px 3px 1px 5px}.tq-treegrid .tq-treegrid-static .x-tree-ec-icon{display:none}.tq-treegrid .tq-treegrid-static .x-tree-node-el{cursor:default}.modx-tree-load-msg{color:#000;font-size:.9em;line-height:1;padding:3px;white-space:pre-line}#modx-grid-policy-permissions .x-grid3-cell-inner,#modx-grid-policy-permissions .x-grid3-hd-inner,#modx-grid-template-permissions .x-grid3-cell-inner,#modx-grid-template-permissions .x-grid3-hd-inner{white-space:normal}.container{margin:20px 15px 20px}.container,.x-plain-body,.x-plain-bwrap{overflow:visible}.shadowbox,.x-form-label-left{border-radius:3px}.shadowbox .x-form-label-left,.x-form-label-left .x-form-label-left,.x-tab-panel-bwrap .shadowbox,.x-tab-panel-bwrap .x-form-label-left{border-radius:0;box-shadow:none}.x-window .shadowbox,.x-window .x-form-label-left{border-radius:0;box-shadow:none}.panel-desc{border-bottom:1px solid #f0f0f0;border-radius:0;color:#53595f;line-height:1.5;padding:15px!important}.x-window .panel-desc{margin-top:0;margin-bottom:15px}.panel-desc .x-panel-bwrap{background-color:transparent!important}.with-title .panel-desc{margin:0}.panel-desc p{padding:0}.main-wrapper{background-color:#fff;padding:15px 15px 15px 15px}.with-title .main-wrapper{padding:0 15px 10px 15px}.left-col{padding-right:15px}.right-col{padding-left:15px}.modx-page-header{-ms-flex-order:1;order:1;font:normal 20px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;margin:0;padding-left:18px}#modx-panel-welcome .modx-page-header{padding-left:0}@media screen and (max-width:960px){.modx-page-header{width:100%;text-align:center;font-size:2em}}.modx-header-breadcrumbs .breadcrumbs{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline}.modx-header-breadcrumbs .breadcrumbs h2{-ms-flex-order:1;order:1;font:normal 20px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;margin:0!important;padding-left:0}@media screen and (max-width:960px){.modx-header-breadcrumbs .breadcrumbs h2{width:100%;text-align:center;font-size:2em}}.modx-header-breadcrumbs ul{-ms-flex-order:0;order:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}.modx-header-breadcrumbs ul li{font:normal 18px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f}.modx-header-breadcrumbs ul li a{font:normal 18px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;text-decoration:none}.modx-header-breadcrumbs ul li a.menu_hidden{font-style:italic}.modx-header-breadcrumbs ul li a.menu_hidden:hover{color:#162a42}.modx-header-breadcrumbs ul li a.not_published{color:#b3b2b2!important}.modx-header-breadcrumbs ul li a.not_published:hover{color:#162a42}.modx-header-breadcrumbs ul li a.deleted{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.modx-header-breadcrumbs ul li a.deleted:hover{color:#162a42}.modx-header-breadcrumbs ul li:after{content:"\f054";padding:0 10px;color:#999;font-size:12px}#modx-abtn-menu-list .x-menu-item{padding:10px 20px}#modx-abtn-menu-list .x-menu-item .x-menu-item-text{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:justify;justify-content:space-between}#modx-abtn-menu-list .x-menu-item .x-menu-item-text .icon{text-align:center;margin-left:10px}#modx-abtn-menu-list #modx-abtn-delete{color:#cf1124}#modx-abtn-menu-list #modx-abtn-delete:hover{color:#cf1124}#modx-abtn-menu-list #modx-abtn-undelete{color:#6cb24a}#modx-abtn-menu-list #modx-abtn-undelete:hover{color:#6cb24a}#modx-resource-tabs .x-tab-panel-bwrap{box-shadow:none}#modx-resource-tabs .x-tab-panel-body,#modx-resource-tabs .x-tab-panel-bwrap{overflow:visible!important}#modx-resource-settings{background:#f1f1f1}#modx-resource-settings #modx-resource-main-left{padding:15px;background:#fff;border-top-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;position:relative}#modx-resource-settings .x-panel-collapsed{min-height:18px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel{padding:15px;background:#fff;border-radius:3px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel:not(:last-child){margin-bottom:15px}#modx-resource-settings .main-wrapper{padding:0;background:0 0}#modx-resource-settings .x-datetime-wrap table{width:100%}#modx-resource-settings .x-datetime-wrap table td{width:50%!important;max-width:50%!important}#modx-resource-settings .x-datetime-wrap table td input{width:calc(100% - 30px)}#modx-resource-settings .x-datetime-wrap table td:first-child{padding-right:5px!important}#modx-resource-settings .x-datetime-wrap table td:last-child{padding-left:5px!important}#modx-resource-settings .x-datetime-wrap table .x-form-field-trigger-wrap{width:100%!important}.tvs-wrapper{padding:0}#modx-resource-tvs-div{border-top-width:0;visibility:hidden}.modx-permissions-list{color:#777;font-size:12px}.modx-permissions-list-textarea{background-color:transparent!important;border:0!important}.x-selectable,.x-selectable *{-khtml-user-select:all!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}#ux-lightbox{left:0;line-height:0;position:absolute;text-align:center;width:100%;z-index:15000}#ux-lightbox img{height:auto;width:auto}#ux-lightbox a img{border:medium none}#ux-lightbox-outerImageContainer{background-color:#fff;height:250px;margin:0 auto;position:relative;width:250px}#ux-lightbox-imageContainer{padding:10px}#ux-lightbox-loading{background:url(../images/style/loading.gif) no-repeat scroll center 15% transparent;height:25%;left:0;line-height:0;position:absolute;text-align:center;top:40%;width:100%}#ux-lightbox-hoverNav{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}#ux-lightbox-hoverNav a{outline:medium none}#ux-lightbox-imageContainer>#ux-lightbox-hoverNav{left:0}#ux-lightbox-navNext,#ux-lightbox-navPrev{display:block;height:100%;width:49%}#ux-lightbox-navPrev{float:left;left:0}#ux-lightbox-navPrev:hover,#ux-lightbox-navPrev:visited:hover{background:transparent url(images/lb-prev.png) no-repeat scroll left 33%}#ux-lightbox-navNext{float:right;right:0}#ux-lightbox-navNext:hover,#ux-lightbox-navNext:visited:hover{background:transparent url(images/lb-next.png) no-repeat scroll right 33%}#ux-lightbox-outerDataContainer{margin:0 auto;width:100%}#ux-lightbox-dataContainer{background-color:#fff;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:10px;overflow:auto}#ux-lightbox-data{color:#666;padding:0 10px}#ux-lightbox-data #ux-lightbox-details{float:left;text-align:left;width:80%}#ux-lightbox-data #ux-lightbox-caption{font-weight:700}#ux-lightbox-data #ux-lightbox-imageNumber{clear:left;display:block;padding-bottom:1em}#ux-lightbox-data #ux-lightbox-navClose{background:transparent url(../images/style/close.png) no-repeat scroll 0 0;float:right;height:16px;outline:medium none;padding-bottom:.7em;width:16px}#ux-lightbox-overlay,#ux-lightbox-shim{background-color:#515151;border:0 none;height:500px;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:14999}#ux-lightbox-shim{background-color:transparent;z-index:89}.x-panel-body-noheader .x-grid3-row{position:relative}.x-grid3-col-main{padding:10px 5px 35px}.x-grid3-cell-inner .x-grid3-col-main h3{color:#555;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;line-height:1;margin:0 0 5px 0}.package-installed{color:#515151;opacity:.5}#modx-grid-package .green{text-align:center}#modx-grid-package .green a{color:#cf1124!important}#modx-grid-package .red{color:#6cb24a!important;text-align:center}.grid-with-buttons .x-grid3-row-expanded .x-grid3-row-body{margin:-45px 2px 0 -20px;padding:18px 25px 40px}.home-panel ol{border-top:1px solid #cacaca}.home-panel ol li{border-bottom:1px solid #e0e0e0}.home-panel ol li:first-child{border-top-color:0 none}.home-panel ol li:last-child{border-bottom:0 none}.home-panel ol li button{background-color:transparent;border:0 none;color:#53595f;cursor:pointer;display:block;font-size:15px;font-weight:700;padding:12px 20px 12px 6px;position:relative;text-decoration:none}.home-panel ol li:hover button{color:#234368}.home-panel ol li:hover button:before{content:"\f002";font-size:14px;margin-top:-7px;opacity:.6;position:absolute;top:50%;right:0;text-align:center;width:20px;transition:opacity .25s}.home-panel ol li .highlighted{color:#909090;float:right;font-size:10px;padding:13px 10px 0}.home-panel ol li button .ct{color:#aaa;margin-right:10px}.home-panel .one_half{overflow:hidden}.home-panel .desc-wrapper{margin-top:38px}.home-panel .text-wrapper{font-style:normal;max-height:none}.home-panel .provider_name{background-color:#9bb3bf;line-height:1.8}.home-panel .pnl_instructions{margin:20px 0}.home-panel .stats{clear:both;display:inline-block;margin-top:15px}.home-panel .stats p{color:#777;font-size:12px;font-style:italic;line-height:1.5}.pbr-provider-box{float:left;margin-top:10px;width:250px}.pbr-provider-home{padding:10px}.pbr-repository-view{padding:10px}.pbr-tag-view{padding:10px}.pbr-details-right{float:right!important;text-align:right!important}.pbr-thumb-downloaded{opacity:.5}.one_half{float:left;margin-right:3%;position:relative;width:48%}.last{clear:right;margin-right:0!important}.package-readme{padding:8px 11px 0}#modx-package-browser-home{margin-top:5px;min-height:560px}.empty-text-wrapper{color:#888;font-weight:700;line-height:1.4;padding:12px}.aside-details{background-color:transparent;border:1px solid #e4e4e4;border-radius:3px;margin-right:0}.aside-details .selected h5{color:#53595f;font-size:14px;margin:10px 0}.aside-details .selected img{border-radius:3px;border:1px solid #e4e4e4;height:80px;width:90px}.aside-details .item{margin-bottom:25px}.aside-details .item li,.aside-details .item p{color:#888;line-height:1.4}.aside-details .item a{color:#53595f;font-style:italic}.aside-details h4{color:#53595f;font-size:14px;margin:10px 0;text-transform:uppercase}.aside-details .aside-details h4{font-size:12px;margin-top:0}.aside-details .selected{border-bottom:1px solid #e4e4e4;color:#000;padding:15px;text-align:center}.aside-details .description,.aside-details .instructions{background-color:#fbfbfb;color:#53595f;font-size:12px;line-height:1.2;padding:15px}.aside-details .infos{padding:15px;font-size:12px;line-height:1.2;color:#53595f}.aside-details .infos ul li{font-size:12px}.aside-details .infos ul li .infoname{color:#999;font-weight:700;width:50%}.aside-details .infos ul li .infovalue{max-width:50%;padding:0 8px;word-wrap:break-word}.aside-details .infos ul li span{display:inline-block;padding:0}.thumb-wrapper{background-color:#f5f5f5;border-radius:3px;border:1px solid #ccc;cursor:pointer;float:left;margin:0 15px 15px 0;overflow:hidden;padding:0 0 12px;position:relative;width:250px;box-sizing:border-box}.thumb-wrapper *{box-sizing:border-box}.thumb-wrapper .thumb{background-color:#fff;border-bottom:1px solid #ccc;height:170px;margin:0 auto;width:100%;text-align:center;position:relative}.thumb-wrapper .thumb img{max-height:100%;max-width:100%}.thumb-wrapper .thumb .no-preview{color:#888;display:inline-block;font-size:9px;font-weight:700;padding:31px 15px;text-align:center;text-transform:uppercase}.thumb-wrapper span.downloaded,.thumb-wrapper span.featured{background-color:#6cb24a;color:#fff;font-weight:700;padding:5px 0;position:absolute;text-align:center;text-shadow:none;top:68px;width:100%}.thumb-wrapper span.featured{background-color:#234368;color:#fff;top:initial;bottom:0}.thumb-wrapper span{display:block;overflow:hidden;text-align:left;text-shadow:0 1px 0 #fff;margin:0;text-overflow:ellipsis;white-space:nowrap}.thumb-wrapper .name{color:#53595f;font-size:12px;font-weight:700;float:left;padding:12px 8px 12px 12px;width:55%}.thumb-wrapper .downloads{color:#999;font-size:9px;text-transform:uppercase;float:right;text-align:right;padding:8px 12px 8px 8px;width:45%}.thumb-wrapper .thumb-description{clear:both;padding:0 12px;font-size:12px;overflow:hidden;height:50px}.thumb-wrapper .thumb-footer{color:#999;font-size:9px;text-transform:uppercase;padding:8px 12px 0;text-align:center}.thumb-wrapper.selected{background-color:#fff;padding:0 0 12px;border-color:#234368}.thumb-wrapper.selected img{border:0 none}.pbr-thumb{background:#dfdfdf;height:80px;padding:3px;width:100px}.pbr-thumb img{height:80px;width:100px}.x-grid3-hd-info-col,.x-grid3-hd-meta-col,.x-grid3-hd-text-col{text-align:center}.x-grid3-col-text-col{font-size:11px;text-align:center}.x-grid3-col-info-col,.x-grid3-col-meta-col{font-size:11px;font-weight:700;text-align:center}.x-grid3-col-meta-col{color:#53595f}.x-grid3-col-info-col{color:#6cb24a}.not-installed .x-grid3-col-info-col{color:#cf1124}.inline-button{-webkit-box-align:center;display:inline;margin:0 auto;padding:8px;text-align:center}.meta-wrapper{color:grey;max-height:400px;overflow:auto;padding:15px;word-wrap:break-word}.meta-wrapper ul{list-style:disc inside;padding-left:15px}.meta-wrapper h1{font-size:1.2em}.meta-wrapper h2{font-size:1.15em}.meta-wrapper h3{font-size:1.1em}.meta-wrapper h4{font-size:1.05em}.meta-wrapper h5{font-size:1em}.meta-wrapper h6{font-size:.95em}.window-no-padding .x-panel-mc{padding:0!important}.window-no-padding .x-panel-ml{padding:0!important}.window-no-padding .x-panel-mr{padding:0!important}.window-no-padding .x-tab-panel-noborder{margin:0!important}.upload-error{color:#cf1124}.upload-success{color:#6cb24a}.upload-status-text{white-space:normal}.upload-thumb{float:right}.auto-width{width:auto!important}.auto-height{height:auto!important}.x-datetime-inline-editor .x-datetime-wrap{margin-top:0!important} +/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-large,.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}#modx-abtn-menu-list .x-menu-item .x-menu-item-text .icon,.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin,.modx-manager-search-results .loading-indicator:before{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-remove:before{content:"\f00d"}.fa.fa-close:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before{content:"\f01e"}.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before{content:"\f0c9"}.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-dashboard:before{content:"\f3fd"}.fa.fa-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-mobile-phone:before{content:"\f3cd"}.fa.fa-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before{content:"\f153"}.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-usd:before{content:"\f155"}.fa.fa-dollar:before{content:"\f155"}.fa.fa-inr:before{content:"\f156"}.fa.fa-rupee:before{content:"\f156"}.fa.fa-jpy:before{content:"\f157"}.fa.fa-cny:before{content:"\f157"}.fa.fa-rmb:before{content:"\f157"}.fa.fa-yen:before{content:"\f157"}.fa.fa-rub:before{content:"\f158"}.fa.fa-ruble:before{content:"\f158"}.fa.fa-rouble:before{content:"\f158"}.fa.fa-krw:before{content:"\f159"}.fa.fa-won:before{content:"\f159"}.fa.fa-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-android{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-try:before{content:"\f195"}.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-institution:before{content:"\f19c"}.fa.fa-bank:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-git{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before{content:"\f20b"}.fa.fa-shekel:before{content:"\f20b"}.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-battery-4:before{content:"\f240"}.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-clone{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before{content:"\f2a4"}.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-thermometer-4:before{content:"\f2c7"}.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before{content:"\f2cd"}.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cab:before{content:"\f1ba"}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fab,.fad,.fal,.far,.fas,.icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.icon-large,.icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.icon-xs{font-size:.75em}.icon-sm{font-size:.875em}.icon-1x{font-size:1em}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-6x{font-size:6em}.icon-7x{font-size:7em}.icon-8x{font-size:8em}.icon-9x{font-size:9em}.icon-10x{font-size:10em}.icon-fw{text-align:center;width:1.25em}.icon-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.icon-ul>li{position:relative}.icon-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.icon-pull-left{float:left}.icon-pull-right{float:right}.fab.icon-pull-left,.fal.icon-pull-left,.far.icon-pull-left,.fas.icon-pull-left,.icon.icon-pull-left{margin-right:.3em}.fab.icon-pull-right,.fal.icon-pull-right,.far.icon-pull-right,.fas.icon-pull-right,.icon.icon-pull-right{margin-left:.3em}.icon-spin{animation:fa-spin 2s infinite linear}.icon-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.icon-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.icon-flip-both,.icon-flip-horizontal.icon-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .icon-flip-both,:root .icon-flip-horizontal,:root .icon-flip-vertical,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-rotate-90{filter:none}.icon-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.icon-stack-1x,.icon-stack-2x{left:0;position:absolute;text-align:center;width:100%}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-500px:before{content:"\f26e"}.icon-accessible-icon:before{content:"\f368"}.icon-accusoft:before{content:"\f369"}.icon-acquisitions-incorporated:before{content:"\f6af"}.icon-ad:before{content:"\f641"}.icon-address-book:before{content:"\f2b9"}.icon-address-card:before{content:"\f2bb"}.icon-adjust:before{content:"\f042"}.icon-adn:before{content:"\f170"}.icon-adversal:before{content:"\f36a"}.icon-affiliatetheme:before{content:"\f36b"}.icon-air-freshener:before{content:"\f5d0"}.icon-airbnb:before{content:"\f834"}.icon-algolia:before{content:"\f36c"}.icon-align-center:before{content:"\f037"}.icon-align-justify:before{content:"\f039"}.icon-align-left:before{content:"\f036"}.icon-align-right:before{content:"\f038"}.icon-alipay:before{content:"\f642"}.icon-allergies:before{content:"\f461"}.icon-amazon:before{content:"\f270"}.icon-amazon-pay:before{content:"\f42c"}.icon-ambulance:before{content:"\f0f9"}.icon-american-sign-language-interpreting:before{content:"\f2a3"}.icon-amilia:before{content:"\f36d"}.icon-anchor:before{content:"\f13d"}.icon-android:before{content:"\f17b"}.icon-angellist:before{content:"\f209"}.icon-angle-double-down:before{content:"\f103"}.icon-angle-double-left:before{content:"\f100"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-double-up:before{content:"\f102"}.icon-angle-down:before{content:"\f107"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angry:before{content:"\f556"}.icon-angrycreative:before{content:"\f36e"}.icon-angular:before{content:"\f420"}.icon-ankh:before{content:"\f644"}.icon-app-store:before{content:"\f36f"}.icon-app-store-ios:before{content:"\f370"}.icon-apper:before{content:"\f371"}.icon-apple:before{content:"\f179"}.icon-apple-alt:before{content:"\f5d1"}.icon-apple-pay:before{content:"\f415"}.icon-archive:before{content:"\f187"}.icon-archway:before{content:"\f557"}.icon-arrow-alt-circle-down:before{content:"\f358"}.icon-arrow-alt-circle-left:before{content:"\f359"}.icon-arrow-alt-circle-right:before{content:"\f35a"}.icon-arrow-alt-circle-up:before{content:"\f35b"}.icon-arrow-circle-down:before{content:"\f0ab"}.icon-arrow-circle-left:before{content:"\f0a8"}.icon-arrow-circle-right:before{content:"\f0a9"}.icon-arrow-circle-up:before{content:"\f0aa"}.icon-arrow-down:before{content:"\f063"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrows-alt:before{content:"\f0b2"}.icon-arrows-alt-h:before{content:"\f337"}.icon-arrows-alt-v:before{content:"\f338"}.icon-artstation:before{content:"\f77a"}.icon-assistive-listening-systems:before{content:"\f2a2"}.icon-asterisk:before{content:"\f069"}.icon-asymmetrik:before{content:"\f372"}.icon-at:before{content:"\f1fa"}.icon-atlas:before{content:"\f558"}.icon-atlassian:before{content:"\f77b"}.icon-atom:before{content:"\f5d2"}.icon-audible:before{content:"\f373"}.icon-audio-description:before{content:"\f29e"}.icon-autoprefixer:before{content:"\f41c"}.icon-avianex:before{content:"\f374"}.icon-aviato:before{content:"\f421"}.icon-award:before{content:"\f559"}.icon-aws:before{content:"\f375"}.icon-baby:before{content:"\f77c"}.icon-baby-carriage:before{content:"\f77d"}.icon-backspace:before{content:"\f55a"}.icon-backward:before{content:"\f04a"}.icon-bacon:before{content:"\f7e5"}.icon-bacteria:before{content:"\e059"}.icon-bacterium:before{content:"\e05a"}.icon-bahai:before{content:"\f666"}.icon-balance-scale:before{content:"\f24e"}.icon-balance-scale-left:before{content:"\f515"}.icon-balance-scale-right:before{content:"\f516"}.icon-ban:before{content:"\f05e"}.icon-band-aid:before{content:"\f462"}.icon-bandcamp:before{content:"\f2d5"}.icon-barcode:before{content:"\f02a"}.icon-bars:before{content:"\f0c9"}.icon-baseball-ball:before{content:"\f433"}.icon-basketball-ball:before{content:"\f434"}.icon-bath:before{content:"\f2cd"}.icon-battery-empty:before{content:"\f244"}.icon-battery-full:before{content:"\f240"}.icon-battery-half:before{content:"\f242"}.icon-battery-quarter:before{content:"\f243"}.icon-battery-three-quarters:before{content:"\f241"}.icon-battle-net:before{content:"\f835"}.icon-bed:before{content:"\f236"}.icon-beer:before{content:"\f0fc"}.icon-behance:before{content:"\f1b4"}.icon-behance-square:before{content:"\f1b5"}.icon-bell:before{content:"\f0f3"}.icon-bell-slash:before{content:"\f1f6"}.icon-bezier-curve:before{content:"\f55b"}.icon-bible:before{content:"\f647"}.icon-bicycle:before{content:"\f206"}.icon-biking:before{content:"\f84a"}.icon-bimobject:before{content:"\f378"}.icon-binoculars:before{content:"\f1e5"}.icon-biohazard:before{content:"\f780"}.icon-birthday-cake:before{content:"\f1fd"}.icon-bitbucket:before{content:"\f171"}.icon-bitcoin:before{content:"\f379"}.icon-bity:before{content:"\f37a"}.icon-black-tie:before{content:"\f27e"}.icon-blackberry:before{content:"\f37b"}.icon-blender:before{content:"\f517"}.icon-blender-phone:before{content:"\f6b6"}.icon-blind:before{content:"\f29d"}.icon-blog:before{content:"\f781"}.icon-blogger:before{content:"\f37c"}.icon-blogger-b:before{content:"\f37d"}.icon-bluetooth:before{content:"\f293"}.icon-bluetooth-b:before{content:"\f294"}.icon-bold:before{content:"\f032"}.icon-bolt:before{content:"\f0e7"}.icon-bomb:before{content:"\f1e2"}.icon-bone:before{content:"\f5d7"}.icon-bong:before{content:"\f55c"}.icon-book:before{content:"\f02d"}.icon-book-dead:before{content:"\f6b7"}.icon-book-medical:before{content:"\f7e6"}.icon-book-open:before{content:"\f518"}.icon-book-reader:before{content:"\f5da"}.icon-bookmark:before{content:"\f02e"}.icon-bootstrap:before{content:"\f836"}.icon-border-all:before{content:"\f84c"}.icon-border-none:before{content:"\f850"}.icon-border-style:before{content:"\f853"}.icon-bowling-ball:before{content:"\f436"}.icon-box:before{content:"\f466"}.icon-box-open:before{content:"\f49e"}.icon-box-tissue:before{content:"\e05b"}.icon-boxes:before{content:"\f468"}.icon-braille:before{content:"\f2a1"}.icon-brain:before{content:"\f5dc"}.icon-bread-slice:before{content:"\f7ec"}.icon-briefcase:before{content:"\f0b1"}.icon-briefcase-medical:before{content:"\f469"}.icon-broadcast-tower:before{content:"\f519"}.icon-broom:before{content:"\f51a"}.icon-brush:before{content:"\f55d"}.icon-btc:before{content:"\f15a"}.icon-buffer:before{content:"\f837"}.icon-bug:before{content:"\f188"}.icon-building:before{content:"\f1ad"}.icon-bullhorn:before{content:"\f0a1"}.icon-bullseye:before{content:"\f140"}.icon-burn:before{content:"\f46a"}.icon-buromobelexperte:before{content:"\f37f"}.icon-bus:before{content:"\f207"}.icon-bus-alt:before{content:"\f55e"}.icon-business-time:before{content:"\f64a"}.icon-buy-n-large:before{content:"\f8a6"}.icon-buysellads:before{content:"\f20d"}.icon-calculator:before{content:"\f1ec"}.icon-calendar:before{content:"\f133"}.icon-calendar-alt:before{content:"\f073"}.icon-calendar-check:before{content:"\f274"}.icon-calendar-day:before{content:"\f783"}.icon-calendar-minus:before{content:"\f272"}.icon-calendar-plus:before{content:"\f271"}.icon-calendar-times:before{content:"\f273"}.icon-calendar-week:before{content:"\f784"}.icon-camera:before{content:"\f030"}.icon-camera-retro:before{content:"\f083"}.icon-campground:before{content:"\f6bb"}.icon-canadian-maple-leaf:before{content:"\f785"}.icon-candy-cane:before{content:"\f786"}.icon-cannabis:before{content:"\f55f"}.icon-capsules:before{content:"\f46b"}.icon-car:before{content:"\f1b9"}.icon-car-alt:before{content:"\f5de"}.icon-car-battery:before{content:"\f5df"}.icon-car-crash:before{content:"\f5e1"}.icon-car-side:before{content:"\f5e4"}.icon-caravan:before{content:"\f8ff"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-caret-square-down:before{content:"\f150"}.icon-caret-square-left:before{content:"\f191"}.icon-caret-square-right:before{content:"\f152"}.icon-caret-square-up:before{content:"\f151"}.icon-caret-up:before{content:"\f0d8"}.icon-carrot:before{content:"\f787"}.icon-cart-arrow-down:before{content:"\f218"}.icon-cart-plus:before{content:"\f217"}.icon-cash-register:before{content:"\f788"}.icon-cat:before{content:"\f6be"}.icon-cc-amazon-pay:before{content:"\f42d"}.icon-cc-amex:before{content:"\f1f3"}.icon-cc-apple-pay:before{content:"\f416"}.icon-cc-diners-club:before{content:"\f24c"}.icon-cc-discover:before{content:"\f1f2"}.icon-cc-jcb:before{content:"\f24b"}.icon-cc-mastercard:before{content:"\f1f1"}.icon-cc-paypal:before{content:"\f1f4"}.icon-cc-stripe:before{content:"\f1f5"}.icon-cc-visa:before{content:"\f1f0"}.icon-centercode:before{content:"\f380"}.icon-centos:before{content:"\f789"}.icon-certificate:before{content:"\f0a3"}.icon-chair:before{content:"\f6c0"}.icon-chalkboard:before{content:"\f51b"}.icon-chalkboard-teacher:before{content:"\f51c"}.icon-charging-station:before{content:"\f5e7"}.icon-chart-area:before{content:"\f1fe"}.icon-chart-bar:before{content:"\f080"}.icon-chart-line:before{content:"\f201"}.icon-chart-pie:before{content:"\f200"}.icon-check:before{content:"\f00c"}.icon-check-circle:before{content:"\f058"}.icon-check-double:before{content:"\f560"}.icon-check-square:before{content:"\f14a"}.icon-cheese:before{content:"\f7ef"}.icon-chess:before{content:"\f439"}.icon-chess-bishop:before{content:"\f43a"}.icon-chess-board:before{content:"\f43c"}.icon-chess-king:before{content:"\f43f"}.icon-chess-knight:before{content:"\f441"}.icon-chess-pawn:before{content:"\f443"}.icon-chess-queen:before{content:"\f445"}.icon-chess-rook:before{content:"\f447"}.icon-chevron-circle-down:before{content:"\f13a"}.icon-chevron-circle-left:before{content:"\f137"}.icon-chevron-circle-right:before{content:"\f138"}.icon-chevron-circle-up:before{content:"\f139"}.icon-chevron-down:before{content:"\f078"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-chevron-up:before{content:"\f077"}.icon-child:before{content:"\f1ae"}.icon-chrome:before{content:"\f268"}.icon-chromecast:before{content:"\f838"}.icon-church:before{content:"\f51d"}.icon-circle:before{content:"\f111"}.icon-circle-notch:before{content:"\f1ce"}.icon-city:before{content:"\f64f"}.icon-clinic-medical:before{content:"\f7f2"}.icon-clipboard:before{content:"\f328"}.icon-clipboard-check:before{content:"\f46c"}.icon-clipboard-list:before{content:"\f46d"}.icon-clock:before{content:"\f017"}.icon-clone:before{content:"\f24d"}.icon-closed-captioning:before{content:"\f20a"}.icon-cloud:before{content:"\f0c2"}.icon-cloud-download-alt:before{content:"\f381"}.icon-cloud-meatball:before{content:"\f73b"}.icon-cloud-moon:before{content:"\f6c3"}.icon-cloud-moon-rain:before{content:"\f73c"}.icon-cloud-rain:before{content:"\f73d"}.icon-cloud-showers-heavy:before{content:"\f740"}.icon-cloud-sun:before{content:"\f6c4"}.icon-cloud-sun-rain:before{content:"\f743"}.icon-cloud-upload-alt:before{content:"\f382"}.icon-cloudflare:before{content:"\e07d"}.icon-cloudscale:before{content:"\f383"}.icon-cloudsmith:before{content:"\f384"}.icon-cloudversify:before{content:"\f385"}.icon-cocktail:before{content:"\f561"}.icon-code:before{content:"\f121"}.icon-code-branch:before{content:"\f126"}.icon-codepen:before{content:"\f1cb"}.icon-codiepie:before{content:"\f284"}.icon-coffee:before{content:"\f0f4"}.icon-cog:before{content:"\f013"}.icon-cogs:before{content:"\f085"}.icon-coins:before{content:"\f51e"}.icon-columns:before{content:"\f0db"}.icon-comment:before{content:"\f075"}.icon-comment-alt:before{content:"\f27a"}.icon-comment-dollar:before{content:"\f651"}.icon-comment-dots:before{content:"\f4ad"}.icon-comment-medical:before{content:"\f7f5"}.icon-comment-slash:before{content:"\f4b3"}.icon-comments:before{content:"\f086"}.icon-comments-dollar:before{content:"\f653"}.icon-compact-disc:before{content:"\f51f"}.icon-compass:before{content:"\f14e"}.icon-compress:before{content:"\f066"}.icon-compress-alt:before{content:"\f422"}.icon-compress-arrows-alt:before{content:"\f78c"}.icon-concierge-bell:before{content:"\f562"}.icon-confluence:before{content:"\f78d"}.icon-connectdevelop:before{content:"\f20e"}.icon-contao:before{content:"\f26d"}.icon-cookie:before{content:"\f563"}.icon-cookie-bite:before{content:"\f564"}.icon-copy:before{content:"\f0c5"}.icon-copyright:before{content:"\f1f9"}.icon-cotton-bureau:before{content:"\f89e"}.icon-couch:before{content:"\f4b8"}.icon-cpanel:before{content:"\f388"}.icon-creative-commons:before{content:"\f25e"}.icon-creative-commons-by:before{content:"\f4e7"}.icon-creative-commons-nc:before{content:"\f4e8"}.icon-creative-commons-nc-eu:before{content:"\f4e9"}.icon-creative-commons-nc-jp:before{content:"\f4ea"}.icon-creative-commons-nd:before{content:"\f4eb"}.icon-creative-commons-pd:before{content:"\f4ec"}.icon-creative-commons-pd-alt:before{content:"\f4ed"}.icon-creative-commons-remix:before{content:"\f4ee"}.icon-creative-commons-sa:before{content:"\f4ef"}.icon-creative-commons-sampling:before{content:"\f4f0"}.icon-creative-commons-sampling-plus:before{content:"\f4f1"}.icon-creative-commons-share:before{content:"\f4f2"}.icon-creative-commons-zero:before{content:"\f4f3"}.icon-credit-card:before{content:"\f09d"}.icon-critical-role:before{content:"\f6c9"}.icon-crop:before{content:"\f125"}.icon-crop-alt:before{content:"\f565"}.icon-cross:before{content:"\f654"}.icon-crosshairs:before{content:"\f05b"}.icon-crow:before{content:"\f520"}.icon-crown:before{content:"\f521"}.icon-crutch:before{content:"\f7f7"}.icon-css3:before{content:"\f13c"}.icon-css3-alt:before{content:"\f38b"}.icon-cube:before{content:"\f1b2"}.icon-cubes:before{content:"\f1b3"}.icon-cut:before{content:"\f0c4"}.icon-cuttlefish:before{content:"\f38c"}.icon-d-and-d:before{content:"\f38d"}.icon-d-and-d-beyond:before{content:"\f6ca"}.icon-dailymotion:before{content:"\e052"}.icon-dashcube:before{content:"\f210"}.icon-database:before{content:"\f1c0"}.icon-deaf:before{content:"\f2a4"}.icon-deezer:before{content:"\e077"}.icon-delicious:before{content:"\f1a5"}.icon-democrat:before{content:"\f747"}.icon-deploydog:before{content:"\f38e"}.icon-deskpro:before{content:"\f38f"}.icon-desktop:before{content:"\f108"}.icon-dev:before{content:"\f6cc"}.icon-deviantart:before{content:"\f1bd"}.icon-dharmachakra:before{content:"\f655"}.icon-dhl:before{content:"\f790"}.icon-diagnoses:before{content:"\f470"}.icon-diaspora:before{content:"\f791"}.icon-dice:before{content:"\f522"}.icon-dice-d20:before{content:"\f6cf"}.icon-dice-d6:before{content:"\f6d1"}.icon-dice-five:before{content:"\f523"}.icon-dice-four:before{content:"\f524"}.icon-dice-one:before{content:"\f525"}.icon-dice-six:before{content:"\f526"}.icon-dice-three:before{content:"\f527"}.icon-dice-two:before{content:"\f528"}.icon-digg:before{content:"\f1a6"}.icon-digital-ocean:before{content:"\f391"}.icon-digital-tachograph:before{content:"\f566"}.icon-directions:before{content:"\f5eb"}.icon-discord:before{content:"\f392"}.icon-discourse:before{content:"\f393"}.icon-disease:before{content:"\f7fa"}.icon-divide:before{content:"\f529"}.icon-dizzy:before{content:"\f567"}.icon-dna:before{content:"\f471"}.icon-dochub:before{content:"\f394"}.icon-docker:before{content:"\f395"}.icon-dog:before{content:"\f6d3"}.icon-dollar-sign:before{content:"\f155"}.icon-dolly:before{content:"\f472"}.icon-dolly-flatbed:before{content:"\f474"}.icon-donate:before{content:"\f4b9"}.icon-door-closed:before{content:"\f52a"}.icon-door-open:before{content:"\f52b"}.icon-dot-circle:before{content:"\f192"}.icon-dove:before{content:"\f4ba"}.icon-download:before{content:"\f019"}.icon-draft2digital:before{content:"\f396"}.icon-drafting-compass:before{content:"\f568"}.icon-dragon:before{content:"\f6d5"}.icon-draw-polygon:before{content:"\f5ee"}.icon-dribbble:before{content:"\f17d"}.icon-dribbble-square:before{content:"\f397"}.icon-dropbox:before{content:"\f16b"}.icon-drum:before{content:"\f569"}.icon-drum-steelpan:before{content:"\f56a"}.icon-drumstick-bite:before{content:"\f6d7"}.icon-drupal:before{content:"\f1a9"}.icon-dumbbell:before{content:"\f44b"}.icon-dumpster:before{content:"\f793"}.icon-dumpster-fire:before{content:"\f794"}.icon-dungeon:before{content:"\f6d9"}.icon-dyalog:before{content:"\f399"}.icon-earlybirds:before{content:"\f39a"}.icon-ebay:before{content:"\f4f4"}.icon-edge:before{content:"\f282"}.icon-edge-legacy:before{content:"\e078"}.icon-edit:before{content:"\f044"}.icon-egg:before{content:"\f7fb"}.icon-eject:before{content:"\f052"}.icon-elementor:before{content:"\f430"}.icon-ellipsis-h:before{content:"\f141"}.icon-ellipsis-v:before{content:"\f142"}.icon-ello:before{content:"\f5f1"}.icon-ember:before{content:"\f423"}.icon-empire:before{content:"\f1d1"}.icon-envelope:before{content:"\f0e0"}.icon-envelope-open:before{content:"\f2b6"}.icon-envelope-open-text:before{content:"\f658"}.icon-envelope-square:before{content:"\f199"}.icon-envira:before{content:"\f299"}.icon-equals:before{content:"\f52c"}.icon-eraser:before{content:"\f12d"}.icon-erlang:before{content:"\f39d"}.icon-ethereum:before{content:"\f42e"}.icon-ethernet:before{content:"\f796"}.icon-etsy:before{content:"\f2d7"}.icon-euro-sign:before{content:"\f153"}.icon-evernote:before{content:"\f839"}.icon-exchange-alt:before{content:"\f362"}.icon-exclamation:before{content:"\f12a"}.icon-exclamation-circle:before{content:"\f06a"}.icon-exclamation-triangle:before{content:"\f071"}.icon-expand:before{content:"\f065"}.icon-expand-alt:before{content:"\f424"}.icon-expand-arrows-alt:before{content:"\f31e"}.icon-expeditedssl:before{content:"\f23e"}.icon-external-link-alt:before{content:"\f35d"}.icon-external-link-square-alt:before{content:"\f360"}.icon-eye:before{content:"\f06e"}.icon-eye-dropper:before{content:"\f1fb"}.icon-eye-slash:before{content:"\f070"}.icon-facebook:before{content:"\f09a"}.icon-facebook-f:before{content:"\f39e"}.icon-facebook-messenger:before{content:"\f39f"}.icon-facebook-square:before{content:"\f082"}.icon-fan:before{content:"\f863"}.icon-fantasy-flight-games:before{content:"\f6dc"}.icon-fast-backward:before{content:"\f049"}.icon-fast-forward:before{content:"\f050"}.icon-faucet:before{content:"\e005"}.icon-fax:before{content:"\f1ac"}.icon-feather:before{content:"\f52d"}.icon-feather-alt:before{content:"\f56b"}.icon-fedex:before{content:"\f797"}.icon-fedora:before{content:"\f798"}.icon-female:before{content:"\f182"}.icon-fighter-jet:before{content:"\f0fb"}.icon-figma:before{content:"\f799"}.icon-file:before{content:"\f15b"}.icon-file-alt:before{content:"\f15c"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-code:before{content:"\f1c9"}.icon-file-contract:before{content:"\f56c"}.icon-file-csv:before{content:"\f6dd"}.icon-file-download:before{content:"\f56d"}.icon-file-excel:before{content:"\f1c3"}.icon-file-export:before{content:"\f56e"}.icon-file-image:before{content:"\f1c5"}.icon-file-import:before{content:"\f56f"}.icon-file-invoice:before{content:"\f570"}.icon-file-invoice-dollar:before{content:"\f571"}.icon-file-medical:before{content:"\f477"}.icon-file-medical-alt:before{content:"\f478"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-prescription:before{content:"\f572"}.icon-file-signature:before{content:"\f573"}.icon-file-upload:before{content:"\f574"}.icon-file-video:before{content:"\f1c8"}.icon-file-word:before{content:"\f1c2"}.icon-fill:before{content:"\f575"}.icon-fill-drip:before{content:"\f576"}.icon-film:before{content:"\f008"}.icon-filter:before{content:"\f0b0"}.icon-fingerprint:before{content:"\f577"}.icon-fire:before{content:"\f06d"}.icon-fire-alt:before{content:"\f7e4"}.icon-fire-extinguisher:before{content:"\f134"}.icon-firefox:before{content:"\f269"}.icon-firefox-browser:before{content:"\e007"}.icon-first-aid:before{content:"\f479"}.icon-first-order:before{content:"\f2b0"}.icon-first-order-alt:before{content:"\f50a"}.icon-firstdraft:before{content:"\f3a1"}.icon-fish:before{content:"\f578"}.icon-fist-raised:before{content:"\f6de"}.icon-flag:before{content:"\f024"}.icon-flag-checkered:before{content:"\f11e"}.icon-flag-usa:before{content:"\f74d"}.icon-flask:before{content:"\f0c3"}.icon-flickr:before{content:"\f16e"}.icon-flipboard:before{content:"\f44d"}.icon-flushed:before{content:"\f579"}.icon-fly:before{content:"\f417"}.icon-folder:before{content:"\f07b"}.icon-folder-minus:before{content:"\f65d"}.icon-folder-open:before{content:"\f07c"}.icon-folder-plus:before{content:"\f65e"}.icon-font:before{content:"\f031"}.icon-font-awesome:before{content:"\f2b4"}.icon-font-awesome-alt:before{content:"\f35c"}.icon-font-awesome-flag:before{content:"\f425"}.icon-font-awesome-logo-full:before{content:"\f4e6"}.icon-fonticons:before{content:"\f280"}.icon-fonticons-fi:before{content:"\f3a2"}.icon-football-ball:before{content:"\f44e"}.icon-fort-awesome:before{content:"\f286"}.icon-fort-awesome-alt:before{content:"\f3a3"}.icon-forumbee:before{content:"\f211"}.icon-forward:before{content:"\f04e"}.icon-foursquare:before{content:"\f180"}.icon-free-code-camp:before{content:"\f2c5"}.icon-freebsd:before{content:"\f3a4"}.icon-frog:before{content:"\f52e"}.icon-frown:before{content:"\f119"}.icon-frown-open:before{content:"\f57a"}.icon-fulcrum:before{content:"\f50b"}.icon-funnel-dollar:before{content:"\f662"}.icon-futbol:before{content:"\f1e3"}.icon-galactic-republic:before{content:"\f50c"}.icon-galactic-senate:before{content:"\f50d"}.icon-gamepad:before{content:"\f11b"}.icon-gas-pump:before{content:"\f52f"}.icon-gavel:before{content:"\f0e3"}.icon-gem:before{content:"\f3a5"}.icon-genderless:before{content:"\f22d"}.icon-get-pocket:before{content:"\f265"}.icon-gg:before{content:"\f260"}.icon-gg-circle:before{content:"\f261"}.icon-ghost:before{content:"\f6e2"}.icon-gift:before{content:"\f06b"}.icon-gifts:before{content:"\f79c"}.icon-git:before{content:"\f1d3"}.icon-git-alt:before{content:"\f841"}.icon-git-square:before{content:"\f1d2"}.icon-github:before{content:"\f09b"}.icon-github-alt:before{content:"\f113"}.icon-github-square:before{content:"\f092"}.icon-gitkraken:before{content:"\f3a6"}.icon-gitlab:before{content:"\f296"}.icon-gitter:before{content:"\f426"}.icon-glass-cheers:before{content:"\f79f"}.icon-glass-martini:before{content:"\f000"}.icon-glass-martini-alt:before{content:"\f57b"}.icon-glass-whiskey:before{content:"\f7a0"}.icon-glasses:before{content:"\f530"}.icon-glide:before{content:"\f2a5"}.icon-glide-g:before{content:"\f2a6"}.icon-globe:before{content:"\f0ac"}.icon-globe-africa:before{content:"\f57c"}.icon-globe-americas:before{content:"\f57d"}.icon-globe-asia:before{content:"\f57e"}.icon-globe-europe:before{content:"\f7a2"}.icon-gofore:before{content:"\f3a7"}.icon-golf-ball:before{content:"\f450"}.icon-goodreads:before{content:"\f3a8"}.icon-goodreads-g:before{content:"\f3a9"}.icon-google:before{content:"\f1a0"}.icon-google-drive:before{content:"\f3aa"}.icon-google-pay:before{content:"\e079"}.icon-google-play:before{content:"\f3ab"}.icon-google-plus:before{content:"\f2b3"}.icon-google-plus-g:before{content:"\f0d5"}.icon-google-plus-square:before{content:"\f0d4"}.icon-google-wallet:before{content:"\f1ee"}.icon-gopuram:before{content:"\f664"}.icon-graduation-cap:before{content:"\f19d"}.icon-gratipay:before{content:"\f184"}.icon-grav:before{content:"\f2d6"}.icon-greater-than:before{content:"\f531"}.icon-greater-than-equal:before{content:"\f532"}.icon-grimace:before{content:"\f57f"}.icon-grin:before{content:"\f580"}.icon-grin-alt:before{content:"\f581"}.icon-grin-beam:before{content:"\f582"}.icon-grin-beam-sweat:before{content:"\f583"}.icon-grin-hearts:before{content:"\f584"}.icon-grin-squint:before{content:"\f585"}.icon-grin-squint-tears:before{content:"\f586"}.icon-grin-stars:before{content:"\f587"}.icon-grin-tears:before{content:"\f588"}.icon-grin-tongue:before{content:"\f589"}.icon-grin-tongue-squint:before{content:"\f58a"}.icon-grin-tongue-wink:before{content:"\f58b"}.icon-grin-wink:before{content:"\f58c"}.icon-grip-horizontal:before{content:"\f58d"}.icon-grip-lines:before{content:"\f7a4"}.icon-grip-lines-vertical:before{content:"\f7a5"}.icon-grip-vertical:before{content:"\f58e"}.icon-gripfire:before{content:"\f3ac"}.icon-grunt:before{content:"\f3ad"}.icon-guilded:before{content:"\e07e"}.icon-guitar:before{content:"\f7a6"}.icon-gulp:before{content:"\f3ae"}.icon-h-square:before{content:"\f0fd"}.icon-hacker-news:before{content:"\f1d4"}.icon-hacker-news-square:before{content:"\f3af"}.icon-hackerrank:before{content:"\f5f7"}.icon-hamburger:before{content:"\f805"}.icon-hammer:before{content:"\f6e3"}.icon-hamsa:before{content:"\f665"}.icon-hand-holding:before{content:"\f4bd"}.icon-hand-holding-heart:before{content:"\f4be"}.icon-hand-holding-medical:before{content:"\e05c"}.icon-hand-holding-usd:before{content:"\f4c0"}.icon-hand-holding-water:before{content:"\f4c1"}.icon-hand-lizard:before{content:"\f258"}.icon-hand-middle-finger:before{content:"\f806"}.icon-hand-paper:before{content:"\f256"}.icon-hand-peace:before{content:"\f25b"}.icon-hand-point-down:before{content:"\f0a7"}.icon-hand-point-left:before{content:"\f0a5"}.icon-hand-point-right:before{content:"\f0a4"}.icon-hand-point-up:before{content:"\f0a6"}.icon-hand-pointer:before{content:"\f25a"}.icon-hand-rock:before{content:"\f255"}.icon-hand-scissors:before{content:"\f257"}.icon-hand-sparkles:before{content:"\e05d"}.icon-hand-spock:before{content:"\f259"}.icon-hands:before{content:"\f4c2"}.icon-hands-helping:before{content:"\f4c4"}.icon-hands-wash:before{content:"\e05e"}.icon-handshake:before{content:"\f2b5"}.icon-handshake-alt-slash:before{content:"\e05f"}.icon-handshake-slash:before{content:"\e060"}.icon-hanukiah:before{content:"\f6e6"}.icon-hard-hat:before{content:"\f807"}.icon-hashtag:before{content:"\f292"}.icon-hat-cowboy:before{content:"\f8c0"}.icon-hat-cowboy-side:before{content:"\f8c1"}.icon-hat-wizard:before{content:"\f6e8"}.icon-hdd:before{content:"\f0a0"}.icon-head-side-cough:before{content:"\e061"}.icon-head-side-cough-slash:before{content:"\e062"}.icon-head-side-mask:before{content:"\e063"}.icon-head-side-virus:before{content:"\e064"}.icon-heading:before{content:"\f1dc"}.icon-headphones:before{content:"\f025"}.icon-headphones-alt:before{content:"\f58f"}.icon-headset:before{content:"\f590"}.icon-heart:before{content:"\f004"}.icon-heart-broken:before{content:"\f7a9"}.icon-heartbeat:before{content:"\f21e"}.icon-helicopter:before{content:"\f533"}.icon-highlighter:before{content:"\f591"}.icon-hiking:before{content:"\f6ec"}.icon-hippo:before{content:"\f6ed"}.icon-hips:before{content:"\f452"}.icon-hire-a-helper:before{content:"\f3b0"}.icon-history:before{content:"\f1da"}.icon-hive:before{content:"\e07f"}.icon-hockey-puck:before{content:"\f453"}.icon-holly-berry:before{content:"\f7aa"}.icon-home:before{content:"\f015"}.icon-hooli:before{content:"\f427"}.icon-hornbill:before{content:"\f592"}.icon-horse:before{content:"\f6f0"}.icon-horse-head:before{content:"\f7ab"}.icon-hospital:before{content:"\f0f8"}.icon-hospital-alt:before{content:"\f47d"}.icon-hospital-symbol:before{content:"\f47e"}.icon-hospital-user:before{content:"\f80d"}.icon-hot-tub:before{content:"\f593"}.icon-hotdog:before{content:"\f80f"}.icon-hotel:before{content:"\f594"}.icon-hotjar:before{content:"\f3b1"}.icon-hourglass:before{content:"\f254"}.icon-hourglass-end:before{content:"\f253"}.icon-hourglass-half:before{content:"\f252"}.icon-hourglass-start:before{content:"\f251"}.icon-house-damage:before{content:"\f6f1"}.icon-house-user:before{content:"\e065"}.icon-houzz:before{content:"\f27c"}.icon-hryvnia:before{content:"\f6f2"}.icon-html5:before{content:"\f13b"}.icon-hubspot:before{content:"\f3b2"}.icon-i-cursor:before{content:"\f246"}.icon-ice-cream:before{content:"\f810"}.icon-icicles:before{content:"\f7ad"}.icon-icons:before{content:"\f86d"}.icon-id-badge:before{content:"\f2c1"}.icon-id-card:before{content:"\f2c2"}.icon-id-card-alt:before{content:"\f47f"}.icon-ideal:before{content:"\e013"}.icon-igloo:before{content:"\f7ae"}.icon-image:before{content:"\f03e"}.icon-images:before{content:"\f302"}.icon-imdb:before{content:"\f2d8"}.icon-inbox:before{content:"\f01c"}.icon-indent:before{content:"\f03c"}.icon-industry:before{content:"\f275"}.icon-infinity:before{content:"\f534"}.icon-info:before{content:"\f129"}.icon-info-circle:before{content:"\f05a"}.icon-innosoft:before{content:"\e080"}.icon-instagram:before{content:"\f16d"}.icon-instagram-square:before{content:"\e055"}.icon-instalod:before{content:"\e081"}.icon-intercom:before{content:"\f7af"}.icon-internet-explorer:before{content:"\f26b"}.icon-invision:before{content:"\f7b0"}.icon-ioxhost:before{content:"\f208"}.icon-italic:before{content:"\f033"}.icon-itch-io:before{content:"\f83a"}.icon-itunes:before{content:"\f3b4"}.icon-itunes-note:before{content:"\f3b5"}.icon-java:before{content:"\f4e4"}.icon-jedi:before{content:"\f669"}.icon-jedi-order:before{content:"\f50e"}.icon-jenkins:before{content:"\f3b6"}.icon-jira:before{content:"\f7b1"}.icon-joget:before{content:"\f3b7"}.icon-joint:before{content:"\f595"}.icon-joomla:before{content:"\f1aa"}.icon-journal-whills:before{content:"\f66a"}.icon-js:before{content:"\f3b8"}.icon-js-square:before{content:"\f3b9"}.icon-jsfiddle:before{content:"\f1cc"}.icon-kaaba:before{content:"\f66b"}.icon-kaggle:before{content:"\f5fa"}.icon-key:before{content:"\f084"}.icon-keybase:before{content:"\f4f5"}.icon-keyboard:before{content:"\f11c"}.icon-keycdn:before{content:"\f3ba"}.icon-khanda:before{content:"\f66d"}.icon-kickstarter:before{content:"\f3bb"}.icon-kickstarter-k:before{content:"\f3bc"}.icon-kiss:before{content:"\f596"}.icon-kiss-beam:before{content:"\f597"}.icon-kiss-wink-heart:before{content:"\f598"}.icon-kiwi-bird:before{content:"\f535"}.icon-korvue:before{content:"\f42f"}.icon-landmark:before{content:"\f66f"}.icon-language:before{content:"\f1ab"}.icon-laptop:before{content:"\f109"}.icon-laptop-code:before{content:"\f5fc"}.icon-laptop-house:before{content:"\e066"}.icon-laptop-medical:before{content:"\f812"}.icon-laravel:before{content:"\f3bd"}.icon-lastfm:before{content:"\f202"}.icon-lastfm-square:before{content:"\f203"}.icon-laugh:before{content:"\f599"}.icon-laugh-beam:before{content:"\f59a"}.icon-laugh-squint:before{content:"\f59b"}.icon-laugh-wink:before{content:"\f59c"}.icon-layer-group:before{content:"\f5fd"}.icon-leaf:before{content:"\f06c"}.icon-leanpub:before{content:"\f212"}.icon-lemon:before{content:"\f094"}.icon-less:before{content:"\f41d"}.icon-less-than:before{content:"\f536"}.icon-less-than-equal:before{content:"\f537"}.icon-level-down-alt:before{content:"\f3be"}.icon-level-up-alt:before{content:"\f3bf"}.icon-life-ring:before{content:"\f1cd"}.icon-lightbulb:before{content:"\f0eb"}.icon-line:before{content:"\f3c0"}.icon-link:before{content:"\f0c1"}.icon-linkedin:before{content:"\f08c"}.icon-linkedin-in:before{content:"\f0e1"}.icon-linode:before{content:"\f2b8"}.icon-linux:before{content:"\f17c"}.icon-lira-sign:before{content:"\f195"}.icon-list:before{content:"\f03a"}.icon-list-alt:before{content:"\f022"}.icon-list-ol:before{content:"\f0cb"}.icon-list-ul:before{content:"\f0ca"}.icon-location-arrow:before{content:"\f124"}.icon-lock:before{content:"\f023"}.icon-lock-open:before{content:"\f3c1"}.icon-long-arrow-alt-down:before{content:"\f309"}.icon-long-arrow-alt-left:before{content:"\f30a"}.icon-long-arrow-alt-right:before{content:"\f30b"}.icon-long-arrow-alt-up:before{content:"\f30c"}.icon-low-vision:before{content:"\f2a8"}.icon-luggage-cart:before{content:"\f59d"}.icon-lungs:before{content:"\f604"}.icon-lungs-virus:before{content:"\e067"}.icon-lyft:before{content:"\f3c3"}.icon-magento:before{content:"\f3c4"}.icon-magic:before{content:"\f0d0"}.icon-magnet:before{content:"\f076"}.icon-mail-bulk:before{content:"\f674"}.icon-mailchimp:before{content:"\f59e"}.icon-male:before{content:"\f183"}.icon-mandalorian:before{content:"\f50f"}.icon-map:before{content:"\f279"}.icon-map-marked:before{content:"\f59f"}.icon-map-marked-alt:before{content:"\f5a0"}.icon-map-marker:before{content:"\f041"}.icon-map-marker-alt:before{content:"\f3c5"}.icon-map-pin:before{content:"\f276"}.icon-map-signs:before{content:"\f277"}.icon-markdown:before{content:"\f60f"}.icon-marker:before{content:"\f5a1"}.icon-mars:before{content:"\f222"}.icon-mars-double:before{content:"\f227"}.icon-mars-stroke:before{content:"\f229"}.icon-mars-stroke-h:before{content:"\f22b"}.icon-mars-stroke-v:before{content:"\f22a"}.icon-mask:before{content:"\f6fa"}.icon-mastodon:before{content:"\f4f6"}.icon-maxcdn:before{content:"\f136"}.icon-mdb:before{content:"\f8ca"}.icon-medal:before{content:"\f5a2"}.icon-medapps:before{content:"\f3c6"}.icon-medium:before{content:"\f23a"}.icon-medium-m:before{content:"\f3c7"}.icon-medkit:before{content:"\f0fa"}.icon-medrt:before{content:"\f3c8"}.icon-meetup:before{content:"\f2e0"}.icon-megaport:before{content:"\f5a3"}.icon-meh:before{content:"\f11a"}.icon-meh-blank:before{content:"\f5a4"}.icon-meh-rolling-eyes:before{content:"\f5a5"}.icon-memory:before{content:"\f538"}.icon-mendeley:before{content:"\f7b3"}.icon-menorah:before{content:"\f676"}.icon-mercury:before{content:"\f223"}.icon-meteor:before{content:"\f753"}.icon-microblog:before{content:"\e01a"}.icon-microchip:before{content:"\f2db"}.icon-microphone:before{content:"\f130"}.icon-microphone-alt:before{content:"\f3c9"}.icon-microphone-alt-slash:before{content:"\f539"}.icon-microphone-slash:before{content:"\f131"}.icon-microscope:before{content:"\f610"}.icon-microsoft:before{content:"\f3ca"}.icon-minus:before{content:"\f068"}.icon-minus-circle:before{content:"\f056"}.icon-minus-square:before{content:"\f146"}.icon-mitten:before{content:"\f7b5"}.icon-mix:before{content:"\f3cb"}.icon-mixcloud:before{content:"\f289"}.icon-mixer:before{content:"\e056"}.icon-mizuni:before{content:"\f3cc"}.icon-mobile:before{content:"\f10b"}.icon-mobile-alt:before{content:"\f3cd"}.icon-modx:before{content:"\f285"}.icon-monero:before{content:"\f3d0"}.icon-money-bill:before{content:"\f0d6"}.icon-money-bill-alt:before{content:"\f3d1"}.icon-money-bill-wave:before{content:"\f53a"}.icon-money-bill-wave-alt:before{content:"\f53b"}.icon-money-check:before{content:"\f53c"}.icon-money-check-alt:before{content:"\f53d"}.icon-monument:before{content:"\f5a6"}.icon-moon:before{content:"\f186"}.icon-mortar-pestle:before{content:"\f5a7"}.icon-mosque:before{content:"\f678"}.icon-motorcycle:before{content:"\f21c"}.icon-mountain:before{content:"\f6fc"}.icon-mouse:before{content:"\f8cc"}.icon-mouse-pointer:before{content:"\f245"}.icon-mug-hot:before{content:"\f7b6"}.icon-music:before{content:"\f001"}.icon-napster:before{content:"\f3d2"}.icon-neos:before{content:"\f612"}.icon-network-wired:before{content:"\f6ff"}.icon-neuter:before{content:"\f22c"}.icon-newspaper:before{content:"\f1ea"}.icon-nimblr:before{content:"\f5a8"}.icon-node:before{content:"\f419"}.icon-node-js:before{content:"\f3d3"}.icon-not-equal:before{content:"\f53e"}.icon-notes-medical:before{content:"\f481"}.icon-npm:before{content:"\f3d4"}.icon-ns8:before{content:"\f3d5"}.icon-nutritionix:before{content:"\f3d6"}.icon-object-group:before{content:"\f247"}.icon-object-ungroup:before{content:"\f248"}.icon-octopus-deploy:before{content:"\e082"}.icon-odnoklassniki:before{content:"\f263"}.icon-odnoklassniki-square:before{content:"\f264"}.icon-oil-can:before{content:"\f613"}.icon-old-republic:before{content:"\f510"}.icon-om:before{content:"\f679"}.icon-opencart:before{content:"\f23d"}.icon-openid:before{content:"\f19b"}.icon-opera:before{content:"\f26a"}.icon-optin-monster:before{content:"\f23c"}.icon-orcid:before{content:"\f8d2"}.icon-osi:before{content:"\f41a"}.icon-otter:before{content:"\f700"}.icon-outdent:before{content:"\f03b"}.icon-page4:before{content:"\f3d7"}.icon-pagelines:before{content:"\f18c"}.icon-pager:before{content:"\f815"}.icon-paint-brush:before{content:"\f1fc"}.icon-paint-roller:before{content:"\f5aa"}.icon-palette:before{content:"\f53f"}.icon-palfed:before{content:"\f3d8"}.icon-pallet:before{content:"\f482"}.icon-paper-plane:before{content:"\f1d8"}.icon-paperclip:before{content:"\f0c6"}.icon-parachute-box:before{content:"\f4cd"}.icon-paragraph:before{content:"\f1dd"}.icon-parking:before{content:"\f540"}.icon-passport:before{content:"\f5ab"}.icon-pastafarianism:before{content:"\f67b"}.icon-paste:before{content:"\f0ea"}.icon-patreon:before{content:"\f3d9"}.icon-pause:before{content:"\f04c"}.icon-pause-circle:before{content:"\f28b"}.icon-paw:before{content:"\f1b0"}.icon-paypal:before{content:"\f1ed"}.icon-peace:before{content:"\f67c"}.icon-pen:before{content:"\f304"}.icon-pen-alt:before{content:"\f305"}.icon-pen-fancy:before{content:"\f5ac"}.icon-pen-nib:before{content:"\f5ad"}.icon-pen-square:before{content:"\f14b"}.icon-pencil-alt:before{content:"\f303"}.icon-pencil-ruler:before{content:"\f5ae"}.icon-penny-arcade:before{content:"\f704"}.icon-people-arrows:before{content:"\e068"}.icon-people-carry:before{content:"\f4ce"}.icon-pepper-hot:before{content:"\f816"}.icon-perbyte:before{content:"\e083"}.icon-percent:before{content:"\f295"}.icon-percentage:before{content:"\f541"}.icon-periscope:before{content:"\f3da"}.icon-person-booth:before{content:"\f756"}.icon-phabricator:before{content:"\f3db"}.icon-phoenix-framework:before{content:"\f3dc"}.icon-phoenix-squadron:before{content:"\f511"}.icon-phone:before{content:"\f095"}.icon-phone-alt:before{content:"\f879"}.icon-phone-slash:before{content:"\f3dd"}.icon-phone-square:before{content:"\f098"}.icon-phone-square-alt:before{content:"\f87b"}.icon-phone-volume:before{content:"\f2a0"}.icon-photo-video:before{content:"\f87c"}.icon-php:before{content:"\f457"}.icon-pied-piper:before{content:"\f2ae"}.icon-pied-piper-alt:before{content:"\f1a8"}.icon-pied-piper-hat:before{content:"\f4e5"}.icon-pied-piper-pp:before{content:"\f1a7"}.icon-pied-piper-square:before{content:"\e01e"}.icon-piggy-bank:before{content:"\f4d3"}.icon-pills:before{content:"\f484"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-p:before{content:"\f231"}.icon-pinterest-square:before{content:"\f0d3"}.icon-pizza-slice:before{content:"\f818"}.icon-place-of-worship:before{content:"\f67f"}.icon-plane:before{content:"\f072"}.icon-plane-arrival:before{content:"\f5af"}.icon-plane-departure:before{content:"\f5b0"}.icon-plane-slash:before{content:"\e069"}.icon-play:before{content:"\f04b"}.icon-play-circle:before{content:"\f144"}.icon-playstation:before{content:"\f3df"}.icon-plug:before{content:"\f1e6"}.icon-plus:before{content:"\f067"}.icon-plus-circle:before{content:"\f055"}.icon-plus-square:before{content:"\f0fe"}.icon-podcast:before{content:"\f2ce"}.icon-poll:before{content:"\f681"}.icon-poll-h:before{content:"\f682"}.icon-poo:before{content:"\f2fe"}.icon-poo-storm:before{content:"\f75a"}.icon-poop:before{content:"\f619"}.icon-portrait:before{content:"\f3e0"}.icon-pound-sign:before{content:"\f154"}.icon-power-off:before{content:"\f011"}.icon-pray:before{content:"\f683"}.icon-praying-hands:before{content:"\f684"}.icon-prescription:before{content:"\f5b1"}.icon-prescription-bottle:before{content:"\f485"}.icon-prescription-bottle-alt:before{content:"\f486"}.icon-print:before{content:"\f02f"}.icon-procedures:before{content:"\f487"}.icon-product-hunt:before{content:"\f288"}.icon-project-diagram:before{content:"\f542"}.icon-pump-medical:before{content:"\e06a"}.icon-pump-soap:before{content:"\e06b"}.icon-pushed:before{content:"\f3e1"}.icon-puzzle-piece:before{content:"\f12e"}.icon-python:before{content:"\f3e2"}.icon-qq:before{content:"\f1d6"}.icon-qrcode:before{content:"\f029"}.icon-question:before{content:"\f128"}.icon-question-circle:before{content:"\f059"}.icon-quidditch:before{content:"\f458"}.icon-quinscape:before{content:"\f459"}.icon-quora:before{content:"\f2c4"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-quran:before{content:"\f687"}.icon-r-project:before{content:"\f4f7"}.icon-radiation:before{content:"\f7b9"}.icon-radiation-alt:before{content:"\f7ba"}.icon-rainbow:before{content:"\f75b"}.icon-random:before{content:"\f074"}.icon-raspberry-pi:before{content:"\f7bb"}.icon-ravelry:before{content:"\f2d9"}.icon-react:before{content:"\f41b"}.icon-reacteurope:before{content:"\f75d"}.icon-readme:before{content:"\f4d5"}.icon-rebel:before{content:"\f1d0"}.icon-receipt:before{content:"\f543"}.icon-record-vinyl:before{content:"\f8d9"}.icon-recycle:before{content:"\f1b8"}.icon-red-river:before{content:"\f3e3"}.icon-reddit:before{content:"\f1a1"}.icon-reddit-alien:before{content:"\f281"}.icon-reddit-square:before{content:"\f1a2"}.icon-redhat:before{content:"\f7bc"}.icon-redo:before{content:"\f01e"}.icon-redo-alt:before{content:"\f2f9"}.icon-registered:before{content:"\f25d"}.icon-remove-format:before{content:"\f87d"}.icon-renren:before{content:"\f18b"}.icon-reply:before{content:"\f3e5"}.icon-reply-all:before{content:"\f122"}.icon-replyd:before{content:"\f3e6"}.icon-republican:before{content:"\f75e"}.icon-researchgate:before{content:"\f4f8"}.icon-resolving:before{content:"\f3e7"}.icon-restroom:before{content:"\f7bd"}.icon-retweet:before{content:"\f079"}.icon-rev:before{content:"\f5b2"}.icon-ribbon:before{content:"\f4d6"}.icon-ring:before{content:"\f70b"}.icon-road:before{content:"\f018"}.icon-robot:before{content:"\f544"}.icon-rocket:before{content:"\f135"}.icon-rocketchat:before{content:"\f3e8"}.icon-rockrms:before{content:"\f3e9"}.icon-route:before{content:"\f4d7"}.icon-rss:before{content:"\f09e"}.icon-rss-square:before{content:"\f143"}.icon-ruble-sign:before{content:"\f158"}.icon-ruler:before{content:"\f545"}.icon-ruler-combined:before{content:"\f546"}.icon-ruler-horizontal:before{content:"\f547"}.icon-ruler-vertical:before{content:"\f548"}.icon-running:before{content:"\f70c"}.icon-rupee-sign:before{content:"\f156"}.icon-rust:before{content:"\e07a"}.icon-sad-cry:before{content:"\f5b3"}.icon-sad-tear:before{content:"\f5b4"}.icon-safari:before{content:"\f267"}.icon-salesforce:before{content:"\f83b"}.icon-sass:before{content:"\f41e"}.icon-satellite:before{content:"\f7bf"}.icon-satellite-dish:before{content:"\f7c0"}.icon-save:before{content:"\f0c7"}.icon-schlix:before{content:"\f3ea"}.icon-school:before{content:"\f549"}.icon-screwdriver:before{content:"\f54a"}.icon-scribd:before{content:"\f28a"}.icon-scroll:before{content:"\f70e"}.icon-sd-card:before{content:"\f7c2"}.icon-search:before{content:"\f002"}.icon-search-dollar:before{content:"\f688"}.icon-search-location:before{content:"\f689"}.icon-search-minus:before{content:"\f010"}.icon-search-plus:before{content:"\f00e"}.icon-searchengin:before{content:"\f3eb"}.icon-seedling:before{content:"\f4d8"}.icon-sellcast:before{content:"\f2da"}.icon-sellsy:before{content:"\f213"}.icon-server:before{content:"\f233"}.icon-servicestack:before{content:"\f3ec"}.icon-shapes:before{content:"\f61f"}.icon-share:before{content:"\f064"}.icon-share-alt:before{content:"\f1e0"}.icon-share-alt-square:before{content:"\f1e1"}.icon-share-square:before{content:"\f14d"}.icon-shekel-sign:before{content:"\f20b"}.icon-shield-alt:before{content:"\f3ed"}.icon-shield-virus:before{content:"\e06c"}.icon-ship:before{content:"\f21a"}.icon-shipping-fast:before{content:"\f48b"}.icon-shirtsinbulk:before{content:"\f214"}.icon-shoe-prints:before{content:"\f54b"}.icon-shopify:before{content:"\e057"}.icon-shopping-bag:before{content:"\f290"}.icon-shopping-basket:before{content:"\f291"}.icon-shopping-cart:before{content:"\f07a"}.icon-shopware:before{content:"\f5b5"}.icon-shower:before{content:"\f2cc"}.icon-shuttle-van:before{content:"\f5b6"}.icon-sign:before{content:"\f4d9"}.icon-sign-in-alt:before{content:"\f2f6"}.icon-sign-language:before{content:"\f2a7"}.icon-sign-out-alt:before{content:"\f2f5"}.icon-signal:before{content:"\f012"}.icon-signature:before{content:"\f5b7"}.icon-sim-card:before{content:"\f7c4"}.icon-simplybuilt:before{content:"\f215"}.icon-sink:before{content:"\e06d"}.icon-sistrix:before{content:"\f3ee"}.icon-sitemap:before{content:"\f0e8"}.icon-sith:before{content:"\f512"}.icon-skating:before{content:"\f7c5"}.icon-sketch:before{content:"\f7c6"}.icon-skiing:before{content:"\f7c9"}.icon-skiing-nordic:before{content:"\f7ca"}.icon-skull:before{content:"\f54c"}.icon-skull-crossbones:before{content:"\f714"}.icon-skyatlas:before{content:"\f216"}.icon-skype:before{content:"\f17e"}.icon-slack:before{content:"\f198"}.icon-slack-hash:before{content:"\f3ef"}.icon-slash:before{content:"\f715"}.icon-sleigh:before{content:"\f7cc"}.icon-sliders-h:before{content:"\f1de"}.icon-slideshare:before{content:"\f1e7"}.icon-smile:before{content:"\f118"}.icon-smile-beam:before{content:"\f5b8"}.icon-smile-wink:before{content:"\f4da"}.icon-smog:before{content:"\f75f"}.icon-smoking:before{content:"\f48d"}.icon-smoking-ban:before{content:"\f54d"}.icon-sms:before{content:"\f7cd"}.icon-snapchat:before{content:"\f2ab"}.icon-snapchat-ghost:before{content:"\f2ac"}.icon-snapchat-square:before{content:"\f2ad"}.icon-snowboarding:before{content:"\f7ce"}.icon-snowflake:before{content:"\f2dc"}.icon-snowman:before{content:"\f7d0"}.icon-snowplow:before{content:"\f7d2"}.icon-soap:before{content:"\e06e"}.icon-socks:before{content:"\f696"}.icon-solar-panel:before{content:"\f5ba"}.icon-sort:before{content:"\f0dc"}.icon-sort-alpha-down:before{content:"\f15d"}.icon-sort-alpha-down-alt:before{content:"\f881"}.icon-sort-alpha-up:before{content:"\f15e"}.icon-sort-alpha-up-alt:before{content:"\f882"}.icon-sort-amount-down:before{content:"\f160"}.icon-sort-amount-down-alt:before{content:"\f884"}.icon-sort-amount-up:before{content:"\f161"}.icon-sort-amount-up-alt:before{content:"\f885"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-numeric-down:before{content:"\f162"}.icon-sort-numeric-down-alt:before{content:"\f886"}.icon-sort-numeric-up:before{content:"\f163"}.icon-sort-numeric-up-alt:before{content:"\f887"}.icon-sort-up:before{content:"\f0de"}.icon-soundcloud:before{content:"\f1be"}.icon-sourcetree:before{content:"\f7d3"}.icon-spa:before{content:"\f5bb"}.icon-space-shuttle:before{content:"\f197"}.icon-speakap:before{content:"\f3f3"}.icon-speaker-deck:before{content:"\f83c"}.icon-spell-check:before{content:"\f891"}.icon-spider:before{content:"\f717"}.icon-spinner:before{content:"\f110"}.icon-splotch:before{content:"\f5bc"}.icon-spotify:before{content:"\f1bc"}.icon-spray-can:before{content:"\f5bd"}.icon-square:before{content:"\f0c8"}.icon-square-full:before{content:"\f45c"}.icon-square-root-alt:before{content:"\f698"}.icon-squarespace:before{content:"\f5be"}.icon-stack-exchange:before{content:"\f18d"}.icon-stack-overflow:before{content:"\f16c"}.icon-stackpath:before{content:"\f842"}.icon-stamp:before{content:"\f5bf"}.icon-star:before{content:"\f005"}.icon-star-and-crescent:before{content:"\f699"}.icon-star-half:before{content:"\f089"}.icon-star-half-alt:before{content:"\f5c0"}.icon-star-of-david:before{content:"\f69a"}.icon-star-of-life:before{content:"\f621"}.icon-staylinked:before{content:"\f3f5"}.icon-steam:before{content:"\f1b6"}.icon-steam-square:before{content:"\f1b7"}.icon-steam-symbol:before{content:"\f3f6"}.icon-step-backward:before{content:"\f048"}.icon-step-forward:before{content:"\f051"}.icon-stethoscope:before{content:"\f0f1"}.icon-sticker-mule:before{content:"\f3f7"}.icon-sticky-note:before{content:"\f249"}.icon-stop:before{content:"\f04d"}.icon-stop-circle:before{content:"\f28d"}.icon-stopwatch:before{content:"\f2f2"}.icon-stopwatch-20:before{content:"\e06f"}.icon-store:before{content:"\f54e"}.icon-store-alt:before{content:"\f54f"}.icon-store-alt-slash:before{content:"\e070"}.icon-store-slash:before{content:"\e071"}.icon-strava:before{content:"\f428"}.icon-stream:before{content:"\f550"}.icon-street-view:before{content:"\f21d"}.icon-strikethrough:before{content:"\f0cc"}.icon-stripe:before{content:"\f429"}.icon-stripe-s:before{content:"\f42a"}.icon-stroopwafel:before{content:"\f551"}.icon-studiovinari:before{content:"\f3f8"}.icon-stumbleupon:before{content:"\f1a4"}.icon-stumbleupon-circle:before{content:"\f1a3"}.icon-subscript:before{content:"\f12c"}.icon-subway:before{content:"\f239"}.icon-suitcase:before{content:"\f0f2"}.icon-suitcase-rolling:before{content:"\f5c1"}.icon-sun:before{content:"\f185"}.icon-superpowers:before{content:"\f2dd"}.icon-superscript:before{content:"\f12b"}.icon-supple:before{content:"\f3f9"}.icon-surprise:before{content:"\f5c2"}.icon-suse:before{content:"\f7d6"}.icon-swatchbook:before{content:"\f5c3"}.icon-swift:before{content:"\f8e1"}.icon-swimmer:before{content:"\f5c4"}.icon-swimming-pool:before{content:"\f5c5"}.icon-symfony:before{content:"\f83d"}.icon-synagogue:before{content:"\f69b"}.icon-sync:before{content:"\f021"}.icon-sync-alt:before{content:"\f2f1"}.icon-syringe:before{content:"\f48e"}.icon-table:before{content:"\f0ce"}.icon-table-tennis:before{content:"\f45d"}.icon-tablet:before{content:"\f10a"}.icon-tablet-alt:before{content:"\f3fa"}.icon-tablets:before{content:"\f490"}.icon-tachometer-alt:before{content:"\f3fd"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-tape:before{content:"\f4db"}.icon-tasks:before{content:"\f0ae"}.icon-taxi:before{content:"\f1ba"}.icon-teamspeak:before{content:"\f4f9"}.icon-teeth:before{content:"\f62e"}.icon-teeth-open:before{content:"\f62f"}.icon-telegram:before{content:"\f2c6"}.icon-telegram-plane:before{content:"\f3fe"}.icon-temperature-high:before{content:"\f769"}.icon-temperature-low:before{content:"\f76b"}.icon-tencent-weibo:before{content:"\f1d5"}.icon-tenge:before{content:"\f7d7"}.icon-terminal:before{content:"\f120"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-th:before{content:"\f00a"}.icon-th-large:before{content:"\f009"}.icon-th-list:before{content:"\f00b"}.icon-the-red-yeti:before{content:"\f69d"}.icon-theater-masks:before{content:"\f630"}.icon-themeco:before{content:"\f5c6"}.icon-themeisle:before{content:"\f2b2"}.icon-thermometer:before{content:"\f491"}.icon-thermometer-empty:before{content:"\f2cb"}.icon-thermometer-full:before{content:"\f2c7"}.icon-thermometer-half:before{content:"\f2c9"}.icon-thermometer-quarter:before{content:"\f2ca"}.icon-thermometer-three-quarters:before{content:"\f2c8"}.icon-think-peaks:before{content:"\f731"}.icon-thumbs-down:before{content:"\f165"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbtack:before{content:"\f08d"}.icon-ticket-alt:before{content:"\f3ff"}.icon-tiktok:before{content:"\e07b"}.icon-times:before{content:"\f00d"}.icon-times-circle:before{content:"\f057"}.icon-tint:before{content:"\f043"}.icon-tint-slash:before{content:"\f5c7"}.icon-tired:before{content:"\f5c8"}.icon-toggle-off:before{content:"\f204"}.icon-toggle-on:before{content:"\f205"}.icon-toilet:before{content:"\f7d8"}.icon-toilet-paper:before{content:"\f71e"}.icon-toilet-paper-slash:before{content:"\e072"}.icon-toolbox:before{content:"\f552"}.icon-tools:before{content:"\f7d9"}.icon-tooth:before{content:"\f5c9"}.icon-torah:before{content:"\f6a0"}.icon-torii-gate:before{content:"\f6a1"}.icon-tractor:before{content:"\f722"}.icon-trade-federation:before{content:"\f513"}.icon-trademark:before{content:"\f25c"}.icon-traffic-light:before{content:"\f637"}.icon-trailer:before{content:"\e041"}.icon-train:before{content:"\f238"}.icon-tram:before{content:"\f7da"}.icon-transgender:before{content:"\f224"}.icon-transgender-alt:before{content:"\f225"}.icon-trash:before{content:"\f1f8"}.icon-trash-alt:before{content:"\f2ed"}.icon-trash-restore:before{content:"\f829"}.icon-trash-restore-alt:before{content:"\f82a"}.icon-tree:before{content:"\f1bb"}.icon-trello:before{content:"\f181"}.icon-tripadvisor:before{content:"\f262"}.icon-trophy:before{content:"\f091"}.icon-truck:before{content:"\f0d1"}.icon-truck-loading:before{content:"\f4de"}.icon-truck-monster:before{content:"\f63b"}.icon-truck-moving:before{content:"\f4df"}.icon-truck-pickup:before{content:"\f63c"}.icon-tshirt:before{content:"\f553"}.icon-tty:before{content:"\f1e4"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-square:before{content:"\f174"}.icon-tv:before{content:"\f26c"}.icon-twitch:before{content:"\f1e8"}.icon-twitter:before{content:"\f099"}.icon-twitter-square:before{content:"\f081"}.icon-typo3:before{content:"\f42b"}.icon-uber:before{content:"\f402"}.icon-ubuntu:before{content:"\f7df"}.icon-uikit:before{content:"\f403"}.icon-umbraco:before{content:"\f8e8"}.icon-umbrella:before{content:"\f0e9"}.icon-umbrella-beach:before{content:"\f5ca"}.icon-uncharted:before{content:"\e084"}.icon-underline:before{content:"\f0cd"}.icon-undo:before{content:"\f0e2"}.icon-undo-alt:before{content:"\f2ea"}.icon-uniregistry:before{content:"\f404"}.icon-unity:before{content:"\e049"}.icon-universal-access:before{content:"\f29a"}.icon-university:before{content:"\f19c"}.icon-unlink:before{content:"\f127"}.icon-unlock:before{content:"\f09c"}.icon-unlock-alt:before{content:"\f13e"}.icon-unsplash:before{content:"\e07c"}.icon-untappd:before{content:"\f405"}.icon-upload:before{content:"\f093"}.icon-ups:before{content:"\f7e0"}.icon-usb:before{content:"\f287"}.icon-user:before{content:"\f007"}.icon-user-alt:before{content:"\f406"}.icon-user-alt-slash:before{content:"\f4fa"}.icon-user-astronaut:before{content:"\f4fb"}.icon-user-check:before{content:"\f4fc"}.icon-user-circle:before{content:"\f2bd"}.icon-user-clock:before{content:"\f4fd"}.icon-user-cog:before{content:"\f4fe"}.icon-user-edit:before{content:"\f4ff"}.icon-user-friends:before{content:"\f500"}.icon-user-graduate:before{content:"\f501"}.icon-user-injured:before{content:"\f728"}.icon-user-lock:before{content:"\f502"}.icon-user-md:before{content:"\f0f0"}.icon-user-minus:before{content:"\f503"}.icon-user-ninja:before{content:"\f504"}.icon-user-nurse:before{content:"\f82f"}.icon-user-plus:before{content:"\f234"}.icon-user-secret:before{content:"\f21b"}.icon-user-shield:before{content:"\f505"}.icon-user-slash:before{content:"\f506"}.icon-user-tag:before{content:"\f507"}.icon-user-tie:before{content:"\f508"}.icon-user-times:before{content:"\f235"}.icon-users:before{content:"\f0c0"}.icon-users-cog:before{content:"\f509"}.icon-users-slash:before{content:"\e073"}.icon-usps:before{content:"\f7e1"}.icon-ussunnah:before{content:"\f407"}.icon-utensil-spoon:before{content:"\f2e5"}.icon-utensils:before{content:"\f2e7"}.icon-vaadin:before{content:"\f408"}.icon-vector-square:before{content:"\f5cb"}.icon-venus:before{content:"\f221"}.icon-venus-double:before{content:"\f226"}.icon-venus-mars:before{content:"\f228"}.icon-vest:before{content:"\e085"}.icon-vest-patches:before{content:"\e086"}.icon-viacoin:before{content:"\f237"}.icon-viadeo:before{content:"\f2a9"}.icon-viadeo-square:before{content:"\f2aa"}.icon-vial:before{content:"\f492"}.icon-vials:before{content:"\f493"}.icon-viber:before{content:"\f409"}.icon-video:before{content:"\f03d"}.icon-video-slash:before{content:"\f4e2"}.icon-vihara:before{content:"\f6a7"}.icon-vimeo:before{content:"\f40a"}.icon-vimeo-square:before{content:"\f194"}.icon-vimeo-v:before{content:"\f27d"}.icon-vine:before{content:"\f1ca"}.icon-virus:before{content:"\e074"}.icon-virus-slash:before{content:"\e075"}.icon-viruses:before{content:"\e076"}.icon-vk:before{content:"\f189"}.icon-vnv:before{content:"\f40b"}.icon-voicemail:before{content:"\f897"}.icon-volleyball-ball:before{content:"\f45f"}.icon-volume-down:before{content:"\f027"}.icon-volume-mute:before{content:"\f6a9"}.icon-volume-off:before{content:"\f026"}.icon-volume-up:before{content:"\f028"}.icon-vote-yea:before{content:"\f772"}.icon-vr-cardboard:before{content:"\f729"}.icon-vuejs:before{content:"\f41f"}.icon-walking:before{content:"\f554"}.icon-wallet:before{content:"\f555"}.icon-warehouse:before{content:"\f494"}.icon-watchman-monitoring:before{content:"\e087"}.icon-water:before{content:"\f773"}.icon-wave-square:before{content:"\f83e"}.icon-waze:before{content:"\f83f"}.icon-weebly:before{content:"\f5cc"}.icon-weibo:before{content:"\f18a"}.icon-weight:before{content:"\f496"}.icon-weight-hanging:before{content:"\f5cd"}.icon-weixin:before{content:"\f1d7"}.icon-whatsapp:before{content:"\f232"}.icon-whatsapp-square:before{content:"\f40c"}.icon-wheelchair:before{content:"\f193"}.icon-whmcs:before{content:"\f40d"}.icon-wifi:before{content:"\f1eb"}.icon-wikipedia-w:before{content:"\f266"}.icon-wind:before{content:"\f72e"}.icon-window-close:before{content:"\f410"}.icon-window-maximize:before{content:"\f2d0"}.icon-window-minimize:before{content:"\f2d1"}.icon-window-restore:before{content:"\f2d2"}.icon-windows:before{content:"\f17a"}.icon-wine-bottle:before{content:"\f72f"}.icon-wine-glass:before{content:"\f4e3"}.icon-wine-glass-alt:before{content:"\f5ce"}.icon-wix:before{content:"\f5cf"}.icon-wizards-of-the-coast:before{content:"\f730"}.icon-wodu:before{content:"\e088"}.icon-wolf-pack-battalion:before{content:"\f514"}.icon-won-sign:before{content:"\f159"}.icon-wordpress:before{content:"\f19a"}.icon-wordpress-simple:before{content:"\f411"}.icon-wpbeginner:before{content:"\f297"}.icon-wpexplorer:before{content:"\f2de"}.icon-wpforms:before{content:"\f298"}.icon-wpressr:before{content:"\f3e4"}.icon-wrench:before{content:"\f0ad"}.icon-x-ray:before{content:"\f497"}.icon-xbox:before{content:"\f412"}.icon-xing:before{content:"\f168"}.icon-xing-square:before{content:"\f169"}.icon-y-combinator:before{content:"\f23b"}.icon-yahoo:before{content:"\f19e"}.icon-yammer:before{content:"\f840"}.icon-yandex:before{content:"\f413"}.icon-yandex-international:before{content:"\f414"}.icon-yarn:before{content:"\f7e3"}.icon-yelp:before{content:"\f1e9"}.icon-yen-sign:before{content:"\f157"}.icon-yin-yang:before{content:"\f6ad"}.icon-yoast:before{content:"\f2b1"}.icon-youtube:before{content:"\f167"}.icon-youtube-square:before{content:"\f431"}.icon-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-glass:before{content:"\f000"}.icon.icon-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-o:before{content:"\f005"}.icon.icon-remove:before{content:"\f00d"}.icon.icon-close:before{content:"\f00d"}.icon.icon-gear:before{content:"\f013"}.icon.icon-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-trash-o:before{content:"\f2ed"}.icon.icon-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-o:before{content:"\f15b"}.icon.icon-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-clock-o:before{content:"\f017"}.icon.icon-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-down:before{content:"\f358"}.icon.icon-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-up:before{content:"\f35b"}.icon.icon-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-play-circle-o:before{content:"\f144"}.icon.icon-repeat:before{content:"\f01e"}.icon.icon-rotate-right:before{content:"\f01e"}.icon.icon-refresh:before{content:"\f021"}.icon.icon-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-dedent:before{content:"\f03b"}.icon.icon-video-camera:before{content:"\f03d"}.icon.icon-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-picture-o:before{content:"\f03e"}.icon.icon-photo{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-photo:before{content:"\f03e"}.icon.icon-image{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-image:before{content:"\f03e"}.icon.icon-pencil:before{content:"\f303"}.icon.icon-map-marker:before{content:"\f3c5"}.icon.icon-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-pencil-square-o:before{content:"\f044"}.icon.icon-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-share-square-o:before{content:"\f14d"}.icon.icon-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-check-square-o:before{content:"\f14a"}.icon.icon-arrows:before{content:"\f0b2"}.icon.icon-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-circle-o:before{content:"\f057"}.icon.icon-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-check-circle-o:before{content:"\f058"}.icon.icon-mail-forward:before{content:"\f064"}.icon.icon-expand:before{content:"\f424"}.icon.icon-compress:before{content:"\f422"}.icon.icon-eye{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-warning:before{content:"\f071"}.icon.icon-calendar:before{content:"\f073"}.icon.icon-arrows-v:before{content:"\f338"}.icon.icon-arrows-h:before{content:"\f337"}.icon.icon-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bar-chart:before{content:"\f080"}.icon.icon-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bar-chart-o:before{content:"\f080"}.icon.icon-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gears:before{content:"\f085"}.icon.icon-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-thumbs-o-up:before{content:"\f164"}.icon.icon-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-thumbs-o-down:before{content:"\f165"}.icon.icon-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-heart-o:before{content:"\f004"}.icon.icon-sign-out:before{content:"\f2f5"}.icon.icon-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linkedin-square:before{content:"\f08c"}.icon.icon-thumb-tack:before{content:"\f08d"}.icon.icon-external-link:before{content:"\f35d"}.icon.icon-sign-in:before{content:"\f2f6"}.icon.icon-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-lemon-o:before{content:"\f094"}.icon.icon-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-square-o:before{content:"\f0c8"}.icon.icon-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bookmark-o:before{content:"\f02e"}.icon.icon-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook:before{content:"\f39e"}.icon.icon-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-f:before{content:"\f39e"}.icon.icon-github{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-feed:before{content:"\f09e"}.icon.icon-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hdd-o:before{content:"\f0a0"}.icon.icon-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-right:before{content:"\f0a4"}.icon.icon-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-left:before{content:"\f0a5"}.icon.icon-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-up:before{content:"\f0a6"}.icon.icon-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-o-down:before{content:"\f0a7"}.icon.icon-arrows-alt:before{content:"\f31e"}.icon.icon-group:before{content:"\f0c0"}.icon.icon-chain:before{content:"\f0c1"}.icon.icon-scissors:before{content:"\f0c4"}.icon.icon-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-files-o:before{content:"\f0c5"}.icon.icon-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-floppy-o:before{content:"\f0c7"}.icon.icon-navicon:before{content:"\f0c9"}.icon.icon-reorder:before{content:"\f0c9"}.icon.icon-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus:before{content:"\f0d5"}.icon.icon-money{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-money:before{content:"\f3d1"}.icon.icon-unsorted:before{content:"\f0dc"}.icon.icon-sort-desc:before{content:"\f0dd"}.icon.icon-sort-asc:before{content:"\f0de"}.icon.icon-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linkedin:before{content:"\f0e1"}.icon.icon-rotate-left:before{content:"\f0e2"}.icon.icon-legal:before{content:"\f0e3"}.icon.icon-tachometer:before{content:"\f3fd"}.icon.icon-dashboard:before{content:"\f3fd"}.icon.icon-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-comment-o:before{content:"\f075"}.icon.icon-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-comments-o:before{content:"\f086"}.icon.icon-flash:before{content:"\f0e7"}.icon.icon-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paste{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paste:before{content:"\f328"}.icon.icon-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-lightbulb-o:before{content:"\f0eb"}.icon.icon-exchange:before{content:"\f362"}.icon.icon-cloud-download:before{content:"\f381"}.icon.icon-cloud-upload:before{content:"\f382"}.icon.icon-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bell-o:before{content:"\f0f3"}.icon.icon-cutlery:before{content:"\f2e7"}.icon.icon-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-text-o:before{content:"\f15c"}.icon.icon-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-building-o:before{content:"\f1ad"}.icon.icon-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hospital-o:before{content:"\f0f8"}.icon.icon-tablet:before{content:"\f3fa"}.icon.icon-mobile:before{content:"\f3cd"}.icon.icon-mobile-phone:before{content:"\f3cd"}.icon.icon-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-circle-o:before{content:"\f111"}.icon.icon-mail-reply:before{content:"\f3e5"}.icon.icon-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-folder-o:before{content:"\f07b"}.icon.icon-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-folder-open-o:before{content:"\f07c"}.icon.icon-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-smile-o:before{content:"\f118"}.icon.icon-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-frown-o:before{content:"\f119"}.icon.icon-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-meh-o:before{content:"\f11a"}.icon.icon-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-keyboard-o:before{content:"\f11c"}.icon.icon-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-flag-o:before{content:"\f024"}.icon.icon-mail-reply-all:before{content:"\f122"}.icon.icon-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-o:before{content:"\f089"}.icon.icon-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-empty:before{content:"\f089"}.icon.icon-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-star-half-full:before{content:"\f089"}.icon.icon-code-fork:before{content:"\f126"}.icon.icon-chain-broken:before{content:"\f127"}.icon.icon-shield:before{content:"\f3ed"}.icon.icon-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-o:before{content:"\f133"}.icon.icon-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ticket:before{content:"\f3ff"}.icon.icon-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-minus-square-o:before{content:"\f146"}.icon.icon-level-up:before{content:"\f3bf"}.icon.icon-level-down:before{content:"\f3be"}.icon.icon-pencil-square:before{content:"\f14b"}.icon.icon-external-link-square:before{content:"\f360"}.icon.icon-compass{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-down:before{content:"\f150"}.icon.icon-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-down:before{content:"\f150"}.icon.icon-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-up:before{content:"\f151"}.icon.icon-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-up:before{content:"\f151"}.icon.icon-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-right:before{content:"\f152"}.icon.icon-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-right:before{content:"\f152"}.icon.icon-eur:before{content:"\f153"}.icon.icon-euro:before{content:"\f153"}.icon.icon-gbp:before{content:"\f154"}.icon.icon-usd:before{content:"\f155"}.icon.icon-dollar:before{content:"\f155"}.icon.icon-inr:before{content:"\f156"}.icon.icon-rupee:before{content:"\f156"}.icon.icon-jpy:before{content:"\f157"}.icon.icon-cny:before{content:"\f157"}.icon.icon-rmb:before{content:"\f157"}.icon.icon-yen:before{content:"\f157"}.icon.icon-rub:before{content:"\f158"}.icon.icon-ruble:before{content:"\f158"}.icon.icon-rouble:before{content:"\f158"}.icon.icon-krw:before{content:"\f159"}.icon.icon-won:before{content:"\f159"}.icon.icon-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitcoin:before{content:"\f15a"}.icon.icon-file-text:before{content:"\f15c"}.icon.icon-sort-alpha-asc:before{content:"\f15d"}.icon.icon-sort-alpha-desc:before{content:"\f881"}.icon.icon-sort-amount-asc:before{content:"\f160"}.icon.icon-sort-amount-desc:before{content:"\f884"}.icon.icon-sort-numeric-asc:before{content:"\f162"}.icon.icon-sort-numeric-desc:before{content:"\f886"}.icon.icon-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-youtube-play:before{content:"\f167"}.icon.icon-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bitbucket-square:before{content:"\f171"}.icon.icon-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-long-arrow-down:before{content:"\f309"}.icon.icon-long-arrow-up:before{content:"\f30c"}.icon.icon-long-arrow-left:before{content:"\f30a"}.icon.icon-long-arrow-right:before{content:"\f30b"}.icon.icon-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-android{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gittip:before{content:"\f184"}.icon.icon-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sun-o:before{content:"\f185"}.icon.icon-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-moon-o:before{content:"\f186"}.icon.icon-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-right:before{content:"\f35a"}.icon.icon-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-arrow-circle-o-left:before{content:"\f359"}.icon.icon-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-caret-square-o-left:before{content:"\f191"}.icon.icon-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-toggle-left:before{content:"\f191"}.icon.icon-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-dot-circle-o:before{content:"\f192"}.icon.icon-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-try:before{content:"\f195"}.icon.icon-turkish-lira:before{content:"\f195"}.icon.icon-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-plus-square-o:before{content:"\f0fe"}.icon.icon-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-institution:before{content:"\f19c"}.icon.icon-bank:before{content:"\f19c"}.icon.icon-mortar-board:before{content:"\f19d"}.icon.icon-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-spoon:before{content:"\f2e5"}.icon.icon-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-automobile:before{content:"\f1b9"}.icon.icon-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-envelope-o:before{content:"\f0e0"}.icon.icon-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-pdf-o:before{content:"\f1c1"}.icon.icon-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-word-o:before{content:"\f1c2"}.icon.icon-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-excel-o:before{content:"\f1c3"}.icon.icon-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-powerpoint-o:before{content:"\f1c4"}.icon.icon-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-image-o:before{content:"\f1c5"}.icon.icon-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-photo-o:before{content:"\f1c5"}.icon.icon-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-picture-o:before{content:"\f1c5"}.icon.icon-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-archive-o:before{content:"\f1c6"}.icon.icon-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-zip-o:before{content:"\f1c6"}.icon.icon-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-audio-o:before{content:"\f1c7"}.icon.icon-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-sound-o:before{content:"\f1c7"}.icon.icon-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-video-o:before{content:"\f1c8"}.icon.icon-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-movie-o:before{content:"\f1c8"}.icon.icon-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-file-code-o:before{content:"\f1c9"}.icon.icon-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-bouy:before{content:"\f1cd"}.icon.icon-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-buoy:before{content:"\f1cd"}.icon.icon-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-life-saver:before{content:"\f1cd"}.icon.icon-support{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-support:before{content:"\f1cd"}.icon.icon-circle-o-notch:before{content:"\f1ce"}.icon.icon-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ra:before{content:"\f1d0"}.icon.icon-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-resistance:before{content:"\f1d0"}.icon.icon-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ge:before{content:"\f1d1"}.icon.icon-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-git{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator-square:before{content:"\f1d4"}.icon.icon-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc-square:before{content:"\f1d4"}.icon.icon-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wechat:before{content:"\f1d7"}.icon.icon-send:before{content:"\f1d8"}.icon.icon-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-paper-plane-o:before{content:"\f1d8"}.icon.icon-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-send-o:before{content:"\f1d8"}.icon.icon-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-circle-thin:before{content:"\f111"}.icon.icon-header:before{content:"\f1dc"}.icon.icon-sliders:before{content:"\f1de"}.icon.icon-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-futbol-o:before{content:"\f1e3"}.icon.icon-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-soccer-ball-o:before{content:"\f1e3"}.icon.icon-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-newspaper-o:before{content:"\f1ea"}.icon.icon-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-bell-slash-o:before{content:"\f1f6"}.icon.icon-trash:before{content:"\f2ed"}.icon.icon-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-eyedropper:before{content:"\f1fb"}.icon.icon-area-chart:before{content:"\f1fe"}.icon.icon-pie-chart:before{content:"\f200"}.icon.icon-line-chart:before{content:"\f201"}.icon.icon-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-cc:before{content:"\f20a"}.icon.icon-ils:before{content:"\f20b"}.icon.icon-shekel:before{content:"\f20b"}.icon.icon-sheqel:before{content:"\f20b"}.icon.icon-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-meanpath:before{content:"\f2b4"}.icon.icon-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-diamond:before{content:"\f3a5"}.icon.icon-intersex:before{content:"\f224"}.icon.icon-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-facebook-official:before{content:"\f09a"}.icon.icon-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-hotel:before{content:"\f236"}.icon.icon-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yc:before{content:"\f23b"}.icon.icon-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-battery-4:before{content:"\f240"}.icon.icon-battery:before{content:"\f240"}.icon.icon-battery-3:before{content:"\f241"}.icon.icon-battery-2:before{content:"\f242"}.icon.icon-battery-1:before{content:"\f243"}.icon.icon-battery-0:before{content:"\f244"}.icon.icon-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-sticky-note-o:before{content:"\f249"}.icon.icon-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-clone{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hourglass-o:before{content:"\f254"}.icon.icon-hourglass-1:before{content:"\f251"}.icon.icon-hourglass-2:before{content:"\f252"}.icon.icon-hourglass-3:before{content:"\f253"}.icon.icon-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-rock-o:before{content:"\f255"}.icon.icon-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-grab-o:before{content:"\f255"}.icon.icon-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-paper-o:before{content:"\f256"}.icon.icon-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-stop-o:before{content:"\f256"}.icon.icon-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-scissors-o:before{content:"\f257"}.icon.icon-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-lizard-o:before{content:"\f258"}.icon.icon-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-spock-o:before{content:"\f259"}.icon.icon-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-pointer-o:before{content:"\f25a"}.icon.icon-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-hand-peace-o:before{content:"\f25b"}.icon.icon-registered{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-television:before{content:"\f26c"}.icon.icon-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-plus-o:before{content:"\f271"}.icon.icon-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-minus-o:before{content:"\f272"}.icon.icon-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-times-o:before{content:"\f273"}.icon.icon-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-calendar-check-o:before{content:"\f274"}.icon.icon-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-map-o:before{content:"\f279"}.icon.icon-commenting:before{content:"\f4ad"}.icon.icon-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-commenting-o:before{content:"\f4ad"}.icon.icon-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-vimeo:before{content:"\f27d"}.icon.icon-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-credit-card-alt:before{content:"\f09d"}.icon.icon-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-pause-circle-o:before{content:"\f28b"}.icon.icon-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-stop-circle-o:before{content:"\f28d"}.icon.icon-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wheelchair-alt:before{content:"\f368"}.icon.icon-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-question-circle-o:before{content:"\f059"}.icon.icon-volume-control-phone:before{content:"\f2a0"}.icon.icon-asl-interpreting:before{content:"\f2a3"}.icon.icon-deafness:before{content:"\f2a4"}.icon.icon-hard-of-hearing:before{content:"\f2a4"}.icon.icon-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-signing:before{content:"\f2a7"}.icon.icon-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-official:before{content:"\f2b3"}.icon.icon-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-google-plus-circle:before{content:"\f2b3"}.icon.icon-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-fa:before{content:"\f2b4"}.icon.icon-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-handshake-o:before{content:"\f2b5"}.icon.icon-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-envelope-open-o:before{content:"\f2b6"}.icon.icon-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-address-book-o:before{content:"\f2b9"}.icon.icon-vcard:before{content:"\f2bb"}.icon.icon-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-address-card-o:before{content:"\f2bb"}.icon.icon-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-vcard-o:before{content:"\f2bb"}.icon.icon-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-user-circle-o:before{content:"\f2bd"}.icon.icon-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-user-o:before{content:"\f007"}.icon.icon-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-drivers-license:before{content:"\f2c2"}.icon.icon-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-id-card-o:before{content:"\f2c2"}.icon.icon-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-drivers-license-o:before{content:"\f2c2"}.icon.icon-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-thermometer-4:before{content:"\f2c7"}.icon.icon-thermometer:before{content:"\f2c7"}.icon.icon-thermometer-3:before{content:"\f2c8"}.icon.icon-thermometer-2:before{content:"\f2c9"}.icon.icon-thermometer-1:before{content:"\f2ca"}.icon.icon-thermometer-0:before{content:"\f2cb"}.icon.icon-bathtub:before{content:"\f2cd"}.icon.icon-s15:before{content:"\f2cd"}.icon.icon-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-rectangle:before{content:"\f410"}.icon.icon-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-window-close-o:before{content:"\f410"}.icon.icon-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-times-rectangle-o:before{content:"\f410"}.icon.icon-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-eercast:before{content:"\f2da"}.icon.icon-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.icon.icon-snowflake-o:before{content:"\f2dc"}.icon.icon-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.icon.icon-cab:before{content:"\f1ba"}#modx-navbar #modx-topnav{margin-left:auto;margin-right:auto;max-width:1200px}#modx-navbar #modx-topnav::after{clear:both;content:"";display:block}#modx-footer .modx-subnav li.sub:after,#modx-leftbar-header a:after,.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.crumb_wrapper .crumbs li.first:before,.ext-mb-icon:before,.home-panel ol li:hover button:before,.icon,.icon-3gp:before,.icon-7z:before,.icon-aac:before,.icon-access:before,.icon-aif:before,.icon-aiff:before,.icon-as:before,.icon-avi:before,.icon-backup:before,.icon-bak:before,.icon-bat:before,.icon-bk:before,.icon-bmp:before,.icon-bz2:before,.icon-cal:before,.icon-cfm:before,.icon-coffeescript:before,.icon-css:before,.icon-csv:before,.icon-db:before,.icon-dmg:before,.icon-doc:before,.icon-docx:before,.icon-fla:before,.icon-flac:before,.icon-flv:before,.icon-folder:before,.icon-gif:before,.icon-gz:before,.icon-htaccess:before,.icon-htm:before,.icon-html:before,.icon-ical:before,.icon-ics:before,.icon-iso:before,.icon-jar:before,.icon-java:before,.icon-jpeg:before,.icon-jpg:before,.icon-js:before,.icon-json:before,.icon-less:before,.icon-lock,.icon-log:before,.icon-m4a:before,.icon-m4v:before,.icon-mov:before,.icon-mp3:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-ogg:before,.icon-pdf:before,.icon-php:before,.icon-png:before,.icon-ppt:before,.icon-pptx:before,.icon-rar:before,.icon-rb:before,.icon-rss:before,.icon-scr:before,.icon-scss:before,.icon-sh:before,.icon-sql:before,.icon-styl:before,.icon-svg:before,.icon-swf:before,.icon-tar:before,.icon-tgz:before,.icon-tiff:before,.icon-txt:before,.icon-vcs:before,.icon-wav:before,.icon-wma:before,.icon-wmv:before,.icon-xls:before,.icon-xlsx:before,.icon-xml:before,.icon-zip:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.locked-resource:before,.modx-browser-detail-thumb.preview:before,.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before,.modx-header-breadcrumbs ul li:after,.modx-manager-search-results .loading-indicator:before,.modx-status-msg:after,.parent-resource:before,.tree-context:before,.tree-new-category>em>button:before,.tree-new-chunk>em>button:before,.tree-new-plugin>em>button:before,.tree-new-resource>em>button:before,.tree-new-snippet>em>button:before,.tree-new-static-resource>em>button:before,.tree-new-symlink>em>button:before,.tree-new-template>em>button:before,.tree-new-tv>em>button:before,.tree-new-weblink>em>button:before,.tree-resource:before,.tree-static-resource:before,.tree-symlink:before,.tree-trash>em>button:before,.tree-weblink:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.icon-file_manager button:before,.x-btn-icon.icon-file_upload button:before,.x-btn-icon.icon-folder button:before,.x-btn-icon.icon-page_white button:before,.x-btn-icon.refresh button:before,.x-date-left a:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before,.x-form-field-wrap .x-form-trigger:before,.x-form-invalid-msg:before,.x-form-item label.x-form-item-label .modx-tv-reset:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before,.x-grid-group-hd div.x-grid-group-title:before,.x-grid3-check-col-on:before,.x-grid3-check-col:before,.x-grid3-hd-btn:before,.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before,.x-grid3-row-collapsed .x-grid3-row-expander:before,.x-grid3-row-expanded .x-grid3-row-expander:before,.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before,.x-tab-scroller-left:before,.x-tab-scroller-right:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before,.x-tool:after,.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before,.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free','Font Awesome 5 Brands';font-weight:900}.crumb_wrapper .crumbs li.first:before,.x-btn-icon.arrow_down button:before,.x-btn-icon.arrow_up button:before,.x-btn-icon.refresh button:before,.x-tbar-loading:before,.x-tbar-page-first:before,.x-tbar-page-last:before,.x-tbar-page-next:before,.x-tbar-page-prev:before{position:absolute;top:0;left:0;right:0;bottom:0;line-height:100%;width:100%;height:100%;font-size:14px;color:inherit;text-align:center}#modx-tv-tabs:after,#modx-tv-tabs:before{content:" ";display:table}#modx-tv-tabs:after{clear:both}.x-splitbar-proxy{background-color:#aaa}.x-color-palette a{border-color:#fff}.x-color-palette a.x-color-palette-sel,.x-color-palette a:hover{background-color:#ebebeb;border-color:#b4b4b4}.x-color-palette em{border-color:#aca899}.loading-indicator{background-image:url(../images/modx-theme/grid/loading.gif);font-size:11px}.x-spotlight{background-color:#ccc}.ext-ie7 .x-plain-body{position:relative}.x-statusbar .x-status-busy{background-image:url(../images/modx-theme/grid/loading.gif)}.x-statusbar .x-status-text-panel{border-color:#dfdfdf #fff #fff #dfdfdf}.x-resizable-handle-southeast{bottom:1px;right:1px}.x-resizable-over .x-resizable-handle-east,.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-west{background-image:url(../images/modx-theme/sizer/e-handle.gif)}.x-resizable-over .x-resizable-handle-north,.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-south{background-image:url(../images/modx-theme/sizer/s-handle.gif)}.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background-image:url(../images/modx-theme/sizer/s-handle.gif)}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background-image:url(../images/modx-theme/sizer/se-handle.gif)}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background-image:url(../images/modx-theme/sizer/nw-handle.gif)}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background-image:url(../images/modx-theme/sizer/ne-handle.gif)}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background-image:url(../images/modx-theme/sizer/sw-handle.gif)}.x-resizable-proxy{border-color:#575757}.x-resizable-overlay{background-color:#fff}.x-grid3{background-color:transparent;background-image:none;border:1px solid #e4e9ee;border-radius:3px;overflow:hidden;padding:0}.x-grid-panel .x-panel-mc .x-panel-body{border:0 none}.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-grid3-row td,.x-grid3-summary-row td{border-left:1px solid transparent;padding-left:0}.x-grid3-hd-row td{border-left:1px solid #fff;border-right:none}.x-grid3-hd-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-cell-first,.x-grid3-row td.x-grid3-summary-first{border-left:0 none}.x-grid3-hd-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-cell-last,.x-grid3-row td.x-grid3-summary-last{border-right:0 none}.x-grid-row-loading{background-color:#fff;background-image:url(../images/modx-theme/shared/loading-balls.gif)}.x-grid3-row{border-color:#fff #fff #efefef}.x-grid3-row-expanded .x-grid3-row-body{color:#888;margin:0 2px 0 -20px;padding:0 25px 15px;word-wrap:break-word}.x-grid3-row-expanded .x-grid3-row-body .desc{word-wrap:break-word}.x-grid3-row-alt{background-color:#f5f6f9}.x-panel-body-noheader .x-grid3-row{border-color:transparent}.x-panel-body-noheader .x-grid3-row-alt{border-bottom:1px solid #eaeaea;border-top:1px solid #eaeaea}.x-panel-body-noheader .x-grid3-row-alt .x-grid3-row-table{border-top:1px solid transparent}.x-grid3-row-over{background-color:#e0e8ef;background-image:none;border-bottom:1px solid #d1d9df}.x-grid3-resize-proxy{background-color:#777}.x-grid3-resize-marker{background-color:#777}.x-grid3-header{background:#fff;border-bottom:1px solid #e4e9ee!important;padding:0}.x-panel-body-noheader .x-grid3-header{border:none}.x-grid3-header-offset{padding-left:0}.x-grid3-header .x-grid3-hd-row td{color:#696969;font-weight:700}.x-grid3-header-pop{border-left-color:#dfdfdf}.x-grid3-header-pop-inner{background-image:url(../images/modx-theme/grid/hd-pop.gif);border-left-color:#eee}td.sort-asc,td.sort-desc,td.x-grid3-hd-menu-open,td.x-grid3-hd-over{border-left-color:#fff;background:#fff}td.sort-asc .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner,td.x-grid3-hd-over .x-grid3-hd-inner{color:#696969}.sort-asc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_asc.gif)}.sort-desc .x-grid3-sort-icon{background-image:url(../images/modx-theme/grid/sort_desc.gif)}.x-panel-body-noheader .x-grid3-body{background-color:#fff}.x-grid3-cell-text,.x-grid3-hd-text{color:#515151}.x-grid3-split{background-image:url(../images/modx-theme/grid/grid-split.gif)}.x-grid3-hd-text{color:#464646}.x-dd-drag-proxy .x-grid3-hd-inner{background-color:#f2f2f2;background-image:url(../images/modx-theme/grid/grid3-hrow-over.gif);border-color:#c8c8c8}.col-move-top{background-image:url(../images/modx-theme/grid/col-move-top.gif)}.col-move-bottom{background-image:url(../images/modx-theme/grid/col-move-bottom.gif)}.x-grid3-row-selected{background-color:#f0f0f0;background-image:none;border-bottom:1px solid #e4e4e4!important;border-top:1px solid #e4e4e4!important;color:#565550}.x-grid3-row-last,.x-grid3-row-last .x-grid3-row-selected{border-bottom-color:transparent!important}.x-grid3-cell-selected{background-color:#e0eaef!important;color:#515151}.x-grid3-cell-selected span{color:#515151!important}.x-grid3-cell-selected .x-grid3-cell-text{color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker,.x-grid3-locked td.x-grid3-row-marker{background-color:#d7d9df!important;background-image:url(../images/modx-theme/grid/grid-hrow.gif)!important;border-right-color:#9c9c9c!important;border-top-color:#fff;color:#515151}.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div,.x-grid3-locked td.x-grid3-row-marker div{color:#464646!important}.x-grid3-dirty-cell{background-image:url(../images/modx-theme/grid/dirty.gif)}.x-grid3-bottombar,.x-grid3-topbar{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-grid3-bottombar .x-toolbar{border-top-color:#bcbcbc}.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)!important;color:#515151!important}.x-grid3-hd-inner{font-weight:700;padding:13px 18px 13px 5px}.ext-ie .x-grid3-hd-inner{width:auto}.x-grid3-cell-inner,.x-grid3-hd-inner{padding:13px 18px 13px 5px}.x-props-grid .x-grid3-body .x-grid3-td-name{background-color:#fff!important;border-right-color:#eee}.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-asc.gif)}.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-desc.gif)}.xg-hmenu-lock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-lock.gif)}.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../images/modx-theme/grid/hmenu-unlock.gif)}.x-grid3-hd-btn{background-color:#fff}.x-grid3-hd-btn:before{content:"\f0d7";font-weight:900;font-style:normal;color:#77899f;font-size:14px;text-align:center;position:absolute;top:14px;left:0;right:0}.x-grid3-hd-btn:hover{background-color:#fff}.x-grid3-body .x-grid3-td-expander{background-image:none;text-align:right}.x-grid3-row-collapsed .x-grid3-row-expander{height:27px;margin-top:14px}.x-grid3-row-collapsed .x-grid3-row-expander:before{content:"\f0fe";font-weight:400;font-size:14px;color:#53595f}.x-grid3-row-expanded .x-grid3-row-expander{height:27px;margin-top:14px}.x-grid3-row-expanded .x-grid3-row-expander:before{content:"\f146";font-weight:400;font-size:14px;color:#53595f}.x-grid3-body .x-grid3-td-checker{background-image:none;padding:10px 0 0}.x-grid3-hd-checker:not(.x-grid3-hd-inner),.x-grid3-row-checker{cursor:pointer}.x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-checker:before{content:"\f0c8";font-weight:400;font-size:14px;display:inline-block;padding:3px 5px;color:#53595f}.x-grid3-hd-checker-on .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-hd-checker-on .x-grid3-row-checker:before,.x-grid3-row-selected .x-grid3-hd-checker:not(.x-grid3-hd-inner):before,.x-grid3-row-selected .x-grid3-row-checker:before{content:"\f14a";font-weight:400}.x-grid3-body .x-grid3-td-numberer{background-color:#e5e5e5;border-bottom:1px solid #dadada;border-right:1px solid #dadada!important}.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{color:#444;padding-left:10px;padding-top:10px!important}.x-grid3-body .x-grid3-td-row-icon{background-image:url(../images/modx-theme/grid/grid3-special-col-bg.gif)}.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander,.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer{background-image:none}.x-grid3-check-col{cursor:pointer;margin-top:10px}.x-grid3-check-col:before{content:"\f0c8";font-weight:400;font-size:14px;display:block;padding:3px 5px;color:#53595f;text-align:left;width:14px;margin:0 auto}.x-grid3-check-col-on{cursor:pointer;margin-top:10px}.x-grid3-check-col-on:before{content:"\f14a";font-weight:400;font-size:14px;display:block;padding:3px 5px;color:#53595f;text-align:left;width:14px;margin:0 auto}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1}.x-grid-group-hd{border-bottom-color:#53595f}.x-grid-group-hd div.x-grid-group-title{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;font-size:12px;font-weight:700;padding:8px 4px 12px 5px}.x-grid-group-hd div.x-grid-group-title:before{content:"\f146";font-weight:400;font-size:14px;font-style:normal;margin-right:10px}.x-grid-group-collapsed .x-grid-group-hd div.x-grid-group-title:before{content:"\f0fe";font-weight:400;font-style:normal;margin-right:10px}.x-group-by-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-cols-icon{background-image:url(../images/modx-theme/grid/columns.gif)}.x-show-groups-icon{background-image:url(../images/modx-theme/grid/group-by.gif)}.x-grid-empty{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;text-align:center}.x-grid-with-col-lines .x-grid3-row td.x-grid3-cell{border-right-color:#ededed}.x-grid-with-col-lines .x-grid3-row{border-left:0 none;border-top:0 none}.x-grid-with-col-lines .x-grid3-row-selected{border-top-color:#e4e4e4}.x-dd-drag-ghost{background-color:#fff;border-color:#ddd #bbb #bbb #dfdfdf;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-no.gif)}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-yes.gif)}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../images/modx-theme/dd/drop-add.gif)}.x-view-selector{background-color:#d8d8d8;border-color:#8d8d8d}.x-tip{background:#575757;border-radius:3px;padding:5px;width:auto!important;max-width:400px;min-width:200px}.x-tip .x-tip-close{background-image:url(../images/modx-theme/qtip/close.gif)}.x-tip .x-tip-bc,.x-tip .x-tip-bl,.x-tip .x-tip-br,.x-tip .x-tip-ml,.x-tip .x-tip-mr,.x-tip .x-tip-tc,.x-tip .x-tip-tl,.x-tip .x-tip-tr{background-image:none}.x-tip .x-tip-mc{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-tip .x-tip-ml{background-color:transparent}.x-tip .x-tip-header-text{color:#f0f0f0;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-tip .x-tip-body{color:#f0f0f0;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;width:auto!important}.x-tip img{display:block;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.x-form-invalid-tip .x-tip-bc,.x-form-invalid-tip .x-tip-bl,.x-form-invalid-tip .x-tip-br,.x-form-invalid-tip .x-tip-ml,.x-form-invalid-tip .x-tip-mr,.x-form-invalid-tip .x-tip-tc,.x-form-invalid-tip .x-tip-tl,.x-form-invalid-tip .x-tip-tr{background-image:url(../images/modx-theme/form/error-tip-corners.gif)}.x-form-invalid-tip .x-tip-body{background-image:url(../images/modx-theme/form/exclamation.gif)}.x-tip-anchor{background-image:url(../images/modx-theme/qtip/tip-anchor-sprite.gif)}.x-menu{background-color:#fff;border:1px solid #e4e4e4;border-radius:3px;box-shadow:0 4px 6px rgba(0,0,0,.15)}.x-menu-list{padding:0}.x-menu-list li{border:0;margin:0;padding:0}.x-menu-list li:first-child{margin-top:3px}.x-menu-list li:last-child{margin-bottom:3px}.x-menu-list li.x-menu-date-item{margin:0}.x-menu-list li a.x-menu-item{color:#515151;font-size:13px;padding:3px 21px 3px 27px}.x-menu-list li a.x-menu-item:hover{color:#515151}.x-menu-list li.x-menu-item-active{background-color:#f0f0f0}.x-menu-list li.x-menu-item-active a{color:#515151}.x-menu-floating{border-color:#c7c7c7}.x-menu-nosep{background-image:none}.x-menu-list-item{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-menu-item-arrow{background-image:url(../images/modx-theme/menu/menu-parent.gif)}.x-menu-sep{background-color:#e4e4e4;border-bottom:none;margin:2px 0}.x-menu-item-active a.x-menu-item{border:0 none;margin:0}.x-menu-check-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/unchecked.gif)}.x-menu-item-checked .x-menu-item-icon{background-image:url(../images/modx-theme/menu/checked.gif)}.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background-image:url(../images/modx-theme/menu/group-checked.gif)}.x-menu-group-item .x-menu-item-icon{background-image:none}.x-menu-plain{background-color:#fff!important}.x-cycle-menu .x-menu-item-checked{background-color:#dfdfdf;border-color:#b9b9b9!important}.x-menu-scroller-top{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-menu-scroller-bottom{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-box-ml,.x-box-tl{background-color:#fafafa;background-image:none;color:#393939;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-box-mc p{font-weight:400;margin-bottom:5px}.x-box-tl{background-color:rgba(250,250,250,.8);border-left:1px solid #dedede;border-right:1px solid #dedede;border-top:1px solid #dedede}.x-box-ml{background-color:rgba(250,250,250,.8);border-left:1px solid #dedede;border-right:1px solid #dedede}.x-box-bl{background-color:rgba(230,230,230,.8);border-bottom:1px solid #dedede;border-left:1px solid #dedede;border-right:1px solid #dedede}.x-box-mc h3{font-size:14px;font-weight:700}.x-box-bc,.x-box-bl,.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr,.x-box-br,.x-box-mr{background-image:none}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../images/modx-theme/box/tb-gray.gif)}.x-box-blue .x-box-mc{background-color:#d8d8d8}.x-box-blue .x-box-mc h3{color:#363636}.x-box-blue .x-box-ml{background-image:url(../images/modx-theme/box/l-gray.gif)}.x-box-blue .x-box-mr{background-image:url(../images/modx-theme/box/r-gray.gif)}#x-debug-browser .x-tree .x-tree-node a span{color:#333;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:11px}#x-debug-browser .x-tree a i{color:#cf1124;font-style:normal}#x-debug-browser .x-tree a em{color:#999}#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background-color:#d8d8d8}.x-panel-bwrap{overflow:visible}.x-panel-body{border:0;border-radius:3px;overflow:visible}#modx-panel-packages-browser .x-panel-body{border-radius:0}.x-grid-panel .x-panel-body{background-color:#f5f5f5;border-bottom:1px solid #e4e4e4;border-top:1px solid #fafafa;border:0 none}.x-grid-panel .x-panel-body-noheader{background-color:transparent;border:0 none;padding:0!important}.x-panel-tl .x-panel-header{color:#6a6a6a;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-panel-tl .x-panel-icon{background-position:0 8px}.x-panel-tc{background-image:none}.x-panel-bl,.x-panel-br,.x-panel-tl,.x-panel-tr{background-image:none;border-bottom-color:#dfdfdf}.x-panel-bc{background-image:none}.x-panel-tc{background-color:#f5f5f5}.x-panel-tl{border-color:#e3e3e3 #e3e3e3;border-style:solid solid none;border-width:1px 1px 0}.x-panel-tl .x-panel-header{border-bottom:1px solid #e4e4e4;padding:10px 0}.x-panel-bc .x-panel-footer{padding-bottom:0}.x-panel-btns{background-color:transparent;padding:15px 0 1px 0}.x-panel-btns td.x-toolbar-cell{padding:0}.x-panel-mc{background-color:#f5f5f5;border-bottom:1px solid #dfdfdf;border-top:1px solid #fafafa;padding:10px 5px}.x-panel-bl,.x-panel-ml,.x-panel-tl{background-color:#f5f5f5;padding-left:8px}.x-panel-ml,.x-panel-mr{background-image:none}.x-panel-bl{border-color:#e3e3e3 #e3e3e3;border-style:none solid solid;border-width:0 1px 1px;padding-bottom:8px}.x-panel-ml{border-left:1px solid #e3e3e3;border-right:1px solid #e3e3e3}.x-panel-mr{padding-right:8px}.x-panel-br,.x-panel-mr,.x-panel-tr{background-color:#f7f7f7}.x-tool{background:0 0;border-radius:50%;color:#515151;font-size:14px;margin:0 3px 0 0;position:relative;transition:all .3s;width:18px;height:18px}.x-tool:after{box-sizing:border-box;padding-top:2px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-tool:hover{color:#fff;background:#234368}.x-tool.x-tool-toggle:after{content:"\f077";padding-top:2px}.x-tool.x-tool-toggle-over:after,.x-tool.x-tool-toggle:hover:after{content:"\f077"}.x-panel-collapsed .x-tool.x-tool-toggle:after{content:"\f078";padding-top:3px}.x-panel-collapsed .x-tool.x-tool-toggle-over:after,.x-panel-collapsed .x-tool.x-tool-toggle:hover:after{content:"\f078";padding-top:3px}.x-tool.x-tool-close:after{content:"\f00d"}.x-tool.x-tool-minimize:after{content:"\f066"}.x-tool.x-tool-maximize:after{content:"\f065"}.x-tool.x-tool-restore:after{content:"\f066"}.x-tool.x-tool-gear:after{content:"\f013"}.x-tool.x-tool-pin:after{content:"\f111"}.x-tool.x-tool-pin-over:after,.x-tool.x-tool-pin:hover:after{content:"\f192"}.x-tool.x-tool-unpin:after{content:"\f192"}.x-tool.x-tool-unpin-over:after,.x-tool.x-tool-unpin:hover:after{content:"\f111"}.x-tool.x-tool-right:after{content:"\f054";padding-left:1px}.x-tool.x-tool-left:after{content:"\f053";padding-right:2px}.x-tool.x-tool-up:after{content:"\f077";padding-top:1px}.x-tool.x-tool-down:after{content:"\f078";padding-top:1px}.x-tool.x-tool-minus:after{content:"\f068"}.x-tool.x-tool-plus:after{content:"\f067"}.x-panel-dd-spacer{border-color:#dfdfdf}.x-panel-fbar div,.x-panel-fbar input,.x-panel-fbar label,.x-panel-fbar select,.x-panel-fbar span,.x-panel-fbar td{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-panel-header{border-radius:3px 3px 0 0;border:1px solid silver;font-size:14px;font-weight:700;margin-top:0;padding:10px 10px 8px}.x-portal-space{border-bottom:1px solid #afafaf;padding:0}.x-column-inner{overflow:visible}.x-column-inner>.x-column{margin-right:0;overflow:visible}.x-column-inner>.x-column:not(.x-hide-display)~.x-column{margin-right:0;margin-left:15px}.x-panel-nofooter .x-panel-bc{background-image:none;height:0}.x-panel-ghost{background-color:#dbdbdb}.x-panel-ghost ul{border-color:#d0d0d0}.x-panel-dd-spacer{border-color:#d0d0d0}.x-dlg-mask{background-color:#ccc}.x-html-editor-wrap{background-color:#fff;border-color:#bcbcbc}.x-panel-noborder .x-panel-header-noborder{border-bottom-color:transparent}.x-border-layout-ct{background-color:#fafafa}.x-accordion-hd{background-image:url(../images/modx-theme/panel/light-hd.gif);color:#222;font-weight:400}.x-layout-collapsed{background-color:#e4e4e4;border-color:#dfdfdf;width:7px!important}.x-layout-collapsed-over{background-color:#e6e6e6}.x-layout-split-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-split-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-split-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-layout-split-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-west .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-right.gif)}.x-layout-cmini-east .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-left.gif)}.x-layout-cmini-north .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-bottom.gif)}.x-layout-cmini-south .x-layout-mini{background-image:url(../images/modx-theme/layout/mini-top.gif)}.x-list-header{background-color:#f9f9f9;background-image:url(../images/modx-theme/grid/grid3-hrow.gif)}.x-list-header-inner div em{border-left-color:#dfdfdf;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-list-body dt em{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-list-over{background-color:#eee}.x-list-selected{background-color:#e7e7e7}.x-list-resizer{border-left-color:#555;border-right-color:#555}.x-list-header-inner em.sort-asc,.x-list-header-inner em.sort-desc{background-image:url(../images/modx-theme/grid/sort-hd.gif);border-color:#dfdfdf}.x-slider-horz,.x-slider-horz .x-slider-end,.x-slider-horz .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-bg.png)}.x-slider-horz .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-thumb.png)}.x-slider-vert,.x-slider-vert .x-slider-end,.x-slider-vert .x-slider-inner{background-image:url(../images/modx-theme/slider/slider-v-bg.png)}.x-slider-vert .x-slider-thumb{background-image:url(../images/modx-theme/slider/slider-v-thumb.png)}.x-portal .x-panel-tl .x-panel-header{background:0 0;font-size:14px;padding:8px 0 8px 0}.x-portal .x-tool{margin-top:0}.x-portal .x-panel-body{font-weight:400;margin-bottom:5px;padding:0;text-transform:none}.x-portal-space{margin-bottom:5px}.x-grid3-body .x-grid3-td-checker{background-image:none!important}.modx-combo-desc{color:#515151;font-size:.9em;font-style:italic}.modx-combo-title{font-weight:700}.modx-grid-draggable .x-grid3-row{cursor:move}.actions button.primary-button,.primary-button.inline-button,.primary-button.x-btn,.primary-button.x-date-mp-cancel,.primary-button.x-date-mp-ok,.primary-button.x-form-trigger,.primary-button.x-superboxselect-item{transition:background-color .2s ease-out;background:#6cb24a;box-shadow:none;color:#fff}.actions button.primary-button:hover,.actions button.x-btn-focus.primary-button,.actions button.x-btn-over.primary-button,.primary-button.inline-button:hover,.primary-button.x-btn:hover,.primary-button.x-date-mp-cancel:hover,.primary-button.x-date-mp-ok:hover,.primary-button.x-form-trigger:hover,.primary-button.x-superboxselect-item:hover,.x-btn-focus.primary-button.inline-button,.x-btn-focus.primary-button.x-btn,.x-btn-focus.primary-button.x-date-mp-cancel,.x-btn-focus.primary-button.x-date-mp-ok,.x-btn-focus.primary-button.x-form-trigger,.x-btn-focus.primary-button.x-superboxselect-item,.x-btn-over.primary-button.inline-button,.x-btn-over.primary-button.x-btn,.x-btn-over.primary-button.x-date-mp-cancel,.x-btn-over.primary-button.x-date-mp-ok,.x-btn-over.primary-button.x-form-trigger,.x-btn-over.primary-button.x-superboxselect-item{background:#528738;box-shadow:none;color:#fff}.actions button.primary-button:active,.actions button.x-btn-click.primary-button,.primary-button.inline-button:active,.primary-button.x-btn:active,.primary-button.x-date-mp-cancel:active,.primary-button.x-date-mp-ok:active,.primary-button.x-form-trigger:active,.primary-button.x-superboxselect-item:active,.x-btn-click.primary-button.inline-button,.x-btn-click.primary-button.x-btn,.x-btn-click.primary-button.x-date-mp-cancel,.x-btn-click.primary-button.x-date-mp-ok,.x-btn-click.primary-button.x-form-trigger,.x-btn-click.primary-button.x-superboxselect-item{background:#385c26;box-shadow:none;color:#fff}.actions button.x-item-disabled.primary-button,.actions button.x-item-disabled.primary-button:active,.actions button.x-item-disabled.primary-button:hover,.x-item-disabled.primary-button.inline-button,.x-item-disabled.primary-button.inline-button:active,.x-item-disabled.primary-button.inline-button:hover,.x-item-disabled.primary-button.x-btn,.x-item-disabled.primary-button.x-btn:active,.x-item-disabled.primary-button.x-btn:hover,.x-item-disabled.primary-button.x-date-mp-cancel,.x-item-disabled.primary-button.x-date-mp-cancel:active,.x-item-disabled.primary-button.x-date-mp-cancel:hover,.x-item-disabled.primary-button.x-date-mp-ok,.x-item-disabled.primary-button.x-date-mp-ok:active,.x-item-disabled.primary-button.x-date-mp-ok:hover,.x-item-disabled.primary-button.x-form-trigger,.x-item-disabled.primary-button.x-form-trigger:active,.x-item-disabled.primary-button.x-form-trigger:hover,.x-item-disabled.primary-button.x-superboxselect-item,.x-item-disabled.primary-button.x-superboxselect-item:active,.x-item-disabled.primary-button.x-superboxselect-item:hover{background:#6cb24a;box-shadow:none;color:#fff;opacity:.6}.actions button,.inline-button,.x-btn,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{background-color:#fff;background-repeat:no-repeat;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;color:#515151;cursor:pointer;display:inline-block;line-height:1;padding:10px 15px 10px 15px;position:relative;text-decoration:none;transition:background-color .2s ease-out;zoom:1}.actions .ext-webkit button em,.ext-webkit .actions button em,.ext-webkit .inline-button em,.ext-webkit .x-btn em,.ext-webkit .x-date-mp-cancel em,.ext-webkit .x-date-mp-ok em,.ext-webkit .x-form-trigger em,.ext-webkit .x-superboxselect-item em{font-size:0}.actions button button,.inline-button button,.x-btn button,.x-date-mp-cancel button,.x-date-mp-ok button,.x-date-picker .x-btn button,.x-form-trigger button,.x-superboxselect-item button{background-repeat:no-repeat;color:inherit;cursor:pointer;font-size:13px;font-style:normal;line-height:1;height:16px;min-width:100%;padding:0}.actions .ext-ie8 button button,.ext-ie8 .actions button button,.ext-ie8 .inline-button button,.ext-ie8 .x-btn button,.ext-ie8 .x-date-mp-cancel button,.ext-ie8 .x-date-mp-ok button,.ext-ie8 .x-form-trigger button,.ext-ie8 .x-superboxselect-item button{padding-top:0}.actions button .x-btn-arrow,.actions button .x-btn-split,.inline-button .x-btn-arrow,.inline-button .x-btn-split,.x-btn .x-btn-arrow,.x-btn .x-btn-split,.x-date-mp-cancel .x-btn-arrow,.x-date-mp-cancel .x-btn-split,.x-date-mp-ok .x-btn-arrow,.x-date-mp-ok .x-btn-split,.x-date-picker .x-btn .x-btn-arrow,.x-date-picker .x-btn .x-btn-split,.x-form-trigger .x-btn-arrow,.x-form-trigger .x-btn-split,.x-superboxselect-item .x-btn-arrow,.x-superboxselect-item .x-btn-split{display:block;padding-right:20px;position:relative}.actions button .x-btn-arrow:before,.actions button .x-btn-split:before,.inline-button .x-btn-arrow:before,.inline-button .x-btn-split:before,.x-btn .x-btn-arrow:before,.x-btn .x-btn-split:before,.x-date-mp-cancel .x-btn-arrow:before,.x-date-mp-cancel .x-btn-split:before,.x-date-mp-ok .x-btn-arrow:before,.x-date-mp-ok .x-btn-split:before,.x-form-trigger .x-btn-arrow:before,.x-form-trigger .x-btn-split:before,.x-superboxselect-item .x-btn-arrow:before,.x-superboxselect-item .x-btn-split:before{color:inherit;content:"\f0d7";font-size:14px;margin-top:0;position:absolute;top:50%;right:0}.actions button .x-btn-arrow button,.actions button .x-btn-split button,.inline-button .x-btn-arrow button,.inline-button .x-btn-split button,.x-btn .x-btn-arrow button,.x-btn .x-btn-split button,.x-date-mp-cancel .x-btn-arrow button,.x-date-mp-cancel .x-btn-split button,.x-date-mp-ok .x-btn-arrow button,.x-date-mp-ok .x-btn-split button,.x-form-trigger .x-btn-arrow button,.x-form-trigger .x-btn-split button,.x-superboxselect-item .x-btn-arrow button,.x-superboxselect-item .x-btn-split button{border-right-color:inherit;border-right-style:solid;border-right-width:1px;padding-right:10px}.actions button.x-btn-focus,.actions button.x-btn-over,.actions button:focus,.actions button:hover,.inline-button:focus,.inline-button:hover,.x-btn-focus.inline-button,.x-btn-focus.x-btn,.x-btn-focus.x-date-mp-cancel,.x-btn-focus.x-date-mp-ok,.x-btn-focus.x-form-trigger,.x-btn-focus.x-superboxselect-item,.x-btn-over.inline-button,.x-btn-over.x-btn,.x-btn-over.x-date-mp-cancel,.x-btn-over.x-date-mp-ok,.x-btn-over.x-form-trigger,.x-btn-over.x-superboxselect-item,.x-btn:focus,.x-btn:hover,.x-date-mp-cancel:focus,.x-date-mp-cancel:hover,.x-date-mp-ok:focus,.x-date-mp-ok:hover,.x-form-trigger:focus,.x-form-trigger:hover,.x-superboxselect-item:focus,.x-superboxselect-item:hover{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.actions button.x-btn-click,.actions button:active,.inline-button:active,.x-btn-click.inline-button,.x-btn-click.x-btn,.x-btn-click.x-date-mp-cancel,.x-btn-click.x-date-mp-ok,.x-btn-click.x-form-trigger,.x-btn-click.x-superboxselect-item,.x-btn:active,.x-date-mp-cancel:active,.x-date-mp-ok:active,.x-form-trigger:active,.x-superboxselect-item:active{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.actions button.x-btn-menu-active .x-btn-split:before,.x-btn-menu-active.inline-button .x-btn-split:before,.x-btn-menu-active.x-btn .x-btn-split:before,.x-btn-menu-active.x-date-mp-cancel .x-btn-split:before,.x-btn-menu-active.x-date-mp-ok .x-btn-split:before,.x-btn-menu-active.x-form-trigger .x-btn-split:before,.x-btn-menu-active.x-superboxselect-item .x-btn-split:before{content:"\f0d8"}.actions button.x-item-disabled,.actions button.x-item-disabled:active,.actions button.x-item-disabled:hover,.x-item-disabled.inline-button,.x-item-disabled.inline-button:active,.x-item-disabled.inline-button:hover,.x-item-disabled.x-btn,.x-item-disabled.x-btn:active,.x-item-disabled.x-btn:hover,.x-item-disabled.x-date-mp-cancel,.x-item-disabled.x-date-mp-cancel:active,.x-item-disabled.x-date-mp-cancel:hover,.x-item-disabled.x-date-mp-ok,.x-item-disabled.x-date-mp-ok:active,.x-item-disabled.x-date-mp-ok:hover,.x-item-disabled.x-form-trigger,.x-item-disabled.x-form-trigger:active,.x-item-disabled.x-form-trigger:hover,.x-item-disabled.x-superboxselect-item,.x-item-disabled.x-superboxselect-item:active,.x-item-disabled.x-superboxselect-item:hover{background-color:#fff;color:#1e1e1e;box-shadow:0 0 0 1px #e4e4e4;opacity:.6}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-remove:before{content:"\f00d"}.fa.fa-close:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before{content:"\f01e"}.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before{content:"\f0c9"}.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-dashboard:before{content:"\f3fd"}.fa.fa-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-mobile-phone:before{content:"\f3cd"}.fa.fa-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before{content:"\f153"}.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-usd:before{content:"\f155"}.fa.fa-dollar:before{content:"\f155"}.fa.fa-inr:before{content:"\f156"}.fa.fa-rupee:before{content:"\f156"}.fa.fa-jpy:before{content:"\f157"}.fa.fa-cny:before{content:"\f157"}.fa.fa-rmb:before{content:"\f157"}.fa.fa-yen:before{content:"\f157"}.fa.fa-rub:before{content:"\f158"}.fa.fa-ruble:before{content:"\f158"}.fa.fa-rouble:before{content:"\f158"}.fa.fa-krw:before{content:"\f159"}.fa.fa-won:before{content:"\f159"}.fa.fa-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f884"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-android{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-try:before{content:"\f195"}.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-institution:before{content:"\f19c"}.fa.fa-bank:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-git{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before{content:"\f20b"}.fa.fa-shekel:before{content:"\f20b"}.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-battery-4:before{content:"\f240"}.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-clone{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before{content:"\f2a4"}.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-thermometer-4:before{content:"\f2c7"}.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before{content:"\f2cd"}.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cab:before{content:"\f1ba"}button{margin:2px}.x-panel-btns .x-btn{margin:0 0 0 7px}.actions{bottom:8px;margin:0;overflow:visible;position:absolute}.actions li{float:left;line-height:.7;margin-right:2px}.actions button,.inline-button,.x-date-mp-cancel,.x-date-mp-ok,.x-date-picker .x-btn,.x-form-trigger,.x-superboxselect-item{box-shadow:0 0 0 1px #dcdcdc;box-sizing:content-box;padding:5px}.actions button:focus,.actions button:hover,.inline-button:focus,.inline-button:hover,.x-date-mp-cancel:focus,.x-date-mp-cancel:hover,.x-date-mp-ok:focus,.x-date-mp-ok:hover,.x-date-picker .x-btn:focus,.x-date-picker .x-btn:hover,.x-form-trigger:focus,.x-form-trigger:hover,.x-superboxselect-item:focus,.x-superboxselect-item:hover{box-shadow:#999}.actions button:active,.inline-button:active,.x-date-mp-cancel:active,.x-date-mp-ok:active,.x-date-picker .x-btn:active,.x-form-trigger:active,.x-superboxselect-item:active{box-shadow:#999}.actions button.yellow,.inline-button.yellow,.x-date-mp-cancel.yellow,.x-date-mp-ok.yellow,.x-date-picker .x-btn.yellow,.x-form-trigger.yellow,.x-superboxselect-item.yellow{background:#fce588;box-shadow:0 0 0 1px #fce588;color:#515151!important}.actions button.yellow:focus,.actions button.yellow:hover,.inline-button.yellow:focus,.inline-button.yellow:hover,.x-date-mp-cancel.yellow:focus,.x-date-mp-cancel.yellow:hover,.x-date-mp-ok.yellow:focus,.x-date-mp-ok.yellow:hover,.x-date-picker .x-btn.yellow:focus,.x-date-picker .x-btn.yellow:hover,.x-form-trigger.yellow:focus,.x-form-trigger.yellow:hover,.x-superboxselect-item.yellow:focus,.x-superboxselect-item.yellow:hover{background:#fbe06f;box-shadow:0 0 0 1px #fbe06f}.actions button.yellow:active,.inline-button.yellow:active,.x-date-mp-cancel.yellow:active,.x-date-mp-ok.yellow:active,.x-date-picker .x-btn.yellow:active,.x-form-trigger.yellow:active,.x-superboxselect-item.yellow:active{background:#fbda56;box-shadow:0 0 0 1px #fbda56}.actions button.orange,.inline-button.orange,.x-date-mp-cancel.orange,.x-date-mp-ok.orange,.x-date-picker .x-btn.orange,.x-form-trigger.orange,.x-superboxselect-item.orange{background:#f0b429;box-shadow:0 0 0 1px #f0b429;color:#fff!important}.actions button.orange:focus,.actions button.orange:hover,.inline-button.orange:focus,.inline-button.orange:hover,.x-date-mp-cancel.orange:focus,.x-date-mp-cancel.orange:hover,.x-date-mp-ok.orange:focus,.x-date-mp-ok.orange:hover,.x-date-picker .x-btn.orange:focus,.x-date-picker .x-btn.orange:hover,.x-form-trigger.orange:focus,.x-form-trigger.orange:hover,.x-superboxselect-item.orange:focus,.x-superboxselect-item.orange:hover{background:#eeac11;box-shadow:0 0 0 1px #eeac11}.actions button.orange:active,.inline-button.orange:active,.x-date-mp-cancel.orange:active,.x-date-mp-ok.orange:active,.x-date-picker .x-btn.orange:active,.x-form-trigger.orange:active,.x-superboxselect-item.orange:active{background:#d79b0f;box-shadow:0 0 0 1px #d79b0f}.actions button.red,.inline-button.red,.x-date-mp-cancel.red,.x-date-mp-ok.red,.x-date-picker .x-btn.red,.x-form-trigger.red,.x-superboxselect-item.red{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff!important}.actions button.red:focus,.actions button.red:hover,.inline-button.red:focus,.inline-button.red:hover,.x-date-mp-cancel.red:focus,.x-date-mp-cancel.red:hover,.x-date-mp-ok.red:focus,.x-date-mp-ok.red:hover,.x-date-picker .x-btn.red:focus,.x-date-picker .x-btn.red:hover,.x-form-trigger.red:focus,.x-form-trigger.red:hover,.x-superboxselect-item.red:focus,.x-superboxselect-item.red:hover{background:#c11022;box-shadow:0 0 0 1px #c11022}.actions button.red:active,.inline-button.red:active,.x-date-mp-cancel.red:active,.x-date-mp-ok.red:active,.x-date-picker .x-btn.red:active,.x-form-trigger.red:active,.x-superboxselect-item.red:active{background:#b30f1f;box-shadow:0 0 0 1px #b30f1f}.actions button.green,.inline-button.green,.x-date-mp-cancel.green,.x-date-mp-ok.green,.x-date-picker .x-btn.green,.x-form-trigger.green,.x-superboxselect-item.green{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff!important}.actions button.green:focus,.actions button.green:hover,.inline-button.green:focus,.inline-button.green:hover,.x-date-mp-cancel.green:focus,.x-date-mp-cancel.green:hover,.x-date-mp-ok.green:focus,.x-date-mp-ok.green:hover,.x-date-picker .x-btn.green:focus,.x-date-picker .x-btn.green:hover,.x-form-trigger.green:focus,.x-form-trigger.green:hover,.x-superboxselect-item.green:focus,.x-superboxselect-item.green:hover{background:#61a043;box-shadow:0 0 0 1px #61a043}.actions button.green:active,.inline-button.green:active,.x-date-mp-cancel.green:active,.x-date-mp-ok.green:active,.x-date-picker .x-btn.green:active,.x-form-trigger.green:active,.x-superboxselect-item.green:active{background:#568e3b;box-shadow:0 0 0 1px #568e3b}.actions button.blue,.inline-button.blue,.x-date-mp-cancel.blue,.x-date-mp-ok.blue,.x-date-picker .x-btn.blue,.x-form-trigger.blue,.x-superboxselect-item.blue{background:#4a90e2;box-shadow:0 0 0 1px #4a90e2;color:#fff!important}.actions button.blue:focus,.actions button.blue:hover,.inline-button.blue:focus,.inline-button.blue:hover,.x-date-mp-cancel.blue:focus,.x-date-mp-cancel.blue:hover,.x-date-mp-ok.blue:focus,.x-date-mp-ok.blue:hover,.x-date-picker .x-btn.blue:focus,.x-date-picker .x-btn.blue:hover,.x-form-trigger.blue:focus,.x-form-trigger.blue:hover,.x-superboxselect-item.blue:focus,.x-superboxselect-item.blue:hover{background:#3483de;box-shadow:0 0 0 1px #3483de}.actions button.blue:active,.inline-button.blue:active,.x-date-mp-cancel.blue:active,.x-date-mp-ok.blue:active,.x-date-picker .x-btn.blue:active,.x-form-trigger.blue:active,.x-superboxselect-item.blue:active{background:#2275d7;box-shadow:0 0 0 1px #2275d7}.x-toolbar .x-form-field-trigger-wrap{background:#fff;border:0;border-radius:3px;box-shadow:0 0 0 1px #e4e4e4;cursor:pointer;line-height:1}.x-toolbar .x-form-field-trigger-wrap .x-form-text{background:#fff;border:0;margin:0!important}.x-toolbar .x-form-field-trigger-wrap .x-form-trigger:before{margin-top:0}.x-toolbar .x-form-field-trigger-wrap.x-trigger-wrap-focus{box-shadow:0 0 0 1px #999}.x-toolbar .x-toolbar-left-row td .x-btn{display:block}.x-toolbar .x-toolbar-left-row td .x-btn,.x-toolbar .x-toolbar-left-row td .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-left-row td .x-form-text{margin-right:7px}.x-toolbar .x-toolbar-left-row td:first-of-type .x-btn,.x-toolbar .x-toolbar-left-row td:first-of-type .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-left-row td:first-of-type .x-form-text{margin-left:1px}.x-toolbar .x-toolbar-right-row .x-btn,.x-toolbar .x-toolbar-right-row .x-form-field-trigger-wrap,.x-toolbar .x-toolbar-right-row .x-form-text{margin-left:7px}.x-toolbar .x-toolbar-right-row .x-form-filter{border-radius:3px 0 0 3px;z-index:1}.x-toolbar .x-toolbar-right-row .x-form-filter:not(.x-form-empty-field){border-color:#000}.x-toolbar .x-toolbar-right-row .x-form-filter.x-form-focus{border-color:#999}.x-toolbar .x-toolbar-right-row .x-form-filter-clear{border-radius:0 3px 3px 0;margin-left:0}.x-toolbar .x-form-text{padding:8px 13px;border-radius:3px;font-size:13px!important}.x-toolbar.x-small-editor .x-form-text{padding-top:8px}.x-toolbar .xtb-sep{margin:0;width:0}.x-tree .x-toolbar .x-btn{padding:7px}.x-tree .x-toolbar .x-btn-icon{box-shadow:none;padding:7px}.x-tree .x-toolbar .x-btn-icon.x-btn-over{background:0 0;box-shadow:none;color:#234368}.x-tree .x-toolbar .x-btn-icon.x-btn-click{background:0 0;box-shadow:none;color:#1b3451}.x-tree .x-toolbar .x-btn-icon:before{content:none}.x-tree .x-toolbar .x-toolbar-left-row .x-form-field-wrap,.x-tree .x-toolbar .x-toolbar-right-row .x-form-field-wrap{margin-right:6px;margin-left:6px!important}#modx-action-buttons{position:fixed;top:0;right:0;left:auto;background:#f1f1f1;padding:.8rem 1rem;border:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;border-radius:3px;z-index:12}#modx-action-buttons .x-toolbar-cell:not(:first-child){padding-left:.5rem}#modx-action-buttons .x-btn{margin:0}#modx-action-buttons #modx-abtn-menu .x-btn-split{padding:0}#modx-action-buttons #modx-abtn-menu .x-btn-split:before{display:none}#modx-action-buttons #modx-abtn-menu .x-btn-split .x-btn-text{padding:0;border:none}#modx-action-buttons .x-toolbar-left{width:auto!important;zoom:1}@media screen and (max-width:960px){#modx-action-buttons{background:0 0;padding:0 15px;position:relative;top:auto;left:auto;right:auto;bottom:auto;max-width:100%;border-radius:0}#modx-action-buttons table table{display:block}#modx-action-buttons table table tbody{display:block}#modx-action-buttons table table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-action-buttons table table tbody tr::after{clear:both;content:"";display:block}#modx-action-buttons table table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}#modx-action-buttons table table tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-panel-welcome #modx-action-buttons{display:none}#modx-action-buttons .x-toolbar-cell{width:auto;margin:5px}}@media screen and (max-width:960px){.tab-panel-wrapper .x-panel-tbar table{display:block}.tab-panel-wrapper .x-panel-tbar table tbody{display:block}.tab-panel-wrapper .x-panel-tbar table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.tab-panel-wrapper .x-panel-tbar table tbody tr::after{clear:both;content:"";display:block}.tab-panel-wrapper .x-panel-tbar table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}.tab-panel-wrapper .x-panel-tbar table tbody tr td .x-btn{margin-left:3px;margin-right:3px}.tab-panel-wrapper .x-panel-tbar .x-toolbar-left input,.tab-panel-wrapper .x-panel-tbar .x-toolbar-right input{height:auto!important;width:100%;box-sizing:border-box;margin-left:0}}@media screen and (max-width:960px){html.ext-strict body #modx-container .x-small-editor .x-form-text{height:auto!important}}@media screen and (max-width:960px){#modx-grid-element-properties table{display:block}#modx-grid-element-properties table tbody{display:block}#modx-grid-element-properties table tbody tr{margin-left:auto;margin-right:auto;max-width:1200px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-grid-element-properties table tbody tr::after{clear:both;content:"";display:block}#modx-grid-element-properties table tbody tr td{display:inline-block;float:left;padding:0!important;margin-bottom:1em;-ms-flex-positive:1;flex-grow:1}#modx-grid-element-properties table tbody tr td .x-btn{margin-left:3px;margin-right:3px}#modx-grid-element-properties .x-toolbar-left{margin-bottom:0}#modx-grid-element-properties .x-toolbar-cell>*{width:100%!important;box-sizing:border-box;margin-left:auto;margin-right:auto}}.x-btn-icon button{font-size:18px;height:18px;width:18px;position:relative}.x-btn-icon.arrow_up button{background:0 0!important;position:relative}.x-btn-icon.arrow_up button:before{content:"\f3bf";top:1px;bottom:auto}.x-btn-icon.arrow_down button{background:0 0!important;position:relative}.x-btn-icon.arrow_down button:before{content:"\f3be";top:1px;bottom:auto}.x-btn-icon.refresh button{background:0 0!important;position:relative}.x-btn-icon.refresh button:before{content:"\f021";top:1px;bottom:auto}.x-btn-icon.icon-folder button:before{content:"\f07b"}.x-btn-icon.icon-page_white button:before{content:"\f15c"}.x-btn-icon.icon-file_upload button:before{content:"\f35b"}.x-btn-icon.icon-file_manager button:before{content:"\f14d"}.x-btn-text-icon button{padding-left:20px!important}.x-html-editor-tb .x-btn{background-color:transparent;background-image:none;border:0 none;box-shadow:none;margin:0}.x-html-editor-tb .x-btn-over{border:0 none}.x-btn-group{border-radius:3px;border:1px solid #dbe0e4;margin-right:2px;padding:0}.x-btn-group .x-btn{background-color:transparent;background-image:none;border:1px solid transparent;box-shadow:transparent 0 0 1px}.x-btn-group .x-btn button{color:#868b8f;height:auto!important}.x-btn-group .x-btn-over{background:#dfdfdf;background:#f0f0f0;border:1px solid #dbe0e4}.x-btn-group .x-btn-over button{color:#5b7a98}.x-btn-group .x-btn-click{background-color:#fff;background-image:none;box-shadow:0 0 3px #aaa inset;margin:0 2px 0 0}.x-btn-group-bwrap{padding:1px 0 0}.x-btn-group-header{background-color:#dbe0e4;color:#73797f;text-shadow:0 1px 0 #fafafa}.x-btn-group-tl,.x-btn-group-tr{background-image:none;padding:0}.x-btn-group-bc,.x-btn-group-bl,.x-btn-group-br,.x-btn-group-tc{background-image:none}.x-btn-group-ml{background-image:none;padding-left:1px}.x-btn-group-mr{background-image:none;padding-right:1px}.x-btn em.x-btn-arrow-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-btn em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b.gif)}.x-btn-click em.x-btn-split-bottom,.x-btn-menu-active em.x-btn-split-bottom,.x-btn-over em.x-btn-split-bottom,.x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.x-btn-group-notitle .x-btn-group-tc{background-image:url(../images/modx-theme/button/group-tb.gif)}#modx-leftbar .x-toolbar-ct .x-btn{margin:0 3px;padding:0;width:25px;height:30px;border:none;box-shadow:none;color:#515151;background:#f1f1f1;opacity:1;display:inline-block;position:relative}#modx-leftbar .x-toolbar-ct .x-btn>em>button{font-size:18px;text-shadow:none;overflow:visible;position:absolute;height:24px;top:4px;left:2px}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over,#modx-leftbar .x-toolbar-ct .x-btn:active,#modx-leftbar .x-toolbar-ct .x-btn:focus,#modx-leftbar .x-toolbar-ct .x-btn:hover{background:0 0;box-shadow:none;color:#234368}#modx-leftbar .x-toolbar-ct .x-btn.x-btn-click button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-focus button,#modx-leftbar .x-toolbar-ct .x-btn.x-btn-over button,#modx-leftbar .x-toolbar-ct .x-btn:active button,#modx-leftbar .x-toolbar-ct .x-btn:focus button,#modx-leftbar .x-toolbar-ct .x-btn:hover button{color:inherit}#modx-leftbar .x-toolbar-ct .x-btn span{vertical-align:middle}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn>em>button{font-size:20px}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled{color:#919191!important;opacity:.6}#modx-leftbar .x-toolbar-ct .x-toolbar-right .x-btn#emptifier .x-item-disabled button{color:inherit}.tree-new-resource>em>button:before{content:"\f15b"}.tree-new-weblink>em>button:before{content:"\f0c1"}.tree-new-symlink>em>button:before{content:"\f0c5";font-weight:400}.tree-new-static-resource>em>button:before{content:"\f15c";font-weight:400}.tree-trash>em>button:before{content:"\f2ed";font-weight:400}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-symlink>em>button{top:4px;left:2px}#modx-leftbar .x-toolbar-ct .x-btn .tree-new-weblink>em>button{left:2px}.tree-new-template>em>button:before{content:"\f0db"}.tree-new-tv>em>button:before{content:"\f022";font-weight:400}.tree-new-chunk>em>button:before{content:"\f009";font-weight:900}.tree-new-snippet>em>button:before{content:"\f121"}.tree-new-plugin>em>button:before{content:"\f085"}.tree-new-category>em>button:before{content:"\f07b"}textarea{overflow:auto}.x-form-textarea,textarea.x-form-field{display:block;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:5px}.modx-tv .x-form-textarea:not(div){font-family:inherit}.modx-code-content{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.modx-text-content,textarea[name=description],textarea[name=introtext]{font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-text,.x-form-textarea,textarea.x-form-field{max-width:100%;background-color:#fff;background-image:none;border-radius:3px;border:1px solid #e4e4e4;position:relative;transition:border-color .25s}.x-viewport .x-form-textarea .x-form-focus,.x-viewport .x-trigger-wrap-focus,.x-viewport input.x-form-focus,.x-viewport textarea.x-form-focus{border-color:#999}.x-viewport .x-trigger-wrap-open{border-radius:3px 3px 0 0}.x-form-invalid,textarea.x-form-invalid{border-color:#cf1124!important}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}#modx-input-props,#modx-widget-props{padding:15px 0 0 0}.x-form-item{display:block;margin:0;outline:0 none;position:relative}.x-form-item label.x-form-item-label{color:#515151;font-size:13px;font-weight:700;position:relative}.x-form-item label.x-form-item-label .modx-tv-label-title{display:inline-block}.x-form-item label.x-form-item-label .modx-tv-label-description{display:inline-block;font-style:italic;font-weight:400}.x-form-item label.x-form-item-label .modx-tv-reset{cursor:pointer;display:inline-block;height:16px;opacity:0;padding:3px;position:relative;top:0;right:0;transition:all .25s;width:16px}.x-form-item label.x-form-item-label .modx-tv-reset:before{box-sizing:border-box;color:#515151;content:"\f021";font-size:14px;position:relative;bottom:3px;left:0;text-align:center;vertical-align:middle;width:16px;height:16px}.x-form-item label.x-form-item-label .modx-tv-reset:hover:before{color:#234368}.x-form-item label.x-form-item-label .modx-tv-reset:active:before{color:#1b3451}.x-form-item label.x-form-item-label:hover .modx-tv-reset{opacity:1}.x-form-item.modx-tv{padding:0!important}.x-form-item .modx-tv-inherited{color:#515151;display:inline-block;font-size:10px;font-style:italic;position:absolute;top:19px;right:0}.x-form-item .modx-tv-image-preview{margin-top:7px}.x-form-item .modx-tv-image-preview img{display:block}.x-form-item .modx-tag-list{list-style:none;margin:0;overflow:auto;padding:0}.x-form-item .modx-tag-list .modx-tag-opt{background-color:#e4e4e4;border-radius:0 3px 3px 0;cursor:pointer;display:inline-block;margin:4px 5px 0 10px;padding:1px 5px;position:relative}.x-form-item .modx-tag-list .modx-tag-opt:before{border-style:solid;border-width:10px 10px 10px 0;border-color:transparent #e4e4e4 transparent transparent;content:'';position:absolute;top:0;left:-10px;-ms-transform:rotate(360deg);transform:rotate(360deg);width:0;height:0}.x-form-item .modx-tag-list .modx-tag-opt:after{background-color:#fff;border-radius:50%;content:'';position:absolute;top:8px;left:-4px;width:4px;height:4px}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked,.x-form-item .modx-tag-list .modx-tag-opt:hover{background-color:#234368;color:#fff;text-decoration:none}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:before{border-color:transparent #234368 transparent transparent}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover{background-color:#1b3451}.x-form-item .modx-tag-list .modx-tag-opt.modx-tag-checked:hover:before,.x-form-item .modx-tag-list .modx-tag-opt:hover:hover:before{border-color:transparent #1b3451 transparent transparent}.x-form-item .modx-tv-legacy-select{border:1px solid #e4e4e4;border-radius:3px;padding:5px;transition:all .25s}.x-form-item .modx-tv-legacy-select:focus{border:1px solid #1b3451}.x-form-item .modx-tv-legacy-select option[selected]{background-color:#e4e4e4}.x-form-label-left .x-form-item{padding:15px 0 0 0;padding-bottom:0}.x-form-label-left .x-form-item:first-of-type{padding:0}.x-form-label-left .x-form-item label.x-form-item-label{display:inline-block;margin:0;padding:7px 0 7px 0}.x-form-label-top .x-form-item{padding:0;padding-bottom:0}.x-form-label-top .x-form-item label.x-form-item-label{display:inline-block;margin:0;padding:15px 0 4px 0}.x-window .x-form-item .x-form-item-label{padding:10px 0 4px 0}.x-form-item.x-hide-label{padding-top:10px!important}#modx-resource-content .x-form-item.x-hide-label{padding-top:0!important}.x-form-item.x-hide-label label.x-form-item-label{display:none}.x-form-item .x-form-element{padding:0;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-item .x-column-inner>.x-column~.x-column{margin-left:5px}.x-form-item .x-column-inner>.x-column .x-form-field-wrap{width:auto!important}.x-form-item .container{margin:0}.x-form-item .x-btn{padding:7px 10px 7px 10px}.desc-under{color:#999;display:block;font-size:12px;font-style:italic;margin:2px 0 0 0;text-align:justify}.desc-under.desc-checkbox{margin:0 0 4px 0}.desc-under .warning{color:#cf1124;overflow:hidden;padding:0}.x-fieldset{border:1px solid #e4e4e4;border-radius:3px!important;margin:15px 0 0 0;overflow:visible;padding:0;position:relative}.x-fieldset .x-fieldset-header{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;margin:0 0 0 10px;padding:0 5px 0 3px;position:relative}.x-fieldset .x-fieldset-header .x-fieldset-header-text{line-height:18px}.x-fieldset .x-fieldset-bwrap .x-fieldset-body{overflow-x:hidden!important;padding:0 10px 10px 10px}.x-form-field{font:inherit}.x-form-field.x-form-composite{margin-bottom:0!important}.x-form-field.x-form-composite .x-btn{top:1px!important}.x-static-text-field{color:inherit;font-size:inherit}.x-static-text-field.x-form-focus{border-color:#e4e4e4!important}.x-form-text{line-height:20px;min-height:20px;padding:5px}.x-form-field-wrap{max-width:100%;background:#fff;border:1px solid #e4e4e4;border-radius:3px}.x-form-field-wrap .x-form-text:not(.x-form-invalid){border:0}.x-form-field-wrap .x-form-trigger{border:0;border-radius:0 3px 3px 0;box-shadow:none;padding:0;width:30px;height:100%!important;position:absolute;top:0;right:0}.x-form-field-wrap .x-form-trigger:before{box-sizing:border-box;content:"\f078";font-size:14px;margin-top:-7px;opacity:.8;position:absolute;top:50%;right:0;text-align:center;width:30px;transition:opacity .25s}.x-form-field-wrap .x-form-trigger.x-form-trigger-over,.x-form-field-wrap .x-form-trigger:hover{box-shadow:#999}.x-form-field-wrap .x-form-trigger.x-form-trigger-over:before,.x-form-field-wrap .x-form-trigger:hover:before{opacity:1}.x-form-field-wrap .x-form-trigger.x-form-trigger-click,.x-form-field-wrap .x-form-trigger:active{box-shadow:0 0 0 1px #8a8a8a}.x-form-field-wrap .x-form-trigger.x-form-trigger-click:before,.x-form-field-wrap .x-form-trigger:active:before{opacity:1}.x-form-field-wrap .x-form-trigger.x-form-date-trigger:before{content:"\f133";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-time-trigger:before{content:"\f017";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-file-trigger:before{content:"\f15b";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-image-trigger:before{content:"\f1c5";font-weight:400}.x-form-field-wrap .x-form-trigger.x-form-code-trigger:before{content:"\f1c9";font-weight:400}.x-form-field-wrap.x-datetime-wrap{background:0 0;border:0}.x-form-field-wrap.x-datetime-wrap .ux-datetime-date .x-form-trigger:before{content:"\f133"}.x-form-field-wrap.x-datetime-wrap .ux-datetime-time .x-form-trigger:before{content:"\f017"}.x-form-field-wrap.x-form-fileupload-wrap{overflow:visible;position:relative}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file{position:absolute;top:0;right:0;min-height:20px;opacity:0;padding:5px;z-index:2}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-btn{border-radius:0 3px 3px 0;padding:7px;position:absolute;top:0;right:0;z-index:1;line-height:0;box-shadow:none;border-left:solid 1px #e4e4e4}.x-form-field-wrap.x-form-fileupload-wrap .x-form-file-text{position:relative;z-index:3}#x-form-el-modx-user-photo .x-form-file-trigger:before{content:"\f1c5"}.x-fieldset-checkbox-toggle legend,.x-form-check-wrap{height:auto!important;line-height:18px}.x-form-label-left .x-fieldset-checkbox-toggle legend,.x-form-label-left .x-form-check-wrap{padding:7px 0 7px 0}.x-form-label-top .x-fieldset-checkbox-toggle legend,.x-form-label-top .x-form-check-wrap{padding:0}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.x-fieldset-checkbox-toggle legend .x-form-cb-label,.x-form-check-wrap .x-fieldset-header-text,.x-form-check-wrap .x-form-cb-label{color:#515151;cursor:pointer;display:inline-block;font-weight:400;margin:0;padding-left:1.9em;position:relative;top:0}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text,.ext-ie8 .x-form-check-wrap .x-form-cb-label{padding-left:3px}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.ext-ie8 .x-form-check-wrap .x-fieldset-header-text:before,.ext-ie8 .x-form-check-wrap .x-form-cb-label:before{content:''}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:before,.x-form-check-wrap .x-fieldset-header-text:before,.x-form-check-wrap .x-form-cb-label:before{box-sizing:border-box;content:'';font-size:18px;padding-right:3px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:focus:before,.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:hover:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:focus:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:hover:before,.x-form-check-wrap .x-fieldset-header-text:focus:before,.x-form-check-wrap .x-fieldset-header-text:hover:before,.x-form-check-wrap .x-form-cb-label:focus:before,.x-form-check-wrap .x-form-cb-label:hover:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-fieldset-header-text:active:before,.x-fieldset-checkbox-toggle legend .x-form-cb-label:active:before,.x-form-check-wrap .x-fieldset-header-text:active:before,.x-form-check-wrap .x-form-cb-label:active:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox,.x-fieldset-checkbox-toggle legend .x-form-radio,.x-fieldset-checkbox-toggle legend input[type=checkbox],.x-form-check-wrap .x-form-checkbox,.x-form-check-wrap .x-form-radio,.x-form-check-wrap input[type=checkbox]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;width:18px;height:18px;z-index:1}.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-checkbox,.ext-ie8 .x-fieldset-checkbox-toggle legend .x-form-radio,.ext-ie8 .x-fieldset-checkbox-toggle legend input[type=checkbox],.ext-ie8 .x-form-check-wrap .x-form-checkbox,.ext-ie8 .x-form-check-wrap .x-form-radio,.ext-ie8 .x-form-check-wrap input[type=checkbox]{position:relative;top:auto;left:auto;width:13px;height:13px}.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:hover+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:focus+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:hover+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:focus+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:focus+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:hover+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:hover+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:focus+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:focus+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:hover+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:hover+.x-form-cb-label:before{color:#234368}.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-checkbox:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend .x-form-radio:active+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-fieldset-header-text:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-checkbox:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:active+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:active+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-radio:active+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:active+.x-fieldset-header-text:before,.x-form-check-wrap input[type=checkbox]:active+.x-form-cb-label:before{color:#1b3451}.x-fieldset-checkbox-toggle legend .x-form-checkbox+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]+.x-fieldset-header-text:before{content:"\f0c8";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-checkbox:checked+.x-form-cb-label:before,.x-fieldset-checkbox-toggle legend input[type=checkbox]:checked+.x-fieldset-header-text:before,.x-form-check-wrap .x-form-checkbox:checked+.x-form-cb-label:before,.x-form-check-wrap input[type=checkbox]:checked+.x-fieldset-header-text:before{content:"\f14a";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio+.x-form-cb-label:before{content:"\f111";font-weight:400}.x-fieldset-checkbox-toggle legend .x-form-radio:checked+.x-form-cb-label:before,.x-form-check-wrap .x-form-radio:checked+.x-form-cb-label:before{content:"\f192";font-weight:400}#modx-resource-tabs .x-fieldset legend [type=checkbox],#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox],#modx-resource-tabs .x-form-check-wrap [type=checkbox]{position:absolute;left:-9999px}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label{position:relative;padding-left:3.6em;padding-top:.2em;margin-left:0;cursor:pointer;box-sizing:border-box}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{content:'';position:absolute;transition:all .2s ease;font-size:inherit}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:before{left:0;top:0;width:3em;height:1.6em;background:#e4e4e4;border-radius:1.2em;z-index:10}#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]+.x-form-cb-label:after{left:.1em;top:.8em;margin-top:-.65em;height:1.3em;width:1.3em;border-radius:50%;background-color:#fff;z-index:11}#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:after,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:after{left:1.6em;top:.8em}#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox]:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox]:checked+.x-form-cb-label:before{background-color:#6cb24a;border-color:#6cb24a}#modx-resource-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].danger:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].danger:checked+.x-form-cb-label:before{background-color:#cf1124;border-color:#cf1124}#modx-resource-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-fieldset-checkbox-toggle legend [type=checkbox].warning:checked+.x-form-cb-label:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-fieldset-header-text:before,#modx-resource-tabs .x-form-check-wrap [type=checkbox].warning:checked+.x-form-cb-label:before{background-color:#f0b429;border-color:#f0b429}.x-form-check-group,.x-form-radio-group{overflow:hidden}.x-form-check-group .x-column .x-form-item:first-child,.x-form-radio-group .x-column .x-form-item:first-child{padding:4px 0 0 0}.x-superboxselect{height:auto!important;margin:0;outline:0;padding:0 5px 5px 5px;position:relative;white-space:normal;width:auto!important}.ext-strict .x-toolbar .x-small-editor .x-superboxselect{height:auto!important}.x-superboxselect ul{cursor:text;min-height:20px;overflow:visible;padding-right:61px;white-space:normal;width:auto!important}.x-toolbar .x-superboxselect ul{margin:-5px 0 0 -5px}.x-superboxselect ul li{margin:5px 5px 0 0;padding:0}.x-superboxselect ul li.x-superboxselect-item{cursor:default;font-size:12px;padding:4px 18px 4px 4px!important;position:relative}.x-superboxselect ul li.x-superboxselect-item.x-superboxselect-item-focus{background-color:#234368;box-shadow:0 0 0 1px #234368;color:#fff}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close{border:0;color:inherit;cursor:pointer;display:inline-block;outline:0;opacity:.6;padding:0;position:absolute;top:0;right:0;transition:opacity .25s;width:16px;height:100%}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:before{box-sizing:border-box;content:"\f00d";color:inherit;font-size:14px;margin-top:-7px;position:absolute;top:50%;right:0;text-align:center;vertical-align:middle;width:16px}.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:focus,.x-superboxselect ul li.x-superboxselect-item .x-superboxselect-item-close:hover{opacity:1}.x-superboxselect ul li.x-superboxselect-input{display:inline-block}.x-superboxselect ul li.x-superboxselect-input input{background:0 0;border:0;line-height:20px;outline:0}.x-superboxselect.x-superboxselect-stacked li{box-sizing:border-box;margin:5px 0 0 0;width:100%}.x-superboxselect .x-superboxselect-btns{overflow:visible;position:absolute;top:0;right:0;width:61px;height:100%}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-expand{border-radius:0;right:31px}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear{border-left:1px solid #e4e4e4}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:before{content:"\f00d"}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:hover{border-left:1px solid #234368}.x-superboxselect .x-superboxselect-btns .x-superboxselect-btn-clear:active{border-left:1px solid #1b3451}.inline-form{border:0 none;padding:15px 15px 0}.inline-form label{color:#777;display:block;font-weight:700;margin-bottom:2px}.inline-form input[type=text],.inline-form textarea{background-color:#fff;background-image:none;border-radius:3px;border:1px solid #ccc;position:relative;width:97%}.inline-form input[type=text]{font-size:13px;height:20px!important;padding:5px}.modx-tv-description{color:#515151;font-size:10px;line-height:1.2;margin-top:2px!important}.modx-tv-reload-btn{float:right;position:absolute;right:19px;z-index:10}.modx-tv-reload-btn div{z-index:10}.modx-tv-th label{cursor:pointer}.modx-tv-th .tv-description{color:#515151;font-size:11px;font-weight:400}.x-editor .x-form-check-wrap{background-color:#fff}.x-grid-editor .x-form-field-wrap{background:#f6f2f7 url(../images/modx-theme/form/combo-bck.png) repeat-x scroll 0 100%}.x-grid-editor .x-form-field-wrap input{background-color:transparent!important}.x-grid-editor .x-form-field-wrap img{background-color:#fff;background-image:url(../images/modx-theme/form/trigger.png)}.x-form-grow-sizer{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-form-invalid-msg{color:#cf1124;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:2px;position:relative;min-width:95%}.x-form-invalid-msg:before{content:"\f071";position:absolute;top:3px;left:3px;color:inherit}.x-form-empty-field{color:#515151}.x-grid3 .x-small-editor .x-form-field-wrap,.x-grid3 .x-small-editor .x-form-text{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:7px;padding:2px 5px 2px 5px}.x-grid3 .x-small-editor .x-form-field-wrap .x-form-text,.x-grid3 .x-small-editor .x-form-text .x-form-text{margin:0;padding:0}.x-grid3 .x-small-editor .x-form-field-wrap{overflow:hidden}.x-combo-list{border:0;border-radius:0 0 3px 3px;overflow:visible}.x-combo-list .x-combo-list-inner{background-color:#fff;border:1px solid #999;border-radius:0 0 3px 3px;margin-left:-1px;width:100%!important}.x-combo-list .x-combo-list-item{border:0;padding:5px;color:#515151;min-height:18.2px}.x-combo-list .x-combo-list-item.x-combo-selected{background-color:#e4e4e4;border:0!important}.x-combo-list .x-toolbar{border:0;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px #234368;margin-top:-1px;position:relative}.x-combo-list .x-toolbar .x-toolbar-ct{padding:5px 0 15px 0}.x-combo-list .x-toolbar .x-toolbar-left table{margin:0 auto}.x-combo-list .x-toolbar .x-toolbar-cell{display:inline-block}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn,.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:0 0;box-shadow:none;font-size:10px;line-height:16px;margin-right:2px;min-height:16px;padding:2px}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn{padding:1px;transition:color .25s}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-over,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:focus,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:hover{color:#234368}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-btn-click,.x-combo-list .x-toolbar .x-toolbar-cell .x-btn:active{color:#1b3451}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn.x-item-disabled{color:#515151;opacity:.4}.x-combo-list .x-toolbar .x-toolbar-cell .x-btn button:before{line-height:20px;top:0;left:0;right:0}.x-combo-list .x-toolbar .x-toolbar-cell .x-form-text{background:#fbfbfb;width:23px}.x-combo-list .x-toolbar .xtb-text{font-size:10px;line-height:1;margin:0 auto;padding:0;text-align:center}.x-combo-list .x-toolbar .x-toolbar-cell:first-child .x-btn{margin-left:1px}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:none;position:absolute;top:2px;right:0;left:0}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .xtb-text{display:inline-block;position:absolute;top:auto;right:0;bottom:4px;left:0}.x-combo-list .x-toolbar .x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell+.x-toolbar-cell .x-btn{margin-right:0}.x-combo-list .x-toolbar .x-toolbar-cell:last-child{opacity:0;transition:opacity .25s}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn{font-size:12px;line-height:1;margin:0;opacity:.4;padding:0;position:absolute;bottom:2px;right:1px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn:hover{opacity:1}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button{width:16px;height:16px}.x-combo-list .x-toolbar .x-toolbar-cell:last-child .x-btn button:before{font-size:12px}.x-combo-list .x-toolbar:hover .x-toolbar-cell:last-child{opacity:1}.x-combo-list .x-resizable-handle-southeast{bottom:1px;right:3px}.x-combo-list-hd{background-image:url(../images/modx-theme/layout/panel-title-light-bg.gif);border-bottom-color:#bcbcbc;color:#464646}.x-combo-list-small{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.x-date-mp,.x-date-picker{background-color:#fbfbfb}.x-date-mp .x-btn,.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-btn,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{border:0;padding:5px 10px 5px 10px;margin:0 0 0 7px}.x-date-mp .x-btn:first-child,.x-date-mp .x-date-mp-cancel:first-child,.x-date-mp .x-date-mp-ok:first-child,.x-date-picker .x-btn:first-child,.x-date-picker .x-date-mp-cancel:first-child,.x-date-picker .x-date-mp-ok:first-child{margin:0}.x-date-mp .x-btn button,.x-date-mp .x-date-mp-cancel button,.x-date-mp .x-date-mp-ok button,.x-date-picker .x-btn button,.x-date-picker .x-date-mp-cancel button,.x-date-picker .x-date-mp-ok button{font-size:11px;font-style:normal;margin:0}.x-date-mp .x-date-mp-cancel,.x-date-mp .x-date-mp-ok,.x-date-picker .x-date-mp-cancel,.x-date-picker .x-date-mp-ok{height:16px}.x-date-middle{padding:5px 3px 5px 3px}.x-date-left a,.x-date-mp-ybtn a.x-date-mp-next,.x-date-mp-ybtn a.x-date-mp-prev,.x-date-right a{display:inline-block;opacity:.6;margin:0 auto;position:relative;transition:opacity .25s}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-mp-ybtn a.x-date-mp-prev:before,.x-date-right a:before{box-sizing:border-box;color:#234368;content:'';font-size:18px;position:absolute;top:0;left:0;text-align:center;vertical-align:middle;width:18px;height:18px}.x-date-left a:hover,.x-date-mp-ybtn a.x-date-mp-next:hover,.x-date-mp-ybtn a.x-date-mp-prev:hover,.x-date-right a:hover{opacity:1}.x-date-mp-ybtn a.x-date-mp-next:before,.x-date-right a:before{content:"\f0da";left:auto;right:0}.x-date-left a:before,.x-date-mp-ybtn a.x-date-mp-prev:before{content:"\f0d9"}.x-date-inner{margin:0 auto}.x-date-inner th{border-bottom-color:#e4e4e4;color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700}.x-date-inner td,.x-date-mp td{background-color:#fff;border:0;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:1px}.x-date-inner a,td.x-date-mp-month a,td.x-date-mp-year a{border-radius:3px;color:#999;font:inherit;font-weight:700}td.x-date-mp-month a,td.x-date-mp-year a{margin:0 3px 0 3px}.x-date-inner .x-date-disabled a:hover,.x-date-inner .x-date-nextday a:hover,.x-date-inner .x-date-prevday a:hover,.x-date-inner a:hover,td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{background-color:#dcdcdc;color:#515151}.x-date-inner .x-date-disabled a{background-color:#e4e4e4;color:#999}.x-date-inner .x-date-active{color:#000}.x-date-inner .x-date-today a{border-color:#234368}.x-date-inner span{font-style:normal}.x-date-inner .x-date-active span,.x-date-inner .x-date-selected span{font-weight:700}.x-date-inner .x-date-selected a,td.x-date-mp-sel a{background-color:#234368;border-color:#fff;color:#fff}.x-date-inner .x-date-nextday a,.x-date-inner .x-date-prevday a{color:#dcdcdc}.x-date-bottom,.x-date-mp-btns{border-top:1px solid #e4e4e4;padding:5px}.x-date-bottom td,.x-date-mp-btns td{background-color:transparent;border-top:1px solid #e4e4e4}td.x-date-mp-sep{border-right:1px solid #e4e4e4}.x-date-mmenu{background-color:#eee!important}.x-date-mmenu .x-menu-item{color:#000;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.radio-version .x-form-check-wrap .x-form-cb-label{display:block}.radio-version .x-form-check-wrap .x-form-cb-label .changelog{float:right}#modx-tv-tabs{width:100%}.x-tab-panel-noborder{border:1px solid #e2e3de;margin:20px 0 20px;overflow:visible}.x-tab-panel-noborder .x-tab-panel-body-noborder{background-color:#fff;border-radius:3px}.x-tab-panel-footer,.x-tab-panel-header{border:0;position:relative}.x-tab-panel-header ul.x-tab-strip{background-color:transparent!important;border:0;margin:0;position:relative;top:1px}.x-tab-panel-footer-plain .x-tab-strip-spacer,.x-tab-panel-header-plain .x-tab-strip-spacer{border:none;height:0}.x-tab-panel .x-tab-panel{padding-top:18px}.x-tab-panel .x-tab-panel.vertical-tabs-panel{padding-top:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap{padding:2px 0 0 0;margin:0}.x-tab-panel .x-tab-panel .x-tab-strip-wrap .x-tab-strip{background-color:#fbfbfb!important}.x-tab-panel-header,.x-tab-strip{padding-left:0}.x-tab-panel-bwrap{border-radius:3px;overflow:visible}.x-tab-panel-bwrap .x-tab-panel-bwrap{box-shadow:none}ul.x-tab-strip li{background-color:transparent;color:#53595f;border-top-left-radius:3px;border-top-right-radius:3px;cursor:pointer;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:2.2;margin-left:0;padding:0 12px;position:relative;z-index:5}ul.x-tab-strip li:hover{background-color:#e4e4e4;color:#000}ul.x-tab-strip li.x-tab-strip-active{color:#234368;background-color:#fff;cursor:default}.vertical-tabs-header ul.x-tab-strip li.x-tab-strip-active{border-radius:0}ul.x-tab-strip li.x-tab-strip-active:hover{background-color:#fff}ul.x-tab-strip li.x-tab-edge{height:0;visibility:hidden}.x-tab-panel,.x-tab-panel-header,.x-tab-strip-wrap{overflow:visible;border:none}.x-tab-strip-wrap{overflow:hidden;padding:2px 5px 0 5px;margin-left:-5px}.x-tab-strip-closable{padding-right:15px!important}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{right:2px;background-image:url(../images/modx-theme/tabs/tab-close.gif)}ul.x-tab-strip-top li:first-child{margin-left:0}ul.x-tab-strip-bottom{background-color:#f4f4f4;border-top-color:#dfdfdf}ul.x-tab-strip-bottom .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-right{background-image:url(../images/modx-theme/tabs/tab-btm-right-bg.gif)}ul.x-tab-strip-bottom .x-tab-right .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-left-bg.gif)}ul.x-tab-strip-bottom .x-tab-left{background-image:url(../images/modx-theme/tabs/tab-btm-inactive-left-bg.gif)}.x-tab-panel-body{background-color:#fff;border:0;overflow:visible}.x-tab-scroller-left,.x-tab-scroller-right{border:0}.x-tab-scroller-left:before,.x-tab-scroller-right:before{box-sizing:border-box;color:#515151;content:'';font-size:28px;margin-top:-20px;opacity:1;position:absolute;top:50%;right:0;text-align:center;width:18px;transition:opacity .25s}.x-tab-scroller-left-over:before,.x-tab-scroller-right-over:before{color:#234368}.x-tab-scroller-left-disabled,.x-tab-scroller-right-disabled{cursor:default}.x-tab-scroller-left-disabled:before,.x-tab-scroller-right-disabled:before{color:#515151;opacity:.4}.x-tab-scroller-left:before{content:"\f0d9"}.x-tab-scroller-right:before{content:"\f0da"}.x-tab-panel-bbar .x-toolbar,.x-tab-panel-tbar .x-toolbar{border-color:#dfdfdf}.x-tab-panel-body-noborder .x-panel-body-noheader:first-child{border-top:0 none}.x-tab-panel-bbar-noborder .x-toolbar{border-top-color:transparent}.x-tab-panel-tbar-noborder .x-toolbar{border-bottom-color:transparent}.vertical-tabs-panel{background-color:#fff;margin:0;overflow:hidden}.vertical-tabs-panel.wrapped{border:1px solid #e4e4e4}.vertical-tabs-panel .vertical-tabs-header{background:#fff!important;border-right:1px solid #e4e4e4!important;float:left;margin-bottom:-10000px;padding-bottom:10000px!important;width:168px!important}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap{background-color:transparent;display:inline-block;line-height:0;margin:0;padding:0;width:auto!important}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip{border:0;display:inline-block;top:0;width:auto}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{border-right:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;color:#515151;float:none;line-height:1;margin:0;overflow:hidden;padding:10px 15px 10px 15px;transition:background-color .25s,color .25s}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li{font-size:12px;padding:8px}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li:hover{background:#fff}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{background:#fff;border-color:#234368;border-right-color:#fff;box-shadow:none;color:#234368;width:168px}@media screen and (max-width:960px){.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-strip-active{width:80px!important}}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge{height:0;visibility:hidden}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li.x-tab-edge .x-tab-strip-text{display:none}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip>li .x-tab-strip-text{line-height:1.4;padding:2px 0 2px 0;word-break:break-all;white-space:pre-wrap}.vertical-tabs-panel .vertical-tabs-header h4{background:#fff;border-bottom:1px solid #e4e4e4;color:#53595f;font-size:16px;padding:15px 0 15px 15px}.vertical-tabs-panel .vertical-tabs-header .x-tab-strip-spacer{display:none}.vertical-tabs-panel .x-tab-panel-bwrap{box-shadow:none}.vertical-tabs-panel .x-tab-panel-bwrap .x-tab-panel-body{border-top:0;width:auto!important}.vertical-tabs-panel .x-tab-panel-bwrap .vertical-tabs-body{border:0;padding:15px 20px 15px 15px}.tvs-wrapper.below-content{border-radius:3px;margin:1rem}.tvs-wrapper.below-content .vertical-tabs-panel{border-radius:3px}@media screen and (max-width:960px){.tvs-wrapper.below-content{margin:0}}.window-vtabs .x-panel-mr{padding-right:0}.window-vtabs .vertical-tabs-panel{width:100%!important;margin:0}#modx-split-wrapper .x-border-layout-ct{background:0 0}#modx-leftbar-tabs-xcollapsed{display:none!important}#modx-leftbar{background-color:#fff;z-index:0;min-width:288px}@media screen and (min-width:961px){#modx-leftbar{max-width:50%}}#modx-leftbar .x-toolbar{padding:0!important;border:0}#modx-header{background:#234368;max-width:70px;position:absolute;z-index:2;height:100%}#modx-navbar{font-weight:700;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:100%;z-index:20;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:0 5px}#modx-navbar .icon{color:#fff;font-size:20px;line-height:20px;vertical-align:middle}#modx-navbar a,#modx-navbar li{background:0 0;margin:0;padding:0;position:relative;width:100%;text-align:center}#modx-navbar a{cursor:pointer;color:#fff;display:block;line-height:12px;font-size:10px;text-decoration:none}#modx-navbar a .description{font-size:9px;opacity:.7}#modx-navbar a .description,#modx-navbar a .icon,#modx-navbar a .label{width:100%;display:block}#modx-navbar li a:hover{opacity:.7}#modx-navbar #modx-user-menu a #user-username,#modx-navbar #modx-user-menu a .description,#modx-navbar #modx-user-menu a .label{display:none}#modx-navbar #modx-leftbar-trigger a,#modx-navbar #modx-manager-search-icon a,#modx-navbar #modx-user-menu a{padding:12px 0}#modx-navbar #modx-topnav{list-style:none;margin:0;padding:0}#modx-navbar #modx-topnav .top:not(#modx-manager-search-icon){border-top:1px solid rgba(255,255,255,.1)}#modx-navbar #modx-topnav>li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger)>a{display:block;position:relative;padding:12px 0}#modx-navbar #modx-user-menu{margin-top:auto}#modx-navbar #modx-user-menu #user-avatar img{border-radius:20px;height:40px;width:40px;display:block;margin:auto}#modx-navbar #modx-user-menu #limenu-user a{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}#modx-navbar #modx-home-dashboard{border-radius:3px;width:40px;height:40px;line-height:40px;padding:10px}#modx-navbar #modx-site-info{font-size:10px}#modx-navbar #modx-site-info .site_name{color:#fff}#modx-navbar #modx-site-info .full_appname{color:#fff}#modx-navbar #modx-site-info>.info-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#modx-leftbar-trigger{transition:all .2s ease}#modx-leftbar-trigger .icon:before{content:"\f060"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f061"!important}#modx-footer .modx-subnav{border:1px solid rgba(255,255,255,.1);box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;background:#fff;display:block;box-sizing:border-box;list-style:none;position:absolute;z-index:10000;opacity:0;visibility:hidden;transition:all .15s ease}#modx-footer .modx-subnav li{display:block;border-radius:3px;background:#fff;margin:0;padding:0;position:relative}#modx-footer .modx-subnav li:not(:first-child){border-top:1px solid #e4e4e4}#modx-footer .modx-subnav li:hover:after{border-right-color:#e4e4e4}#modx-footer .modx-subnav li.sub:after{position:absolute;color:#999;content:"\f0da";font-size:14px;margin-top:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);right:10px}#modx-footer .modx-subnav li a{border-radius:3px;text-align:left;background-color:#fff;color:#515151;font-weight:700;line-height:1.5;margin:0;padding:8px 15px;text-shadow:none;width:270px;display:block;text-decoration:none;cursor:pointer}#modx-footer .modx-subnav li a .icon{display:inline-block;font-size:18px;opacity:.07;padding-left:5px}#modx-footer .modx-subnav li a span{color:#999;display:block;float:none;font-size:12px;font-weight:400;line-height:1.3;margin-top:6px;width:100%}#modx-footer .modx-subnav li a:hover{background:#e4e4e4;border-top-color:#e4e4e4;border-bottom-color:#e4e4e4;color:#53595f}#modx-footer .modx-subnav li a:hover .description{color:#707070}#modx-footer .modx-subnav li:hover ul ul,#modx-footer .modx-subnav ul li:hover ul ul,#modx-footer .modx-subnav ul ul li:hover ul ul{display:none}#modx-footer .modx-subnav li:hover ul,#modx-footer .modx-subnav ul li:hover ul,#modx-footer .modx-subnav ul ul li:hover ul,#modx-footer .modx-subnav ul ul ul li:hover ul{display:block}#modx-footer .modx-subnav.active{opacity:1;visibility:visible}#modx-footer .modx-subnav .modx-subsubnav{border:1px solid rgba(255,255,255,.1);box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;background:#fff;display:none;list-style:none;position:absolute;left:295px;bottom:0;z-index:24}#modx-footer .modx-subnav-arrow{right:100%;border:12px solid transparent;border-right-color:#fff;content:' ';position:absolute;pointer-events:none;margin-top:-6px}#modx-footer #language .modx-subsubnav{max-height:86vh;overflow-y:auto}@media screen and (max-width:960px){#modx-header{position:relative;min-width:100%;height:auto!important}#modx-navbar{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-navbar #modx-headnav{-ms-flex-order:1;order:1;width:50%}#modx-navbar #modx-headnav a{line-height:initial!important}#modx-navbar #modx-headnav img{max-width:35px}#modx-navbar #modx-topnav{width:100%;-ms-flex-order:0;order:0}#modx-navbar #modx-user-menu{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:50%;-ms-flex-order:2;order:2;margin-top:0}#modx-navbar>ul{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}#modx-navbar>ul>li{-ms-flex-preferred-size:50px;flex-basis:50px}#modx-navbar #modx-site-info{display:none}#modx-navbar #modx-home-dashboard{margin:0;padding:5px}#modx-leftbar-trigger .icon{padding:3px 4px}#modx-leftbar-trigger .icon:before{content:"\f062"}#modx-leftbar-trigger.collapsed .icon:before{content:"\f063"!important}#modx-footer .modx-subnav{min-width:300px;top:60px!important}#modx-footer .modx-subnav .description{display:none}#modx-footer .modx-subnav li{border-radius:0}#modx-footer .modx-subnav li.sub:after{display:none}#modx-footer .modx-subnav li a{width:auto;white-space:nowrap}#modx-footer .modx-subnav .modx-subsubnav{position:initial;left:auto;box-shadow:none;display:block;max-height:initial!important;overflow-y:initial!important}#modx-footer .modx-subnav .modx-subsubnav li>a{margin-left:1rem}#modx-footer .modx-subnav-arrow{display:none}#modx-footer .modx-subnav-wrapper{max-height:400px;overflow-y:auto}}@media (max-height:520px){#modx-footer .modx-subnav .description{display:none}}#modx-manager-search{padding:10px 10px 5px;height:38px;min-width:100px;background:#fff;border-radius:3px 3px 0 0}#modx-manager-search .x-form-text{background:0 0}#modx-manager-search .x-form-field-wrap{background-image:none;color:#565353;font-size:12px;outline:0!important}#modx-manager-search .x-form-field-wrap .x-form-text{color:#515151;letter-spacing:0;text-shadow:none;font-weight:400}#modx-manager-search .x-form-field-wrap .x-form-empty-field{color:#6a747a}#modx-manager-search .x-form-field-wrap .x-form-trigger{display:none}.modx-manager-search-results{background:#e4e4e4;border-radius:0 0 3px 3px;border:1px solid #e4e4e4;box-shadow:0 4px 10px 0 rgba(0,0,0,.2);position:relative;width:402px!important;height:auto!important;box-sizing:border-box}.modx-manager-search-results .loading-indicator{background:0 0;color:#515151;font-size:14px;margin:10px 0;text-align:center}.modx-manager-search-results .loading-indicator:before{content:"\f110";margin-right:5px}.modx-manager-search-results .x-combo-list-inner{background:#fff;border:0;margin:0;overflow:auto;width:100%!important}@media screen and (max-width:960px){.modx-manager-search-results .x-combo-list-inner{height:auto!important;line-height:4em}.modx-manager-search-results .x-combo-list-inner .section>*{padding-top:.5em;padding-bottom:.5em}}.modx-manager-search-results .section{border-left:1px solid #ededed;font-size:12px;line-height:12px;margin-left:100px;position:relative;width:auto}.modx-manager-search-results .x-combo-list-item,.modx-manager-search-results h3{color:#515151;line-height:18px;margin:0;padding:4px 6px}.modx-manager-search-results h3{color:#53595f;font-size:11px;line-height:11px;font-weight:400;left:-108px;position:absolute;text-align:right;top:0;width:95px}.modx-manager-search-results a{cursor:pointer;display:inline-block;padding-left:20px;position:relative;color:inherit;text-decoration:none}.modx-manager-search-results i{color:#234368;left:0;position:absolute;top:4px}.modx-manager-search-results em{font-style:normal;opacity:.7}.modx-manager-search-results .x-combo-list-item{overflow:visible;white-space:normal}.modx-manager-search-results .x-combo-list-item a{display:block}.modx-manager-search-results .x-combo-list-item.x-combo-selected,.modx-manager-search-results .x-combo-list-item:hover{border:0;background-color:#e4e4e4;margin-left:0;z-index:10}.modx-manager-search-results .x-combo-list-item.x-combo-selected h3,.modx-manager-search-results .x-combo-list-item:hover h3{left:0}.modx-manager-search-results .x-combo-list-item.x-combo-selected p,.modx-manager-search-results .x-combo-list-item:hover p{border-left-color:transparent}.modx-manager-search-results .x-combo-list-item.x-combo-selected a,.modx-manager-search-results .x-combo-list-item:hover a{color:#515151}.modx-manager-search-results .icon-user{background-image:none!important}.breadcrumbs .panel-desc{margin-top:0}.crumb_wrapper{background:#fbfbfb;border-bottom:1px solid #e4e4e4;border-top:1px solid #e4e4e4;margin-top:15px}.crumb_wrapper .crumbs{height:34px;overflow:hidden}.crumb_wrapper .crumbs li{color:#53595f;float:left;font-size:12px;font-weight:400;line-height:12px;padding:0 0 0 20px;position:relative;z-index:1}.crumb_wrapper .crumbs li.first{padding:0}.crumb_wrapper .crumbs li.first:before{content:"\f015";display:inline-block;font-size:20px;line-height:34px;position:absolute;top:0;left:0;text-align:center;text-indent:0;z-index:2}#packages-breadcrumbs .crumb_wrapper .crumbs li.first:before{content:"\f1b2"}.crumb_wrapper .crumbs li.first:hover:before{color:#fff}.crumb_wrapper .crumbs li.first:hover{background-color:#515151}.crumb_wrapper .crumbs li.first .root{background-color:transparent;box-sizing:content-box;display:inline-block;line-height:12px;margin:0;padding:12px;text-indent:-999em;width:35px;z-index:3}.crumb_wrapper .crumbs li.first .root:before{display:none}.crumb_wrapper .crumbs li.first .root:hover{background-color:transparent}.crumb_wrapper .crumbs li:hover button,.crumb_wrapper .crumbs li:hover span,.crumb_wrapper .crumbs li:hover span:after{background-color:#515151;color:#fff}.crumb_wrapper .crumbs li:hover button:after,.crumb_wrapper .crumbs li:hover span:after{border:1px solid #fbfbfb;border-left-color:#515151;border-bottom-color:#515151}.crumb_wrapper .crumbs li:hover button:before,.crumb_wrapper .crumbs li:hover span:before{background-color:#515151}.crumb_wrapper .crumbs li:hover+li button:before,.crumb_wrapper .crumbs li:hover+li span:before{border-left-color:#515151}.crumb_wrapper .crumbs li button{background-color:transparent;border:0;color:#53595f;cursor:pointer;font:normal 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;line-height:1;text-decoration:none}.crumb_wrapper .crumbs li span{background-color:#fbfbfb}.crumb_wrapper .crumbs li button,.crumb_wrapper .crumbs li span{display:inline-block;margin:0 0 0 1px;padding:11px 13px 11px 15px;position:relative}.crumb_wrapper .crumbs li button:before,.crumb_wrapper .crumbs li span:before{background-color:transparent;content:'';display:inline-block;width:0;height:0;border-top:50px solid transparent;border-bottom:50px solid transparent;border-left:30px solid #fbfbfb;padding-right:3px;position:absolute;top:50%;left:-33px;margin-top:-50px;-ms-transform:scale(.99999);transform:scale(.99999);z-index:-1}.crumb_wrapper .crumbs li button:after,.crumb_wrapper .crumbs li span:after{background-color:#fbfbfb;border:1px solid #dcdcdc;border-left:0;border-bottom:0;border-radius:3px;content:'';display:inline-block;width:34px;height:34px;position:absolute;top:0;right:-22px;-ms-transform:scaleX(.6) rotate(45deg);transform:scaleX(.6) rotate(45deg);z-index:-1}.x-toolbar{background-color:#f7f7f7;background-image:none;border-color:#dfdfdf}.x-toolbar .x-toolbar-cell label,.x-toolbar .xtb-text{margin:0 5px 0 7px;padding:0}.x-toolbar .x-item-disabled{opacity:.6}.x-toolbar td.x-toolbar-cell:first-of-type .xtb-text{margin-left:0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:0}.x-toolbar .x-btn-group-header{line-height:1}.x-toolbar em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-b-noline.gif)}.x-toolbar .x-btn-click em.x-btn-split-bottom,.x-toolbar .x-btn-menu-active em.x-btn-split-bottom,.x-toolbar .x-btn-over em.x-btn-split-bottom,.x-toolbar .x-btn-pressed em.x-btn-split-bottom{background-image:url(../images/modx-theme/button/s-arrow-bo.gif)}.ext-ie .x-toolbar-cell .x-form-field-wrap{height:30px}.x-tbar-page-first{background-image:url(../images/modx-theme/grid/page-first.png)!important}.x-tbar-loading{background-image:url(../images/modx-theme/grid/refresh.png)!important}.x-tbar-page-last{background:0 0!important;position:relative}.x-tbar-page-last:before{content:"\f04e";top:1px;left:1px;right:auto}.x-tbar-page-next{background:0 0!important;position:relative}.x-tbar-page-next:before{content:"\f0da";font-size:18px;line-height:110%;left:1px;right:auto}.x-tbar-page-prev{background:0 0!important;position:relative}.x-tbar-page-prev:before{content:"\f0d9";font-size:18px;line-height:110%;left:auto;right:1px}.x-tbar-loading{background:0 0!important;position:relative}.x-tbar-loading:before{content:"\f01e";top:1px;bottom:auto}.x-tbar-page-first{background:0 0!important;position:relative}.x-tbar-page-first:before{content:"\f04a";top:1px;left:auto;right:1px}.x-paging-info{color:#444}.x-toolbar-more-icon{background-image:url(../images/modx-theme/toolbar/more.gif)!important}.x-panel-bbar{padding-top:10px}.modx-browser-rte-buttons .x-panel-bbar{background-color:#fff;border-top:1px solid #fff;padding:5px}.modx-browser-rte-buttons .x-panel-bbar .x-toolbar-layout-ct{width:auto!important}.x-panel-bbar .x-toolbar{background-color:transparent;border:0 none;overflow:hidden;padding:2px 0}.x-panel-bbar .x-toolbar .x-form-text{padding:5px 10px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number,.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-size{width:32px}.x-panel-bbar .x-toolbar .x-form-text.x-tbar-page-number{margin-right:3px}.x-panel-bbar .x-toolbar .x-btn{margin-right:10px;padding:8px 13px}.modx-browser-rte .x-panel-bbar .x-toolbar .x-btn{margin-right:0;padding:10px 15px 10px 15px}.x-panel-bbar .x-toolbar .xtb-text{margin:0 3px 0 0}.x-panel-tbar{overflow:visible;padding-bottom:2px}.x-panel-tbar .x-toolbar{border:0;padding:5px 0;overflow:visible}.x-panel-mc .x-panel-tbar .x-toolbar{background-image:none;border:0;padding:15px 0 7px 0}.x-panel-tbar-noheader .x-toolbar{background-color:transparent;background-image:none;border:0;padding:5px 0}.x-toolbar div,.x-toolbar input,.x-toolbar label,.x-toolbar select,.x-toolbar span,.x-toolbar td{border-radius:3px}.x-html-editor-tb .x-btn-text{background-image:url(../images/modx-theme/editor/tb-sprite.gif)}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{background-color:transparent;border-bottom-color:transparent}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-top-color:transparent}#modx-leftbar .x-tab-panel-noborder{margin:0 8px}#modx-leftbar .x-tab-panel-bwrap{border-radius:0 0 3px 3px;position:relative;z-index:1}#modx-leftbar .x-tab-panel-bwrap .x-tab-panel-body-noborder{border-radius:0 0 3px 3px;background:#f1f1f1}@media screen and (max-width:960px){#modx-leftbar #modx-leftbar-tabpanel{width:auto!important;margin:0 auto;padding:.5em}}@media screen and (max-width:960px){#modx-leftbar{position:relative!important;top:auto!important;left:auto!important;width:100%!important;height:auto!important;box-shadow:none;margin:0 auto 10px auto}#modx-leftbar #modx-leftbar-header{display:none}}@media screen and (max-width:960px){#modx-leftbar .x-plain-body{width:100%!important;height:auto!important}}#modx-leftbar .x-panel-tbar{padding:0}#modx-leftbar .x-toolbar{padding:4px 5px 2px 0}#modx-leftbar .x-tree-root-ct{padding:6px}#modx-leftbar .x-tree .x-panel-body{background:#fff;border-radius:0}#modx-tree-usergroup .x-toolbar-left-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#modx-resource-tree-tbar .x-toolbar-left .x-btn .tree-new-resource,#modx-tree-element .x-toolbar-left .x-btn .tree-new-template{margin-left:16px}#modx-split-wrapper #modx-leftbar-tabs-xcollapsed,#modx-split-wrapper .x-layout-split{margin-left:-70px}.x-layout-split{overflow:visible;width:8px;z-index:2}.x-layout-split:hover{background:#999}#modx-leftbar-tabs-xcollapsed .x-layout-mini{left:0}#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border-right:0;border-left:5px solid #515151}@media screen and (max-width:960px){#modx-leftbar-tabs-xcollapsed .x-layout-mini:after{border:none}}#modx-leftbar-tabs-xcollapsed .x-layout-mini:hover:after{border-left-color:#234368}.modx-tree{padding:0}#modx-file-tree .modx-tree:first-child{padding-top:4px}.x-tree-arrows .x-tree-elbow-end-minus,.x-tree-arrows .x-tree-elbow-end-plus,.x-tree-arrows .x-tree-elbow-minus,.x-tree-arrows .x-tree-elbow-plus{background:0 0}.x-tree-arrows .x-tree-elbow-end-minus:hover,.x-tree-arrows .x-tree-elbow-end-plus:hover,.x-tree-arrows .x-tree-elbow-minus:hover,.x-tree-arrows .x-tree-elbow-plus:hover{background:#d9d9d9;border-radius:50%}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{background:transparent 0 0;display:inline-block;width:10px;padding-left:4px;padding-right:4px;text-align:center;margin:0}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-end-plus:before,.x-tree-arrows .x-tree-elbow-minus:before,.x-tree-arrows .x-tree-elbow-plus:before{content:"\f0da"}.x-tree-arrows .x-tree-elbow-end-minus:before,.x-tree-arrows .x-tree-elbow-minus:before{content:"\f0d7"}.x-tree-node-el{color:#515151;font:normal 14px/2.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:0 0 0 8px;background-repeat:no-repeat;background-position:5px}.x-tree-node-el.is_folder{background:0 0}.x-tree-node-el .x-btn{box-shadow:none}.x-tree-node-el .icon{display:inline-block;width:1em;font-size:1.15em;line-height:.75em;vertical-align:-15%}.x-tree-node-el a span{padding-left:7px}.x-tree-node-el a span span{padding-left:0}.x-tree-node-el .icon-plus-circle,.x-tree-node-el .icon-refresh{font-size:1em;vertical-align:0}.unpublished,.unpublished a span{color:#b3b2b2!important;font-style:normal}.unpublished a span i.icon,.unpublished a span i.icon-large,.unpublished i.icon,.unpublished i.icon-large{color:#b3b2b2!important;font-style:normal}.hidemenu,.hidemenu a span{color:#999;font-style:italic}.hidemenu a span i.icon,.hidemenu a span i.icon-large,.hidemenu i.icon,.hidemenu i.icon-large{color:#999;font-style:normal}.deleted{color:rgba(175,90,98,.5)!important}.deleted i.icon,.deleted i.icon-large{color:rgba(175,90,98,.5)!important;font-style:normal}.deleted a span{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.element-node-disabled a span{color:#aaa}.x-tree-node{position:relative;background:#fff;color:#999}.x-tree-node .element-node-disabled a span,.x-tree-node .element-node-disabled i.icon,.x-tree-node .x-tree-node-disabled a span,.x-tree-node .x-tree-node-disabled i.icon{color:#aaa}.element-node-locked a span{font-style:inherit}.modx-tree-node-tool-ct{position:absolute;top:0;right:6px;bottom:0;line-height:1.8}.modx-tree-node-tool-ct .x-btn:focus,.modx-tree-node-tool-ct .x-btn:hover{color:#6cb24a!important}.x-tree-node-el .modx-tree-node-btn-create{position:absolute;top:0;right:6px;bottom:0;line-height:34px;opacity:0;transition:opacity .4s ease-in}.x-tree-node-el .modx-tree-node-btn-create .x-btn{color:#515151;opacity:.4;transition:opacity .2s ease-in-out,color .2s ease-in-out}.x-tree-node-el .modx-tree-node-btn-create .x-btn:focus,.x-tree-node-el .modx-tree-node-btn-create .x-btn:hover{opacity:1;color:#6cb24a}.x-tree-node-el:focus .modx-tree-node-btn-create,.x-tree-node-el:hover .modx-tree-node-btn-create{opacity:1}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.tree-pseudoroot-node.x-tree-node-el{background-color:#f1f1f1;font:500 14px/3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;position:relative;padding:0 0 0 4px}.tree-pseudoroot-node.x-tree-node-el a span{color:#53595f}.tree-pseudoroot-node.x-tree-node-el>.icon{color:#53595f}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct{line-height:3;opacity:.5}.tree-pseudoroot-node.x-tree-node-el .modx-tree-node-tool-ct .x-btn{margin-left:2px}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-collapsed{border-bottom:1px solid #e4e4e4}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded span,.tree-pseudoroot-node.x-tree-node-el.x-tree-node-expanded>.icon{color:#53595f}.tree-pseudoroot-node.x-tree-node-el.x-tree-node-over{background-color:#e4e4e4;color:#53595f}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct{background:#fbfbfb;overflow-x:auto}.tree-pseudoroot-node.x-tree-node-el+.x-tree-node-ct:empty,.tree-pseudoroot-node.x-tree-node-el+div>.x-tree-node-ct:empty{padding:0}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct{opacity:1}.tree-pseudoroot-node.x-tree-node-el:hover .modx-tree-node-tool-ct .x-btn{color:inherit}.x-tree-elbow,.x-tree-elbow-end{display:inline-block}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.ext-ie .x-tree-node-el input{height:15px;width:15px}#modx-leftbar .icon,.x-tree-node .icon{background:0 0;border:0;display:inline-block;margin:0;padding:3px;text-align:center;opacity:.8}#modx-leftbar .icon.icon-code:before,#modx-leftbar .icon.icon-cogs:before,#modx-leftbar .icon.icon-columns:before,#modx-leftbar .icon.icon-folder:before,#modx-leftbar .icon.icon-th-large:before,.x-tree-node .icon.icon-code:before,.x-tree-node .icon.icon-cogs:before,.x-tree-node .icon.icon-columns:before,.x-tree-node .icon.icon-folder:before,.x-tree-node .icon.icon-th-large:before{font-weight:900}#modx-leftbar .icon i,.x-tree-node .icon i{font-style:normal}#modx-leftbar .icon button,.x-tree-node .icon button{display:none}.x-tree-node-ct .x-tree-node .icon{position:relative;top:-1px;left:-1px}.x-dd-drag-ghost a,.x-dd-drag-ghost a span,.x-tree-node a,.x-tree-node a span{color:#515151}.x-tree-node div.x-tree-drag-insert-below{border-bottom:2px solid #a8c3e2!important}.x-tree-node div.x-tree-drag-insert-above{border-top:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #a8c3e2!important}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #a8c3e2!important}.x-tree-node .x-tree-drag-append a span{background-color:#e4e4e4;border-color:#e4e4e4}.x-tree-node .x-tree-node-over{background-color:#e4e4e4}.x-tree-node .x-tree-selected{background-color:#d6e7f8}.x-tree-node .x-tree-expanded{color:#234368;background-color:#e4e4e4}.x-tree-node .x-tree-expanded a{color:#234368}.x-tree-node .x-tree-expanded a span{color:#234368}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}.icon-rss:before{content:"\f09e"}.icon-cal:before,.icon-ical:before,.icon-ics:before,.icon-vcs:before{content:"\f133"}.icon-db:before,.icon-sql:before{content:"\f1c0"}.icon-7z:before,.icon-bz2:before,.icon-dmg:before,.icon-gz:before,.icon-iso:before,.icon-rar:before,.icon-tar:before,.icon-tgz:before,.icon-zip:before{content:"\f1c6"}.icon-backup:before,.icon-bak:before,.icon-bk:before{content:"\f1da"}.icon-bmp:before,.icon-gif:before,.icon-jpeg:before,.icon-jpg:before,.icon-png:before,.icon-svg:before,.icon-tiff:before{content:"\f1c5"}.icon-bat:before,.icon-scr:before,.icon-sh:before{content:"\f120"}.icon-log:before,.icon-txt:before{content:"\f15c"}.icon-aac:before,.icon-aif:before,.icon-aiff:before,.icon-flac:before,.icon-m4a:before,.icon-mp3:before,.icon-ogg:before,.icon-wav:before,.icon-wma:before{content:"\f1c7"}.icon-3gp:before,.icon-avi:before,.icon-fla:before,.icon-flv:before,.icon-m4v:before,.icon-mov:before,.icon-mp4:before,.icon-mpeg:before,.icon-mpg:before,.icon-swf:before,.icon-wmv:before{content:"\f1c8"}.icon-access:before,.icon-htaccess:before{content:"\f023"}.icon-as:before,.icon-cfm:before,.icon-jar:before,.icon-java:before,.icon-php:before,.icon-rb:before{content:"\f1c9"}.icon-doc:before,.icon-docx:before{content:"\f1c2"}.icon-csv:before,.icon-xls:before,.icon-xlsx:before{content:"\f1c3"}.icon-ppt:before,.icon-pptx:before{content:"\f1c4"}.icon-pdf:before{content:"\f1c1"}.icon-htm:before,.icon-html:before,.icon-xml:before{content:"\f1c9"}.icon-coffeescript:before,.icon-js:before,.icon-json:before{content:"\f1c9"}.icon-css:before,.icon-less:before,.icon-scss:before,.icon-styl:before{content:"\f1c9"}.icon-action{background-image:url(../images/restyle/icons/application_osx_terminal.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-action.x-tree-node-el{background-position:5px 5px!important}.icon-action:before{content:' '}.icon-namespace{background-image:url(../images/restyle/icons/computer.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-namespace.x-tree-node-el{background-position:5px 5px!important}.icon-namespace:before{content:' '}.icon-list-new{background-image:url(../images/restyle/icons/layout_add.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-list-new.x-tree-node-el{background-position:5px 5px!important}.icon-list-new:before{content:' '}.icon-mark-active{background-image:url(../images/restyle/icons/layout_edit.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-mark-active.x-tree-node-el{background-position:5px 5px!important}.icon-mark-active:before{content:' '}.icon-mark-complete{background-image:url(../images/restyle/icons/layout_header.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-mark-complete.x-tree-node-el{background-position:5px 5px!important}.icon-mark-complete:before{content:' '}.icon-package{background-image:url(../images/restyle/icons/package.png)!important;padding-right:5px!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-package.x-tree-node-el{background-position:5px 5px!important}.icon-package:before{content:' '}.icon-locked{background-image:url(../images/restyle/icons/lock_edit.png)!important;background-repeat:no-repeat!important;background-position:center!important;min-width:16px;min-height:16px;vertical-align:middle}.icon-locked.x-tree-node-el{background-position:5px 5px!important}.icon-locked:before{content:' '}.icon-lock{content:"\f023"}#modx-resource-tree-panel .x-accordion-hd{background-position:0 0}#modx-element-tree-panel .x-accordion-hd{background-position:0 -32px}#modx-file-tree-panel .x-accordion-hd{background-position:0 -64px}#modx-static-page-settings .x-accordion-hd{background-position:0 -96px}.x-tree-node-el .x-tree-node-icon{display:inline-block}.x-tree-node-loading .x-tree-node-icon{background-image:url(../images/modx-theme/tree/loading.gif)!important}.x-tree-node-loading a span{color:#444;font-style:italic}.tree-context:before{content:"\f0ac"}.tree-resource:before{content:"\f15b"}.tree-static-resource:before{content:"\f15c"}.tree-weblink:before{content:"\f0c1"}.tree-symlink:before{content:"\f0c5"}.icon-folder:before,.parent-resource:before{content:"\f07b"}.x-tree-node-expanded .icon-folder:before,.x-tree-node-expanded .parent-resource:before{content:"\f07c"}.locked-resource:before{content:"\f023"!important}.ext-ie .x-tree-node-el input{height:15px;width:15px}.x-tree-root-ct{border-radius:0;overflow:hidden;padding:0!important}.x-tree-root-node{margin:0}.x-tree-node{color:#515151}.x-dd-drag-ghost a,.x-tree-node a{color:#515151}.x-dd-drag-ghost a span,.x-tree-node a span{color:#515151}.x-tree-node .x-tree-node-disabled a span{color:#d1d0d0}.x-tree-node div.x-tree-drag-insert-below{border-bottom-color:#686868}.x-tree-node div.x-tree-drag-insert-above{border-top-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom-color:#686868}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top-color:#686868}.x-tree-node .x-tree-drag-append a span{background-color:#dfdfdf;border-color:#e4e4e4}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-add.gif)}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-over.gif)}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-under.gif)}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../images/modx-theme/tree/drop-between.gif)}#modx-leftbar-header{height:57px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:left;justify-content:left;padding:.67rem 1rem;box-sizing:border-box;color:#53595f}#modx-leftbar-header img{max-width:33%;max-height:100%}#modx-leftbar-header a{color:#53595f;text-decoration:none;font:normal 25px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px}#modx-leftbar-header a:focus,#modx-leftbar-header a:hover{color:#234368}#modx-leftbar-header a:after{content:"\f06e";margin-left:5px;font-size:14px;opacity:.5}#modx-leftbar-header img+a{padding-left:.67rem}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip-wrap{margin:0;padding:0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip{display:-ms-flexbox;display:flex;width:100%}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li{margin-left:0;float:none;-ms-flex-positive:1;flex-grow:1;text-align:center;box-sizing:border-box}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li#modx-leftbar-tabpanel__modx-trash-link{border-right:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li:hover{color:#234368}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active{background:#f1f1f1}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:after{box-shadow:none}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip li.x-tab-strip-active:before{background:0 0}#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-clear,#modx-leftbar-tabpanel .x-tab-panel-header .x-tab-strip .x-tab-edge{display:none}#modx-leftbar-tabpanel__modx-trash-link .icon{opacity:.5}#modx-leftbar-tabpanel__modx-trash-link .icon:hover{color:#cf1124}#modx-leftbar-tabpanel__modx-trash-link.active .icon{opacity:1}.modx-browser-rte{background:#fff}.modx-browser-tree{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-tree,.x-window .modx-browser-tree{border-right:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-view-ct{background:#fff;border-radius:3px;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.modx-browser-rte .modx-browser-view-ct,.x-window .modx-browser-view-ct{border-radius:0;box-shadow:none}.modx-browser-thumb-wrap{float:left;margin:5px;overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center}.modx-browser-thumb-wrap.x-view-over .modx-browser-placeholder{color:#515151}.modx-browser-thumb-wrap.x-view-over .modx-browser-thumb{border:1px dotted #515151}.modx-browser-thumb-wrap.x-view-selected .modx-browser-placeholder{color:#234368}.modx-browser-thumb-wrap.x-view-selected .modx-browser-thumb{border:1px solid #234368}.modx-browser-thumb{background:#fff;border:1px solid #e4e4e4;height:100px;line-height:100px;padding:5px;width:100px}.modx-browser-thumb img{max-width:100%;vertical-align:middle;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.modx-browser-placeholder{font-size:14px;color:#dcdcdc}.details .modx-browser-placeholder{font-weight:700;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100px;width:100%;font-size:24px;overflow:hidden}.modx-browser-list-item{padding:0 5px 0 5px}.modx-browser-list-item>span{background-position:center left!important;border-bottom:1px solid #e4e4e4;clear:both;display:block;min-height:16px;padding:5px 0 5px 20px;position:relative}.modx-browser-list-item>span:before{font-size:14px;position:absolute;left:2px}.modx-browser-list-item>span span{display:inline-block;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.modx-browser-list-item>span span.file-size{float:right;width:13%}.modx-browser-list-item>span span.image-size{float:right;width:13%}.modx-browser-list-item.x-view-over>span{background:#fbfbfb}.modx-browser-list-item.x-view-selected>span{background:#fbfbfb;color:#234368}.modx-browser-view-ct .loading-indicator{background-position:left;background-repeat:no-repeat;font-size:11px;margin:10px;padding-left:20px}.modx-browser-pathbbar table,.modx-browser-pathbbar tbody,.modx-browser-pathbbar td,.modx-browser-pathbbar tr{display:block}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell{position:relative}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row td.x-toolbar-cell:before{content:"\f328";font-size:14px;opacity:.6;position:absolute;top:50%;left:0;text-align:center;width:30px}.modx-browser-pathbbar .x-toolbar-left .x-toolbar-left-row .modx-browser-filepath{background:0 0;box-sizing:border-box;border-radius:0;border:0;border-top:1px solid #e4e4e4;margin:0!important;padding-left:30px;width:100%;height:32px!important}.modx-browser-details-ct{background:#fff;border-radius:3px}.modx-browser-rte .modx-browser-details-ct,.x-window .modx-browser-details-ct{border-left:1px solid #e4e4e4;border-radius:0;box-shadow:none}.modx-browser-detail-thumb{color:#000;cursor:default;padding:5px;position:relative}.modx-browser-detail-thumb.preview{cursor:pointer}.modx-browser-detail-thumb.preview:before{content:"\f002";font-size:56px;margin-top:-28px;opacity:0;position:absolute;top:50%;left:0;text-align:center;width:100%;text-shadow:0 0 10px rgba(0,0,0,.2);transition:opacity .25s}.modx-browser-detail-thumb.preview:hover:before{opacity:.6}.modx-browser-detail-thumb img{display:block;margin:0 auto;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}.modx-browser-details-info{border-top:1px solid #e4e4e4;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;padding:15px;text-align:left}.modx-browser-details-info b{color:#53595f;display:block;margin-bottom:2px}.modx-browser-details-info span{display:block;margin-bottom:10px}.modx-browser-fullview{text-align:center}.modx-browser-fullview img{display:block;margin:0 auto;width:100%;max-width:100%;height:auto;background-color:#ccc;background-image:url(../images/modx-theme/transparency-pattern.png)}@media screen and (max-width:960px){.modx-browser{top:15px!important;max-height:100%!important;overflow-y:scroll}.modx-browser-panel{width:100%!important;min-height:700px;margin:15px 0!important;background-color:#fff!important}.modx-browser-tree,.modx-browser-view-ct{width:35%!important;max-width:35%!important;padding:0 5px;display:inline-block!important;position:relative!important;float:left;left:0!important}.modx-browser-details-ct{width:20%!important;max-width:20%!important;padding:0 5px;display:inline-block!important;position:relative!important;float:left;left:0!important}.modx-browser-details-ct *,.modx-browser-tree *,.modx-browser-view-ct *{font-size:12px!important}.modx-browser-details-ct input,.modx-browser-tree input,.modx-browser-view-ct input{padding:5px!important}.modx-browser-tree .x-toolbar-ct tbody tr td{display:table-cell}.modx-browser .x-panel-tbar-noheader,.modx-browser .x-toolbar,.modx-browser-view-ct .x-panel-body,.modx-browser-view-ct .x-panel-tbar,.modx-browser-view-ct .x-panel-tbar .x-toolbar,.modx-browser-view-ct .x-panel-tbar-noheader{width:100%!important}.modx-browser-view-ct .x-panel-tbar .x-toolbar-cell label{line-height:2.2}.modx-browser-thumb-wrap{width:24%;margin:5px;padding:5px}.modx-browser-thumb{max-width:100%;height:25px;line-height:25px;overflow:hidden;padding:0}.modx-browser-thumb img{max-width:100%}.modx-browser-placeholder{height:50px}.modx-browser-details-info{padding:5px}}.x-window{box-shadow:0 0 15px 0 rgba(0,0,0,.2);border-radius:3px;opacity:0;overflow:visible;-webkit-backface-visibility:hidden;transition:opacity .25s ease-in-out,transform .25s ease-in-out;transform:scale(1) translate3d(0,0,0)}.x-window.anim-ready{transform:scale(.7) translate3d(0,0,0)}.x-window.zoom-in{opacity:1;transform:scale(1) translate3d(0,0,0)}.x-window.zoom-out{transform:scale(1.3) translate3d(0,0,0);opacity:0}.x-window .x-window-tl,.x-window .x-window-tr{padding:0}.x-window .x-window-tc{z-index:1}.x-window .x-window-tc .x-window-header{background-color:#f4f4f4;border-bottom:1px solid #f4f4f4;border-radius:3px 3px 0 0;color:#515151;font:normal 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;padding:8px;text-align:center}.x-window.x-panel-collapsed .x-window-tl{border-bottom:1px solid #dcdcdc}.x-window.x-panel-collapsed .x-window-header{border-radius:3px}.x-window .x-window-bwrap{overflow:visible}.x-window .x-window-bwrap .x-window-ml,.x-window .x-window-bwrap .x-window-mr{padding:0}.x-window .x-window-bwrap .x-window-mc{border:0;padding:0}.x-window .x-window-bwrap .x-window-mc .x-panel-bl,.x-window .x-window-bwrap .x-window-mc .x-panel-mc,.x-window .x-window-bwrap .x-window-mc .x-panel-ml,.x-window .x-window-bwrap .x-window-mc .x-panel-mr,.x-window .x-window-bwrap .x-window-mc .x-panel-tl{background:0 0;border:0;padding:0}.x-window .x-window-body{background-color:#fff!important;border:0;overflow-y:auto;padding:15px}.x-window.modx-window .x-window-body{padding-top:0}.x-window.modx-window .x-window-with-tabs .x-window-body,.x-window.modx-window.modx-alert .x-window-body,.x-window.modx-window.modx-confirm .x-window-body,.x-window.modx-window.modx-console .x-window-body{padding-top:15px}.x-window .x-panel-bwrap{background:#fff;padding:0}.x-window .x-panel-bwrap .x-panel-bwrap{background:0 0;box-shadow:none;overflow:visible;padding:0}.x-window .x-window-with-tabs .x-window-body{background-color:#fbfbfb!important;overflow:visible}.x-window .x-window-with-tabs .x-panel-bwrap{background:0 0;box-shadow:none;overflow:visible;padding:0}.x-window form.x-panel-body:first-of-type{overflow:visible!important}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap{padding-top:3px}.x-window .modx-tabs .x-tab-panel-header .x-tab-strip-wrap .x-tab-strip{border:0}.x-window .x-tab-panel-bwrap{background:#fff;box-shadow:0 4px 6px rgba(0,0,0,.15);padding:10px}.x-window .x-tab-panel-bwrap .x-tab-panel-body{overflow-y:auto}.x-window .x-tab-panel-bwrap .x-tab-panel-body .modx-panel .x-panel-bwrap{padding:0}.x-window .x-window-bl,.x-window .x-window-br{padding:0}.x-window .x-window-bc .x-window-footer{background-color:#fff;border-top:1px solid #fff;border-radius:0 0 3px 3px;box-sizing:border-box;padding:5px 15px 15px;width:100%!important}.x-window.x-window-maximized{margin:0}.x-window.x-window-maximized .x-window-tc{padding:0}.x-window.x-window-maximized .x-window-mc{padding:0}.x-window.modx-console .modx-console-text{background-color:#fff;border:none;font:12px SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;height:auto!important}.x-window.modx-console .debug{color:#515151}.x-window.modx-console .success{color:#6cb24a}.x-window.modx-console .warn{color:#4a90e2}.x-window.modx-console .error{color:#cf1124}.x-progress-wrap{width:100%!important;border:1px solid #6cb24a}.x-progress-wrap .x-progress-inner{background-color:#fdfefd}.x-progress-wrap .x-progress-bar{background-color:#6cb24a;border:0}.x-progress-wrap .x-progress-text{color:#fff;font-size:11px;font-weight:700}.x-progress-wrap .x-progress-text-back{color:#515151}.ext-el-mask{background-color:#fff;opacity:0;transition:opacity .25s}.ext-el-mask.fade-in{opacity:.5}.x-masked .ext-el-mask{opacity:.5;z-index:9}.ext-mb-icon{display:inline-block;float:left;position:relative;width:40px!important}.ext-mb-icon:before{color:#4a90e2;content:'';font-size:32px;position:absolute;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);right:0;text-align:left;width:100%}.ext-mb-icon.ext-mb-info:before{color:#4a90e2;content:"\f05a"}.ext-mb-icon.ext-mb-question:before{color:#4a90e2;content:"\f059"}.ext-mb-icon.ext-mb-warning:before{color:#f0b429;content:"\f071"}.ext-mb-icon.ext-mb-error:before{color:#cf1124;content:"\f057"}.ext-mb-content{display:block;margin-left:0!important}.ext-el-mask-msg{background-color:#fff;border:1px solid #dcdcdc;box-shadow:0 4px 6px rgba(0,0,0,.15);border-radius:3px;padding:5px;z-index:10}.ext-el-mask-msg div{background-color:transparent;border:0;color:#515151;cursor:default;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ext-el-mask-msg .modx-lockmask div{color:#cf1124}.x-mask-loading div{background-image:url(../images/modx-theme/grid/loading.gif)}.dashboard{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:-.5rem 0 0 -1rem!important;padding:0 15px}.dashboard .dashboard-button{padding:5px 20px;border-radius:3px;border:1px solid transparent;background:#fff;text-decoration:none;display:inline-block}.dashboard .dashboard-button-green{background:#6cb24a;color:#fff;border-color:#6cb24a}.dashboard .dashboard-button[disabled]{background-color:#e4e4e4}.dashboard .dashboard-button:not([disabled]):hover{border-color:#e4e4e4}.dashboard .dashboard-block{margin:1rem 0 0 1rem}.dashboard .dashboard-block:not(.headless){background-color:#fff;border-radius:3px}.dashboard .dashboard-block.headless .body{padding:0;overflow:visible;max-height:100%}.dashboard .dashboard-block.quarter{width:calc(25% - 1rem)}.dashboard .dashboard-block.one-third{width:calc(33.33332% - 1rem)}.dashboard .dashboard-block.half{width:calc(50% - 1rem)}.dashboard .dashboard-block.two-thirds{width:calc(66.66668% - 1rem)}.dashboard .dashboard-block.three-quarters{width:calc(75% - 1rem)}.dashboard .dashboard-block.full{width:calc(100% - 1rem)}.dashboard .dashboard-block.double{width:calc(100% - 1rem);min-height:250px;margin-top:2rem}.dashboard .dashboard-block.double .body{max-height:100%;height:100%}.dashboard .dashboard-block.double .dashboard-buttons{height:100%}.dashboard .dashboard-block.double .dashboard-button{-ms-flex-align:center;align-items:center}.dashboard .dashboard-block h4{color:#515151;font-size:13px;padding-bottom:2px}.dashboard .dashboard-block em{font-style:italic}.dashboard .dashboard-block strong{font-weight:700}.dashboard .dashboard-block ul{list-style:circle outside;padding:0 0 0 15px}.dashboard .dashboard-block img{max-width:100%}.dashboard .dashboard-block .draggable{cursor:move}.dashboard .dashboard-block .action-buttons{margin-left:auto;margin-right:10px}.dashboard .dashboard-block .action-buttons button{border:none;cursor:pointer;opacity:0;background:0 0}.dashboard .dashboard-block .action-buttons button.hidden{display:none}.dashboard .dashboard-block .body{color:#444;font-size:12px;height:auto;max-height:300px;overflow:auto;padding:10px;position:relative}.dashboard .dashboard-block .body .action-buttons{position:absolute;top:20px;right:-5px}.dashboard .dashboard-block .title-wrapper{border-bottom:1px solid #f0f0f0;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}.dashboard .dashboard-block .title-wrapper .title{border-radius:3px;background:#fff;color:#515151;font-size:12px;font-weight:700;margin:0;padding:15px 10px;zoom:1;-ms-flex-positive:1;flex-grow:1}.dashboard .dashboard-block .actions button{width:10px;height:10px}.dashboard .dashboard-block:hover .action-buttons button{opacity:1}.dashboard ul.configcheck{list-style-type:none;padding:0}.dashboard ul.configcheck li{margin-bottom:.5em;margin-top:.5em;padding:1em 1.618em;background-color:#fbfbfb}.dashboard ul.configcheck li h5{color:#cf1124}.dashboard ul.configcheck li p{color:#515151}.dashboard .news_article{overflow:hidden;border-bottom:1px solid #dfdfdf;padding:15px 0}.dashboard .news_article h2{font-size:18px}.dashboard .news_article h2 a{text-decoration:none}.dashboard .news_article h2{font-size:18px}.dashboard .news_article .date_stamp{float:right;font-size:12px;font-style:italic}.dashboard .configcheck a,.dashboard .news_article a{text-decoration:underline}.dashboard .configcheck a:hover,.dashboard .news_article a:hover{text-decoration:none}.dashboard .table-wrapper{width:100%;overflow:auto}.dashboard table{width:100%;border:1px solid #ddd;border-radius:5px}.dashboard table th{font-weight:700;padding:10px;border-bottom:2px solid #f0f0f0}.dashboard table td{padding:10px;border-bottom:1px solid #f0f0f0;white-space:nowrap;vertical-align:center}.dashboard table td .unpublished{font-style:italic;color:#999}.dashboard table td .deleted{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.dashboard table tr:last-child td{border:none}.dashboard table tr:last-child td tr:last-child td{border:none}.dashboard table tr:last-child td tr:last-child td:first-child{border-bottom-left-radius:10px}.dashboard table tr:last-child td tr:last-child td:last-child{border-bottom-right-radius:10px}.dashboard .widget-footer{padding-top:10px;border-top:1px solid #f0f0f0}.dashboard .widget-footer a{display:block;padding-bottom:5px;padding-top:5px;font-size:14px;text-decoration:none;text-align:center}.dashboard .widget-actions a{display:inline-block;padding:3px 5px;border:1px solid #e4e4e4;border-radius:3px;margin-left:5px;text-decoration:none}.dashboard .widget-actions a:first-child{margin-left:0}.dashboard .widget-actions a:hover{background:#f0f0f0}.dashboard .widget-actions a .icon{width:12px;height:12px;text-align:center;display:inline-block}.dashboard .no-results{padding:10px;text-align:center;color:#999}.dashboard .user-with-avatar{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.dashboard .user-with-avatar .user-avatar{margin-right:10px}.dashboard .user-with-avatar .user-avatar img{width:35px;border-radius:50%}.dashboard .user-with-avatar .user-name{color:#234368;font-weight:500}.dashboard .user-with-avatar .user-group{color:#999}.dashboard .resource .title{color:#234368;font-weight:500}.dashboard .occurred-date{color:#234368;font-weight:500}.dashboard .occurred-time{color:#999}#modx-news-feed-container img{max-width:100%}.dashboard-buttons{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;width:calc(100% + 1rem);margin:-1rem 0 0 -1rem}.dashboard-buttons .dashboard-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-color:#fff;border-radius:3px;margin:1rem 0 0 1rem;padding:20px;text-decoration:none;color:#53595f;-ms-flex:1;flex:1}.dashboard-buttons .dashboard-button:hover{color:#000}.dashboard-buttons .dashboard-button:hover .icon{opacity:.7}.dashboard-buttons .dashboard-button-icon{border-radius:20px;border:1px solid #6cb24a;background:rgba(108,178,74,.2);padding:10px;text-align:center}.dashboard-buttons .dashboard-button-icon .icon{font-weight:700;display:block;color:#6cb24a;font-size:16px;width:16px;height:16px;text-align:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:10px}.dashboard-buttons .dashboard-button-title{font-weight:700}::-webkit-scrollbar,::-webkit-scrollbar-thumb{width:1rem;height:1rem;border:.25rem solid transparent;border-radius:.5rem;background-color:transparent}::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(85,108,136,.1)}::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 1rem rgba(85,108,136,.2)}::-webkit-resizer,::-webkit-scrollbar-corner{background-color:transparent}.updates-widget .updates-title{font-weight:500;color:#234368}.updates-widget .updates-updateable{display:inline-block;background:#4a90e2;color:#fff;border-radius:20px;padding:2px 8px;font-weight:700}.updates-widget .updates-available,.updates-widget .updates-ok{padding:3px 8px;color:#fff;border-radius:3px;text-transform:uppercase;font-size:10px}.updates-widget .updates-ok{background:#6cb24a}.updates-widget .updates-available{background:#cf1124}#modx-panel-system-info .x-form-label-left .x-form-item{padding:0 5px}#modx-panel-system-info .x-form-label-left .x-form-item:nth-child(2n){background:#f0f0f0}#modx-panel-system-info .x-form-label-left .x-form-item .x-form-display-field{padding:7px 0}@media screen and (max-width:960px){.dashboard-buttons .dashboard-button{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.dashboard-buttons .dashboard-button-wrapper{margin-left:0;margin-top:5px}}@media screen and (max-width:960px){.dashboard .dashboard-block.half,.dashboard .dashboard-block.one-third,.dashboard .dashboard-block.quarter,.dashboard .dashboard-block.two-thirds{width:calc(100% - 1rem)}.dashboard-buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.dashboard-buttons .dashboard-button{padding:10px}.dashboard-buttons .dashboard-button-wrapper{display:none}}.nobg .x-panel-body{background:0 0;padding-right:1.5em}#managerbuttons{margin-bottom:1em;overflow:hidden;width:100%}#managerbuttons ul:after,#managerbuttons ul:before{content:" ";display:table}#managerbuttons ul:after{clear:both}#managerbuttons ul{margin:0;width:100%}#managerbuttons ul li{display:table;float:left;margin:0;padding:0 1%;position:relative;width:20%;box-sizing:border-box}#managerbuttons ul li:first-child{padding-left:0}#managerbuttons ul li:last-child{padding-right:0}#managerbuttons ul li a{background-color:#fff;border-radius:3px;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;color:#53595f;display:table-cell;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:700;padding:12px;position:relative;text-align:center;text-decoration:none;vertical-align:middle}#managerbuttons ul li a span{display:block;line-height:1.4}#managerbuttons ul li a span.headline{font-size:12px}#managerbuttons ul li a span.subline{font-weight:400}#managerbuttons ul li a span.icon{display:block;margin:0 auto;padding:0 0 10px;width:auto}#managerbuttons ul li a:hover span.icon{color:#234368}#contactus,#helpBanner{box-sizing:border-box;background:#fff;border:1px solid #e4e4e4;box-shadow:0 1px 0 #e4e4e4;margin:.75em 0 1.75em;padding:18px;width:100%}#contactus h3,#helpBanner h3{margin:0 0 1em}#helpBanner{margin-top:1.5em;min-height:112px;background-image:url(../images/modx-logo-color.svg),none;background-repeat:no-repeat;background-attachment:none;background-position:97% center;background-size:200px}#helpBanner #helpLogo{float:right;height:76px;margin-right:1em;width:200px}#contactus{box-sizing:border-box;float:left;width:60%}#contactus form{display:inline}#contactus input[type=email]{box-sizing:border-box;font-size:1.1em;margin-right:4px;padding:.4em;width:70%}#contactus input[type=submit]{border:0;cursor:pointer;font-size:1.1em;padding:6px 10px}#contactus p{color:#262626;margin:1em 0}#contactus form+p{margin:2em 0 0}#contactus a{color:#000;text-decoration:none}#contactus a:hover{text-decoration:underline}#contactus a:hover i{text-decoration:none}#contactus a i{margin:0 15px -6px 0}#mcsignup input.x-btn{padding:10px 15px}.icon.icon-2x{width:22px;text-align:center;vertical-align:text-bottom}#aboutMODX{box-sizing:border-box;background:#f0f0f0;float:left;margin:1em 0 0 2%;min-height:300px;padding:1em;width:38%}#aboutMODX p{line-height:1.6;margin:0 0 1em}#aboutMODX a{color:#234368;margin:-2px -4px;padding:2px 4px}#aboutMODX a:hover{background-color:#234368;color:#fff;text-decoration:none}.trashrow{background-color:#ccc!important}.x-btn-purge-all{color:#cf1124}.x-btn-purge-all:hover{background:#cf1124;box-shadow:0 0 0 1px #cf1124;color:#fff}.x-btn-restore-all{color:#6cb24a}.x-btn-restore-all:hover{background:#6cb24a;box-shadow:0 0 0 1px #6cb24a;color:#fff}#changelog-tab p{margin-bottom:.3rem}#changelog-tab h1{color:#515151}#changelog-tab h2{font-weight:700;margin-top:1rem}#changelog-tab ul{margin-bottom:1rem}body{color:#000;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}body a{color:#234368}body a:hover{color:#162a42}h2,h3{color:#515151;font:normal 25px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0 0 8px -1px}h3{font:550 15px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}strong{font-weight:700}em{font-style:italic}hr{background-color:#e4e4e4;border:0;color:#e4e4e4;height:1px;margin:20px 0}.aleft{text-align:left}.aright{text-align:right}.right{float:right}.left{float:left}.clear{clear:left}.bold{font-weight:700}.installed{color:#515151}.not-installed{color:#999;font-style:italic}.yellow{color:#fce588!important}.orange{color:#f0b429!important}.error,.red{color:#cf1124!important}.green{color:#6cb24a!important}.blue{color:#4a90e2!important}.primary{color:#6cb24a!important}.centered{text-align:center}.wait{background:transparent url(../images/style/wait.gif) no-repeat scroll center 55px;color:#53595f;font-size:15px;font-weight:700;padding:20px 10px 60px}.padding{background-color:#fff;padding:11px}.dashed{border-bottom:1px #90b1b9 dashed}.x-form-text,textarea.x-form-field{border-color:#e4e4e4}#modx-content,#modx-leftbar{transition:left .2s ease;position:absolute}#modx-leftbar-tabpanel{transition:all .6s ease}#modx-content{width:calc(100% - 370px);right:0;padding-left:.5rem;left:370px}.modx-form p{padding-bottom:10px}.x-layout-mini{left:2px}#modx-resource-content .x-panel-header{margin:0;padding:15px}#modx-resource-content .x-panel-bwrap{border:0}#modx-resource-content .modx-tv .modx-tv-label{width:auto;float:none;clear:none;padding:15px 0 4px;position:static}#modx-content-above .x-panel-bwrap,#modx-content-below .x-panel-bwrap{border:0}.x-tab-panel-header{box-sizing:border-box}.x-tab-panel-header .x-tab-strip li{box-sizing:border-box}@media screen and (max-width:960px){.x-viewport{overflow-y:auto}}@media screen and (max-width:960px){.x-viewport body{height:auto}}#modx-container{height:100%;width:100%;background:#f1f1f1}@media screen and (max-width:960px){#modx-container{height:auto}}@media screen and (max-width:1140px){#modx-page-settings-left,#modx-page-settings-right,#modx-resource-main-left,#modx-resource-main-right{box-sizing:border-box;width:100%!important;margin:0 auto 15px}#modx-page-settings-left .x-panel-body,#modx-page-settings-right .x-panel-body,#modx-resource-main-left .x-panel-body,#modx-resource-main-right .x-panel-body{height:auto!important;max-height:100%!important;width:auto!important;max-width:100%!important}}@media screen and (max-width:960px){#modx-chunk-form .main-wrapper,#modx-panel-plugin .main-wrapper,#modx-snippet-form .main-wrapper,#modx-template-form .main-wrapper,#modx-tv-tabs .main-wrapper{width:100%!important;padding:0}#modx-chunk-form .main-wrapper>.x-panel-bwrap,#modx-panel-plugin .main-wrapper>.x-panel-bwrap,#modx-snippet-form .main-wrapper>.x-panel-bwrap,#modx-template-form .main-wrapper>.x-panel-bwrap,#modx-tv-tabs .main-wrapper>.x-panel-bwrap{padding:1em}}@media screen and (max-width:960px){#modx-resource-main-right{margin:15px auto 0}}@media screen and (max-width:960px){.x-toolbar-ct{display:block}.x-toolbar-ct tbody{display:block}.x-toolbar-ct tbody tr{display:block}.x-toolbar-ct tbody tr td{display:block;width:100%}.x-toolbar-ct tbody tr td table{width:100%}.x-toolbar-ct tbody tr td table .x-form-field-wrap{width:100%!important;margin-left:0!important;margin-right:0!important}.x-toolbar-ct tbody tr td table .x-btn,.x-toolbar-ct tbody tr td table .x-form-text{width:100%!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box}.x-column{width:100%!important;margin-left:0!important;margin-right:0!important;float:none}}@media screen and (max-width:960px){#modx-tree-panel-usergroup .main-wrapper{width:100%!important;max-width:100%;position:relative;display:inline-block;float:left}}@media screen and (max-width:960px){.x-window{width:auto!important;max-width:100%!important;left:.5em!important;right:.5em!important}.x-window .x-window-body{width:100%!important;height:auto!important;box-sizing:border-box!important}.x-window .x-form-field-wrap{width:auto!important}.x-window input{width:100%!important;box-sizing:border-box;height:auto!important}}#modx-template-form .main-wrapper input{max-width:100%!important}@media screen and (max-width:960px){.x-column-inner>.x-column~.x-column{margin-left:0}}@media screen and (max-width:960px){#modx-import-base-path,.x-form-item label.x-form-item-label[for=modx-import-allowed-extensions],.x-form-item label.x-form-item-label[for=modx-import-base-path],.x-form-item label.x-form-item-label[for=modx-import-element],.x-form-item label.x-form-item-label[for=modx-import-parent],.x-form-item label.x-form-item-label[for=modx-import-resource-class]{width:auto!important;float:none}}#modx-import-allowed-extensions,#modx-import-base-path,#modx-import-element,#modx-import-resource-class{height:auto;width:100%!important;box-sizing:border-box}@media screen and (max-width:960px){#x-form-el-modx-import-allowed-extensions,#x-form-el-modx-import-base-path,#x-form-el-modx-import-element,#x-form-el-modx-import-resource-class{width:100%!important;padding-left:0!important}}.x-panel.drag-n-drop{z-index:0}.x-panel.drag-n-drop:before{position:absolute;top:0;right:0;left:0;bottom:0;display:block;content:' ';background:transparent url(../images/restyle/dragndrop.svg) no-repeat center;background-size:50% 50%;opacity:.1;z-index:-5}.x-panel.drag-n-drop>.x-panel-bwrap{background:0 0}.x-panel.drag-over .x-form-field{background:0 0}.x-panel.drag-over:after{content:"";top:0;right:0;bottom:0;left:0;position:absolute;display:block;opacity:.1;background:#6cb24a;border:5px solid #6cb24a}#modx-panel-packages.drag-n-drop:before{background:transparent url(../images/restyle/dragndrop.svg) no-repeat top;background-size:50% 30%;z-index:0}.x-panel-header{background:0 0;border:none;font-size:16px;margin:0;padding:0 0 10px 0}#modx-resource-tabs .x-panel-header{display:-ms-flexbox;display:flex;color:#515151;margin-bottom:5px;border-bottom:1px solid #e4e4e4}#modx-resource-tabs .x-panel-header .x-panel-header-text{-ms-flex-order:0;order:0;font-size:14px;-ms-flex:1;flex:1}#modx-resource-tabs .x-panel-header .x-tool.x-tool-toggle{-ms-flex-order:1;order:1;margin-left:auto}#modx-resource-main-left .x-panel-header{border-bottom:0;right:15px;position:absolute;z-index:9}#modx-resource-main-left .x-panel-header .x-panel-header-text{display:none}#modx-resource-main-left .x-panel-animated .x-panel-header,#modx-resource-main-left .x-panel-collapsed .x-panel-header{position:relative;padding-top:15px!important;width:100%;right:0}#modx-resource-main-left .x-panel-animated .x-panel-header .x-panel-header-text,#modx-resource-main-left .x-panel-collapsed .x-panel-header .x-panel-header-text{display:block}#modx-resource-tabs .x-panel-collapsed .x-panel-header{margin-bottom:0;padding:0;border-color:transparent}.x-small-editor .x-form-field{font-size:12px!important}.x-small-editor .x-form-num-field{text-align:left}.grid-row-inactive{color:#999!important}a.x-grid-link{color:#234368;text-decoration:underline}a.x-grid-link:focus,a.x-grid-link:hover{text-decoration:none}.x-editable-column{cursor:pointer}.x-editable-column:focus,.x-editable-column:hover{color:#234368}.x-editable-column:focus>div::after,.x-editable-column:hover>div::after{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free','Font Awesome 5 Brands';font-weight:900;content:"\f304";margin-left:.5em;color:#234368}.x-grid-buttons{text-align:center}.x-grid-buttons li{cursor:pointer;display:inline-block;font-size:1.1em;line-height:.7;margin-right:10px}.x-grid-buttons li:last-child{margin-right:0}.modx-page-header,.modx-page-header div{background-color:transparent!important}#modx-panel-welcome .modx-page-header,#modx-panel-welcome .modx-page-header div{margin:1rem}@media screen and (min-width:961px){#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header{margin-top:1.25rem;box-sizing:border-box}#modx-content>.x-panel-bwrap>.x-panel-body .modx-page-header+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel{margin:0}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{margin-top:1.25rem;font-weight:700;box-sizing:border-box;padding-left:18px;font-size:18px}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs+div{margin:1rem}#modx-content>.x-panel-bwrap>.x-panel-body>.x-panel .modx-header-breadcrumbs{width:100%!important}}#modx-content form.x-panel-body{background-color:transparent!important}@media screen and (max-width:960px){#modx-content{position:relative;width:auto!important;top:auto!important;left:auto!important}}#modx-content .modx_error{width:95%;margin:26px 0 0 15px}#modx-content .modx_error h2{margin:0 0 14px 0}#modx-content .modx_error .error_container{padding:10px;border:2px solid #cf1124;background:#f99;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#modx-content .modx_error .error_container ul{list-style:none;margin-top:6px;margin-left:0}#modx-content .modx_error .error_container ul li{margin-bottom:6px}#modx-content .modx_error .error_container ul li:last-child{margin-bottom:0}#modx-content .modx_error .error_container.multiple p:first-child{font-size:1.4em;font-weight:700}@media screen and (max-width:960px){#modx-content .x-panel-body{height:auto!important;max-height:100%!important;width:auto!important;max-width:100%!important}}#modx-mainpanel{height:100%;position:relative}.x-portal .x-panel-dd-spacer{margin-bottom:10px}.x-portlet{margin-bottom:10px}.x-portlet .x-panel-ml{padding-left:2px}.x-portlet .x-panel-mr{padding-right:2px}.x-portlet .x-panel-bl{padding-left:2px}.x-portlet .x-panel-br{padding-right:2px}.x-portlet .x-panel-body{background:#fff}.x-portlet .x-panel-mc{padding-top:2px}.x-portlet .x-panel-bc .x-panel-footer{padding-bottom:2px}.x-portlet .x-panel-nofooter .x-panel-bc{height:2px}.x-portal-space h2{border-bottom:1px solid #d4d4d4;margin:0 0 8px;padding:0 0 2px}.x-column-tree .x-panel-header{border-bottom-width:0;padding:3px 0 0 0}.x-column-tree .x-panel-header .x-panel-header-text{margin-left:3px}.x-column-tree .x-tree-node{zoom:1}.x-column-tree .x-tree-node-el{zoom:1}.x-column-tree .x-tree-selected{background:#d9e8fb}.x-column-tree .x-tree-node a{line-height:18px;vertical-align:middle}.x-column-tree .x-tree-node .x-tree-selected a span{background:0 0;color:#515151}.x-tree-col{float:left;overflow:hidden;padding:0 1px;zoom:1}.x-tree-col-text,.x-tree-hd-text{color:#515151;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;overflow:hidden;padding:3px 3px 3px 5px;text-overflow:ellipsis;white-space:nowrap}.x-tree-headers{cursor:default;margin-top:3px;zoom:1}.x-tree-hd{border-left:1px solid #eee;border-right:1px solid #d0d0d0;float:left;overflow:hidden}.ux-row-action-cell .x-grid3-cell-inner{padding:1px 0 0 0}.ext-ie .ux-row-action-item{width:16px}.ext-ie .ux-row-action-text{width:auto}.ux-row-action-item span{background:transparent url(../images/style/go-next.png) no-repeat scroll 1px 4px;display:inline!important;line-height:24px;margin:0 5px;padding:5px 5px 5px 22px;vertical-align:middle}.icon-uninstall span{background:url(../images/style/delete.png) no-repeat scroll 1px 4px transparent}.package-details span{background:url(../images/style/info.png) no-repeat scroll 1px 4px transparent}.package-download span{background:url(../images/style/download.png) no-repeat scroll 1px 4px transparent}.package-installed span{background:url(../images/style/accept.png) no-repeat scroll 1px 4px transparent}.ext-ie .ux-row-action-item span{width:auto}.x-grid-group-hd div{height:16px;position:relative}.ux-grow-action-item{background-position:0 50%!important;background-repeat:no-repeat;cursor:pointer;float:left;margin:0;min-width:16px;padding:0!important}.ext-ie .ux-grow-action-item{width:16px}.ux-action-right{float:right;margin:0 3px 0 2px;padding:0!important}.ux-grow-action-text{background:transparent none!important;float:left;margin:0!important;padding:0!important}.ux-row-action-item:hover{background:#dfdfdf;background:linear-gradient(center bottom,#dfdfdf 0,#fff 100%);border:1px solid #9caf78;color:#636f4c!important}.ux-row-action-item:active{background-color:#fff;background-image:none;border-color:#cfcfcf silver #aaa;box-shadow:0 0 3px #aaa inset;margin:2px 1px 0}.ux-row-action-item:active span{text-shadow:none}.ux-row-action-item{background:linear-gradient(center bottom,#dcdcdc 0,#fcfcfc 100%);background:url(/manager/templates/default/images/modx-theme/form/button-bg.png) repeat-x scroll 0 bottom #dcdcdc;border-collapse:separate;border-color:#cacaca silver #aaa;border-radius:3px;border-style:solid;border-width:1px;box-shadow:rgba(0,0,0,.2) 0 0 1px;color:#444;cursor:pointer;float:left;font-weight:700;margin:2px 1px 0;overflow:hidden;padding:3px;position:relative;text-shadow:0 1px 0 #fafafa}.x-tree-checkbox{background:url(../../../assets/ext3/resources/images/default/form/checkbox.gif) no-repeat 0 0;height:13px;margin:0 1px;vertical-align:middle;width:13px}.x-tree-checkbox-over .x-tree-checkbox{background-position:-13px 0}.x-tree-checkbox-down .x-tree-checkbox{background-position:-26px 0}.x-tree-node-disabled .x-tree-checkbox{background-position:-39px 0}.x-tree-node-checked{background-position:0 -13px}.x-tree-checkbox-over .x-tree-node-checked{background-position:-13px -13px}.x-tree-checkbox-down .x-tree-node-checked{background-position:-26px -13px}.x-tree-node-disabled .x-tree-node-checked{background-position:-39px -13px}.x-tree-node-grayed{background-position:0 -26px}.x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -26px}.x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -26px}.x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -26px}.x-tree-branch-unchecked .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-grayed{background-position:0 0}.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px 0}.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px 0}.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-unchecked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px 0}.x-tree-branch-checked .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-grayed{background-position:0 -13px}.x-tree-branch-checked .x-tree-checkbox-over .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-over .x-tree-node-grayed{background-position:-13px -13px}.x-tree-branch-checked .x-tree-checkbox-down .x-tree-checkbox,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-checked,.x-tree-branch-checked .x-tree-checkbox-down .x-tree-node-grayed{background-position:-26px -13px}.x-tree-branch-checked .x-tree-node-disabled .x-tree-checkbox,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-checked,.x-tree-branch-checked .x-tree-node-disabled .x-tree-node-grayed{background-position:-39px -13px}.x-rbtn button{-moz-outline:0 none;background-color:transparent;background-position:center;background-repeat:no-repeat;border:0 none;cursor:pointer;font-size:1px;height:16px;line-height:1px;margin:0;outline:0 none;padding:0;width:24px}.x-rbtn{table-layout:fixed}.x-rbtn td{background-image:url(../images/restyle/icons/rbtn.gif);background-repeat:no-repeat;border:0 none;height:21px;padding:0;vertical-align:middle;width:24px}.x-rbtn td.x-rbtn-first{background-position:0 0}.x-rbtn td.x-rbtn-item{background-position:0 -42px}.x-rbtn td.x-rbtn-last{background-position:right -21px}.x-rbtn td.x-rbtn-first-active{background-position:0 -63px}.x-rbtn td.x-rbtn-item-active{background-position:0 -105px}.x-rbtn td.x-rbtn-last-active{background-position:right -84px}.ux-up-item{background-color:#f0f0f0;background-image:url(../../../assets/modext/util/filetree/img/white_bg.png);background-repeat:no-repeat;cursor:default;height:17px;line-height:17px;margin-bottom:1px;position:relative}.ux-up-icon-file{float:left;height:16px;margin-right:4px;vertical-align:-3px;width:16px}.ux-up-indicator{background-color:#ff0;height:17px;opacity:.4;position:absolute;width:40px}.ux-up-icon-state{cursor:pointer;float:right;margin-right:2px;width:16px;z-index:-1}.ux-up-icon-queued{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/page_white_get.png)}.ux-up-icon-uploading{background-image:url(../../../../ext2/resources/images/default/grid/wait.gif)}.ux-up-icon-done{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/accept.png)}.ux-up-icon-failed{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/error.png)}.ux-up-icon-stopped{background-image:url(../../../assets/modext/util/filetree/img/silk/icons/stop.png)}.ux-up-text{float:left}.ux-ftm-nodename{color:#515151;cursor:default!important;font-weight:700}.ux-icon-combo-icon{background-position:0 50%;background-repeat:no-repeat;height:14px;width:18px}.ux-icon-combo-input{padding-left:25px}.x-form-field-wrap .ux-icon-combo-icon{left:5px;top:3px}.ux-icon-combo-item{background-position:3px 50%!important;background-repeat:no-repeat!important;padding-left:24px!important}.modx-status-msg{background:#6cb24a;border-radius:3px;box-sizing:border-box;bottom:20px;color:#fff;max-width:360px;padding:15px 15px 15px 65px;position:fixed;right:15px;width:25%;z-index:20000}@media screen and (max-width:960px){.modx-status-msg{max-width:100%}}.modx-status-msg:before{position:relative}.modx-status-msg:after{background:#fff;border-radius:50%;color:#6cb24a;content:"\f00c";display:inline-block;font-size:16px;height:38px;left:15px;line-height:36px;margin-right:13px;position:absolute;text-align:center;top:15px;vertical-align:middle;width:38px}.modx-status-msg h3,.modx-status-msg span{font-size:14px}.modx-status-msg h3{color:#fff;margin:0}.modx-status-msg .has-position-center-center{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%)}.modx-status-msg .has-position-center-top{bottom:auto;left:0;margin-left:auto;margin-right:auto;right:0;top:15px}.modx-status-msg .has-position-right-top{bottom:auto;left:auto;right:15px;top:15px}@media screen and (max-width:960px){.modx-status-msg,.modx-status-msg .has-position-center-center,.modx-status-msg .has-position-center-top,.modx-status-msg .has-position-right-top{border-radius:0;top:auto;bottom:0;left:0;right:0;width:100%}}iframe[classname=x-hidden]{visibility:hidden}.ext-ux-uploaddialog-addbtn{background:url(../images/restyle/fileup/file-add.gif) no-repeat left center!important}.ext-ux-uploaddialog-removebtn{background:url(../images/restyle/fileup/file-remove.gif) no-repeat left center!important}.ext-ux-uploaddialog-resetbtn{background:url(../images/restyle/fileup/reset.gif) no-repeat left center!important}.ext-ux-uploaddialog-uploadstartbtn{background:url(../images/restyle/fileup/upload-start.gif) no-repeat left center!important}.ext-ux-uploaddialog-uploadstopbtn{background:url(../images/restyle/fileup/upload-stop.gif) no-repeat left center!important}.ext-ux-uploaddialog-indicator-stoped{background:url(../images/restyle/fileup/done.gif) no-repeat center center;height:16px;width:16px}.ext-ux-uploaddialog-indicator-processing{background:url(../images/restyle/fileup/loading.gif) no-repeat center center;height:16px;width:16px}.ext-ux-uploaddialog-state{background-position:center center;background-repeat:no-repeat;text-align:center}.ext-ux-uploaddialog-state-0{background-image:url(../images/restyle/fileup/uncheck.gif)}.ext-ux-uploaddialog-state-1{background-image:url(../images/restyle/fileup/check.gif)}.ext-ux-uploaddialog-state-2{background-image:url(../images/restyle/fileup/failed.gif)}.ext-ux-uploaddialog-state-3{background-image:url(../images/restyle/fileup/file-uploading.gif)}.tq-treegrid .tq-treegrid-col{border:none}.tq-treegrid .tq-treegrid-icons{float:left}.tq-treegrid .x-tree-node-el{line-height:13px;padding:1px 3px 1px 5px}.tq-treegrid .tq-treegrid-static .x-tree-ec-icon{display:none}.tq-treegrid .tq-treegrid-static .x-tree-node-el{cursor:default}.modx-tree-load-msg{color:#000;font-size:.9em;line-height:1;padding:3px;white-space:pre-line}#modx-grid-policy-permissions .x-grid3-cell-inner,#modx-grid-policy-permissions .x-grid3-hd-inner,#modx-grid-template-permissions .x-grid3-cell-inner,#modx-grid-template-permissions .x-grid3-hd-inner{white-space:normal}.container{margin:20px 15px 20px}.container,.x-plain-body,.x-plain-bwrap{overflow:visible}.shadowbox,.x-form-label-left{border-radius:3px}.shadowbox .x-form-label-left,.x-form-label-left .x-form-label-left,.x-tab-panel-bwrap .shadowbox,.x-tab-panel-bwrap .x-form-label-left{border-radius:0;box-shadow:none}.x-window .shadowbox,.x-window .x-form-label-left{border-radius:0;box-shadow:none}.panel-desc{border-bottom:1px solid #f0f0f0;border-radius:0;color:#53595f;line-height:1.5;padding:15px!important}.x-window .panel-desc{margin-top:0;margin-bottom:15px}.panel-desc .x-panel-bwrap{background-color:transparent!important}.with-title .panel-desc{margin:0}.panel-desc p{padding:0}.main-wrapper{background-color:#fff;padding:15px 15px 15px 15px}.with-title .main-wrapper{padding:0 15px 10px 15px}.left-col{padding-right:15px}.right-col{padding-left:15px}.modx-page-header{-ms-flex-order:1;order:1;font:normal 20px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;margin:0;padding-left:18px}#modx-panel-welcome .modx-page-header{padding-left:0}@media screen and (max-width:960px){.modx-page-header{width:100%;text-align:center;font-size:2em}}.modx-header-breadcrumbs .breadcrumbs{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline}.modx-header-breadcrumbs .breadcrumbs h2{-ms-flex-order:1;order:1;font:normal 20px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f;margin:0!important;padding-left:0}@media screen and (max-width:960px){.modx-header-breadcrumbs .breadcrumbs h2{width:100%;text-align:center;font-size:2em}}.modx-header-breadcrumbs ul{-ms-flex-order:0;order:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}.modx-header-breadcrumbs ul li{font:normal 18px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#53595f}.modx-header-breadcrumbs ul li a{font:normal 18px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;text-decoration:none}.modx-header-breadcrumbs ul li a.menu_hidden{font-style:italic}.modx-header-breadcrumbs ul li a.menu_hidden:hover{color:#162a42}.modx-header-breadcrumbs ul li a.not_published{color:#b3b2b2!important}.modx-header-breadcrumbs ul li a.not_published:hover{color:#162a42}.modx-header-breadcrumbs ul li a.deleted{color:rgba(175,90,98,.5)!important;text-decoration:line-through}.modx-header-breadcrumbs ul li a.deleted:hover{color:#162a42}.modx-header-breadcrumbs ul li:after{content:"\f054";padding:0 10px;color:#999;font-size:12px}#modx-abtn-menu-list .x-menu-item{padding:10px 20px}#modx-abtn-menu-list .x-menu-item .x-menu-item-text{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:justify;justify-content:space-between}#modx-abtn-menu-list .x-menu-item .x-menu-item-text .icon{text-align:center;margin-left:10px}#modx-abtn-menu-list #modx-abtn-delete{color:#cf1124}#modx-abtn-menu-list #modx-abtn-delete:hover{color:#cf1124}#modx-abtn-menu-list #modx-abtn-undelete{color:#6cb24a}#modx-abtn-menu-list #modx-abtn-undelete:hover{color:#6cb24a}#modx-resource-tabs .x-tab-panel-bwrap{box-shadow:none}#modx-resource-tabs .x-tab-panel-body,#modx-resource-tabs .x-tab-panel-bwrap{overflow:visible!important}#modx-resource-settings{background:#f1f1f1}#modx-resource-settings #modx-resource-main-left{padding:15px;background:#fff;border-top-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;position:relative}#modx-resource-settings .x-panel-collapsed{min-height:18px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel{padding:15px;background:#fff;border-radius:3px}#modx-resource-settings #modx-resource-main-right .modx-resource-panel:not(:last-child){margin-bottom:15px}#modx-resource-settings .main-wrapper{padding:0;background:0 0}#modx-resource-settings .x-datetime-wrap table{width:100%}#modx-resource-settings .x-datetime-wrap table td{width:50%!important;max-width:50%!important}#modx-resource-settings .x-datetime-wrap table td input{width:calc(100% - 30px)}#modx-resource-settings .x-datetime-wrap table td:first-child{padding-right:5px!important}#modx-resource-settings .x-datetime-wrap table td:last-child{padding-left:5px!important}#modx-resource-settings .x-datetime-wrap table .x-form-field-trigger-wrap{width:100%!important}.tvs-wrapper{padding:0}#modx-resource-tvs-div{border-top-width:0;visibility:hidden}.modx-permissions-list{color:#777;font-size:12px}.modx-permissions-list-textarea{background-color:transparent!important;border:0!important}.x-selectable,.x-selectable *{-khtml-user-select:all!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important}#ux-lightbox{left:0;line-height:0;position:absolute;text-align:center;width:100%;z-index:15000}#ux-lightbox img{height:auto;width:auto}#ux-lightbox a img{border:medium none}#ux-lightbox-outerImageContainer{background-color:#fff;height:250px;margin:0 auto;position:relative;width:250px}#ux-lightbox-imageContainer{padding:10px}#ux-lightbox-loading{background:url(../images/style/loading.gif) no-repeat scroll center 15% transparent;height:25%;left:0;line-height:0;position:absolute;text-align:center;top:40%;width:100%}#ux-lightbox-hoverNav{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}#ux-lightbox-hoverNav a{outline:medium none}#ux-lightbox-imageContainer>#ux-lightbox-hoverNav{left:0}#ux-lightbox-navNext,#ux-lightbox-navPrev{display:block;height:100%;width:49%}#ux-lightbox-navPrev{float:left;left:0}#ux-lightbox-navPrev:hover,#ux-lightbox-navPrev:visited:hover{background:transparent url(images/lb-prev.png) no-repeat scroll left 33%}#ux-lightbox-navNext{float:right;right:0}#ux-lightbox-navNext:hover,#ux-lightbox-navNext:visited:hover{background:transparent url(images/lb-next.png) no-repeat scroll right 33%}#ux-lightbox-outerDataContainer{margin:0 auto;width:100%}#ux-lightbox-dataContainer{background-color:#fff;font:normal 11px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:10px;overflow:auto}#ux-lightbox-data{color:#666;padding:0 10px}#ux-lightbox-data #ux-lightbox-details{float:left;text-align:left;width:80%}#ux-lightbox-data #ux-lightbox-caption{font-weight:700}#ux-lightbox-data #ux-lightbox-imageNumber{clear:left;display:block;padding-bottom:1em}#ux-lightbox-data #ux-lightbox-navClose{background:transparent url(../images/style/close.png) no-repeat scroll 0 0;float:right;height:16px;outline:medium none;padding-bottom:.7em;width:16px}#ux-lightbox-overlay,#ux-lightbox-shim{background-color:#515151;border:0 none;height:500px;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:14999}#ux-lightbox-shim{background-color:transparent;z-index:89}.x-panel-body-noheader .x-grid3-row{position:relative}.x-grid3-col-main{padding:10px 5px 35px}.x-grid3-cell-inner .x-grid3-col-main h3{color:#555;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;line-height:1;margin:0 0 5px 0}.package-installed{color:#515151;opacity:.5}#modx-grid-package .green{text-align:center}#modx-grid-package .green a{color:#cf1124!important}#modx-grid-package .red{color:#6cb24a!important;text-align:center}.grid-with-buttons .x-grid3-row-expanded .x-grid3-row-body{margin:-45px 2px 0 -20px;padding:18px 25px 40px}.home-panel ol{border-top:1px solid #cacaca}.home-panel ol li{border-bottom:1px solid #e0e0e0}.home-panel ol li:first-child{border-top-color:0 none}.home-panel ol li:last-child{border-bottom:0 none}.home-panel ol li button{background-color:transparent;border:0 none;color:#53595f;cursor:pointer;display:block;font-size:15px;font-weight:700;padding:12px 20px 12px 6px;position:relative;text-decoration:none}.home-panel ol li:hover button{color:#234368}.home-panel ol li:hover button:before{content:"\f002";font-size:14px;margin-top:-7px;opacity:.6;position:absolute;top:50%;right:0;text-align:center;width:20px;transition:opacity .25s}.home-panel ol li .highlighted{color:#909090;float:right;font-size:10px;padding:13px 10px 0}.home-panel ol li button .ct{color:#aaa;margin-right:10px}.home-panel .one_half{overflow:hidden}.home-panel .desc-wrapper{margin-top:38px}.home-panel .text-wrapper{font-style:normal;max-height:none}.home-panel .provider_name{background-color:#9bb3bf;line-height:1.8}.home-panel .pnl_instructions{margin:20px 0}.home-panel .stats{clear:both;display:inline-block;margin-top:15px}.home-panel .stats p{color:#777;font-size:12px;font-style:italic;line-height:1.5}.pbr-provider-box{float:left;margin-top:10px;width:250px}.pbr-provider-home{padding:10px}.pbr-repository-view{padding:10px}.pbr-tag-view{padding:10px}.pbr-details-right{float:right!important;text-align:right!important}.pbr-thumb-downloaded{opacity:.5}.one_half{float:left;margin-right:3%;position:relative;width:48%}.last{clear:right;margin-right:0!important}.package-readme{padding:8px 11px 0}#modx-package-browser-home{margin-top:5px;min-height:560px}.empty-text-wrapper{color:#888;font-weight:700;line-height:1.4;padding:12px}.aside-details{background-color:transparent;border:1px solid #e4e4e4;border-radius:3px;margin-right:0}.aside-details .selected h5{color:#53595f;font-size:14px;margin:10px 0}.aside-details .selected img{border-radius:3px;border:1px solid #e4e4e4;height:80px;width:90px}.aside-details .item{margin-bottom:25px}.aside-details .item li,.aside-details .item p{color:#888;line-height:1.4}.aside-details .item a{color:#53595f;font-style:italic}.aside-details h4{color:#53595f;font-size:14px;margin:10px 0;text-transform:uppercase}.aside-details .aside-details h4{font-size:12px;margin-top:0}.aside-details .selected{border-bottom:1px solid #e4e4e4;color:#000;padding:15px;text-align:center}.aside-details .description,.aside-details .instructions{background-color:#fbfbfb;color:#53595f;font-size:12px;line-height:1.2;padding:15px}.aside-details .infos{padding:15px;font-size:12px;line-height:1.2;color:#53595f}.aside-details .infos ul li{font-size:12px}.aside-details .infos ul li .infoname{color:#999;font-weight:700;width:50%}.aside-details .infos ul li .infovalue{max-width:50%;padding:0 8px;word-wrap:break-word}.aside-details .infos ul li span{display:inline-block;padding:0}.thumb-wrapper{background-color:#f5f5f5;border-radius:3px;border:1px solid #ccc;cursor:pointer;float:left;margin:0 15px 15px 0;overflow:hidden;padding:0 0 12px;position:relative;width:250px;box-sizing:border-box}.thumb-wrapper *{box-sizing:border-box}.thumb-wrapper .thumb{background-color:#fff;border-bottom:1px solid #ccc;height:170px;margin:0 auto;width:100%;text-align:center;position:relative}.thumb-wrapper .thumb img{max-height:100%;max-width:100%}.thumb-wrapper .thumb .no-preview{color:#888;display:inline-block;font-size:9px;font-weight:700;padding:31px 15px;text-align:center;text-transform:uppercase}.thumb-wrapper span.downloaded,.thumb-wrapper span.featured{background-color:#6cb24a;color:#fff;font-weight:700;padding:5px 0;position:absolute;text-align:center;text-shadow:none;top:68px;width:100%}.thumb-wrapper span.featured{background-color:#234368;color:#fff;top:initial;bottom:0}.thumb-wrapper span{display:block;overflow:hidden;text-align:left;text-shadow:0 1px 0 #fff;margin:0;text-overflow:ellipsis;white-space:nowrap}.thumb-wrapper .name{color:#53595f;font-size:12px;font-weight:700;float:left;padding:12px 8px 12px 12px;width:55%}.thumb-wrapper .downloads{color:#999;font-size:9px;text-transform:uppercase;float:right;text-align:right;padding:8px 12px 8px 8px;width:45%}.thumb-wrapper .thumb-description{clear:both;padding:0 12px;font-size:12px;overflow:hidden;height:50px}.thumb-wrapper .thumb-footer{color:#999;font-size:9px;text-transform:uppercase;padding:8px 12px 0;text-align:center}.thumb-wrapper.selected{background-color:#fff;padding:0 0 12px;border-color:#234368}.thumb-wrapper.selected img{border:0 none}.pbr-thumb{background:#dfdfdf;height:80px;padding:3px;width:100px}.pbr-thumb img{height:80px;width:100px}.x-grid3-hd-info-col,.x-grid3-hd-meta-col,.x-grid3-hd-text-col{text-align:center}.x-grid3-col-text-col{font-size:11px;text-align:center}.x-grid3-col-info-col,.x-grid3-col-meta-col{font-size:11px;font-weight:700;text-align:center}.x-grid3-col-meta-col{color:#53595f}.x-grid3-col-info-col{color:#6cb24a}.not-installed .x-grid3-col-info-col{color:#cf1124}.inline-button{-webkit-box-align:center;display:inline;margin:0 auto;padding:8px;text-align:center}.meta-wrapper{color:grey;max-height:400px;overflow:auto;padding:15px;word-wrap:break-word}.meta-wrapper ul{list-style:disc inside;padding-left:15px}.meta-wrapper h1{font-size:1.2em}.meta-wrapper h2{font-size:1.15em}.meta-wrapper h3{font-size:1.1em}.meta-wrapper h4{font-size:1.05em}.meta-wrapper h5{font-size:1em}.meta-wrapper h6{font-size:.95em}.window-no-padding .x-panel-mc{padding:0!important}.window-no-padding .x-panel-ml{padding:0!important}.window-no-padding .x-panel-mr{padding:0!important}.window-no-padding .x-tab-panel-noborder{margin:0!important}.upload-error{color:#cf1124}.upload-success{color:#6cb24a}.upload-status-text{white-space:normal}.upload-thumb{float:right}.auto-width{width:auto!important}.auto-height{height:auto!important}.x-datetime-inline-editor .x-datetime-wrap{margin-top:0!important} /*# sourceMappingURL=index-min.css.map */ \ No newline at end of file diff --git a/manager/templates/default/css/index.css b/manager/templates/default/css/index.css index aacf562c5ca..81feda4b3c3 100644 --- a/manager/templates/default/css/index.css +++ b/manager/templates/default/css/index.css @@ -402,10 +402,15 @@ template { [hidden] { display: none; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ .fa, .fas, .far, .fal, +.fad, .fab { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; @@ -602,9 +607,6 @@ readers do not read off random characters that represent icons */ .fa-adn:before { content: "\f170"; } -.fa-adobe:before { - content: "\f778"; } - .fa-adversal:before { content: "\f36a"; } @@ -614,6 +616,9 @@ readers do not read off random characters that represent icons */ .fa-air-freshener:before { content: "\f5d0"; } +.fa-airbnb:before { + content: "\f834"; } + .fa-algolia:before { content: "\f36c"; } @@ -824,9 +829,24 @@ readers do not read off random characters that represent icons */ .fa-bacon:before { content: "\f7e5"; } +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + +.fa-bahai:before { + content: "\f666"; } + .fa-balance-scale:before { content: "\f24e"; } +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + .fa-ban:before { content: "\f05e"; } @@ -866,6 +886,9 @@ readers do not read off random characters that represent icons */ .fa-battery-three-quarters:before { content: "\f241"; } +.fa-battle-net:before { + content: "\f835"; } + .fa-bed:before { content: "\f236"; } @@ -893,6 +916,9 @@ readers do not read off random characters that represent icons */ .fa-bicycle:before { content: "\f206"; } +.fa-biking:before { + content: "\f84a"; } + .fa-bimobject:before { content: "\f378"; } @@ -977,6 +1003,18 @@ readers do not read off random characters that represent icons */ .fa-bookmark:before { content: "\f02e"; } +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + .fa-bowling-ball:before { content: "\f436"; } @@ -986,6 +1024,9 @@ readers do not read off random characters that represent icons */ .fa-box-open:before { content: "\f49e"; } +.fa-box-tissue:before { + content: "\e05b"; } + .fa-boxes:before { content: "\f468"; } @@ -1016,6 +1057,9 @@ readers do not read off random characters that represent icons */ .fa-btc:before { content: "\f15a"; } +.fa-buffer:before { + content: "\f837"; } + .fa-bug:before { content: "\f188"; } @@ -1043,6 +1087,9 @@ readers do not read off random characters that represent icons */ .fa-business-time:before { content: "\f64a"; } +.fa-buy-n-large:before { + content: "\f8a6"; } + .fa-buysellads:before { content: "\f20d"; } @@ -1109,6 +1156,9 @@ readers do not read off random characters that represent icons */ .fa-car-side:before { content: "\f5e4"; } +.fa-caravan:before { + content: "\f8ff"; } + .fa-caret-down:before { content: "\f0d7"; } @@ -1280,6 +1330,9 @@ readers do not read off random characters that represent icons */ .fa-chrome:before { content: "\f268"; } +.fa-chromecast:before { + content: "\f838"; } + .fa-church:before { content: "\f51d"; } @@ -1343,6 +1396,9 @@ readers do not read off random characters that represent icons */ .fa-cloud-upload-alt:before { content: "\f382"; } +.fa-cloudflare:before { + content: "\e07d"; } + .fa-cloudscale:before { content: "\f383"; } @@ -1415,6 +1471,9 @@ readers do not read off random characters that represent icons */ .fa-compress:before { content: "\f066"; } +.fa-compress-alt:before { + content: "\f422"; } + .fa-compress-arrows-alt:before { content: "\f78c"; } @@ -1442,6 +1501,9 @@ readers do not read off random characters that represent icons */ .fa-copyright:before { content: "\f1f9"; } +.fa-cotton-bureau:before { + content: "\f89e"; } + .fa-couch:before { content: "\f4b8"; } @@ -1541,6 +1603,9 @@ readers do not read off random characters that represent icons */ .fa-d-and-d-beyond:before { content: "\f6ca"; } +.fa-dailymotion:before { + content: "\e052"; } + .fa-dashcube:before { content: "\f210"; } @@ -1550,6 +1615,9 @@ readers do not read off random characters that represent icons */ .fa-deaf:before { content: "\f2a4"; } +.fa-deezer:before { + content: "\e077"; } + .fa-delicious:before { content: "\f1a5"; } @@ -1628,6 +1696,9 @@ readers do not read off random characters that represent icons */ .fa-discourse:before { content: "\f393"; } +.fa-disease:before { + content: "\f7fa"; } + .fa-divide:before { content: "\f529"; } @@ -1730,6 +1801,9 @@ readers do not read off random characters that represent icons */ .fa-edge:before { content: "\f282"; } +.fa-edge-legacy:before { + content: "\e078"; } + .fa-edit:before { content: "\f044"; } @@ -1793,6 +1867,9 @@ readers do not read off random characters that represent icons */ .fa-euro-sign:before { content: "\f153"; } +.fa-evernote:before { + content: "\f839"; } + .fa-exchange-alt:before { content: "\f362"; } @@ -1808,6 +1885,9 @@ readers do not read off random characters that represent icons */ .fa-expand:before { content: "\f065"; } +.fa-expand-alt:before { + content: "\f424"; } + .fa-expand-arrows-alt:before { content: "\f31e"; } @@ -1841,6 +1921,9 @@ readers do not read off random characters that represent icons */ .fa-facebook-square:before { content: "\f082"; } +.fa-fan:before { + content: "\f863"; } + .fa-fantasy-flight-games:before { content: "\f6dc"; } @@ -1850,6 +1933,9 @@ readers do not read off random characters that represent icons */ .fa-fast-forward:before { content: "\f050"; } +.fa-faucet:before { + content: "\e005"; } + .fa-fax:before { content: "\f1ac"; } @@ -1970,6 +2056,9 @@ readers do not read off random characters that represent icons */ .fa-firefox:before { content: "\f269"; } +.fa-firefox-browser:before { + content: "\e007"; } + .fa-first-aid:before { content: "\f479"; } @@ -2129,6 +2218,9 @@ readers do not read off random characters that represent icons */ .fa-git:before { content: "\f1d3"; } +.fa-git-alt:before { + content: "\f841"; } + .fa-git-square:before { content: "\f1d2"; } @@ -2204,6 +2296,9 @@ readers do not read off random characters that represent icons */ .fa-google-drive:before { content: "\f3aa"; } +.fa-google-pay:before { + content: "\e079"; } + .fa-google-play:before { content: "\f3ab"; } @@ -2297,6 +2392,9 @@ readers do not read off random characters that represent icons */ .fa-grunt:before { content: "\f3ad"; } +.fa-guilded:before { + content: "\e07e"; } + .fa-guitar:before { content: "\f7a6"; } @@ -2330,9 +2428,15 @@ readers do not read off random characters that represent icons */ .fa-hand-holding-heart:before { content: "\f4be"; } +.fa-hand-holding-medical:before { + content: "\e05c"; } + .fa-hand-holding-usd:before { content: "\f4c0"; } +.fa-hand-holding-water:before { + content: "\f4c1"; } + .fa-hand-lizard:before { content: "\f258"; } @@ -2366,6 +2470,9 @@ readers do not read off random characters that represent icons */ .fa-hand-scissors:before { content: "\f257"; } +.fa-hand-sparkles:before { + content: "\e05d"; } + .fa-hand-spock:before { content: "\f259"; } @@ -2375,9 +2482,18 @@ readers do not read off random characters that represent icons */ .fa-hands-helping:before { content: "\f4c4"; } +.fa-hands-wash:before { + content: "\e05e"; } + .fa-handshake:before { content: "\f2b5"; } +.fa-handshake-alt-slash:before { + content: "\e05f"; } + +.fa-handshake-slash:before { + content: "\e060"; } + .fa-hanukiah:before { content: "\f6e6"; } @@ -2387,15 +2503,30 @@ readers do not read off random characters that represent icons */ .fa-hashtag:before { content: "\f292"; } +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + .fa-hat-wizard:before { content: "\f6e8"; } -.fa-haykal:before { - content: "\f666"; } - .fa-hdd:before { content: "\f0a0"; } +.fa-head-side-cough:before { + content: "\e061"; } + +.fa-head-side-cough-slash:before { + content: "\e062"; } + +.fa-head-side-mask:before { + content: "\e063"; } + +.fa-head-side-virus:before { + content: "\e064"; } + .fa-heading:before { content: "\f1dc"; } @@ -2438,6 +2569,9 @@ readers do not read off random characters that represent icons */ .fa-history:before { content: "\f1da"; } +.fa-hive:before { + content: "\e07f"; } + .fa-hockey-puck:before { content: "\f453"; } @@ -2468,6 +2602,9 @@ readers do not read off random characters that represent icons */ .fa-hospital-symbol:before { content: "\f47e"; } +.fa-hospital-user:before { + content: "\f80d"; } + .fa-hot-tub:before { content: "\f593"; } @@ -2495,6 +2632,9 @@ readers do not read off random characters that represent icons */ .fa-house-damage:before { content: "\f6f1"; } +.fa-house-user:before { + content: "\e065"; } + .fa-houzz:before { content: "\f27c"; } @@ -2516,6 +2656,9 @@ readers do not read off random characters that represent icons */ .fa-icicles:before { content: "\f7ad"; } +.fa-icons:before { + content: "\f86d"; } + .fa-id-badge:before { content: "\f2c1"; } @@ -2525,6 +2668,9 @@ readers do not read off random characters that represent icons */ .fa-id-card-alt:before { content: "\f47f"; } +.fa-ideal:before { + content: "\e013"; } + .fa-igloo:before { content: "\f7ae"; } @@ -2555,9 +2701,18 @@ readers do not read off random characters that represent icons */ .fa-info-circle:before { content: "\f05a"; } +.fa-innosoft:before { + content: "\e080"; } + .fa-instagram:before { content: "\f16d"; } +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + .fa-intercom:before { content: "\f7af"; } @@ -2573,6 +2728,9 @@ readers do not read off random characters that represent icons */ .fa-italic:before { content: "\f033"; } +.fa-itch-io:before { + content: "\f83a"; } + .fa-itunes:before { content: "\f3b4"; } @@ -2669,6 +2827,9 @@ readers do not read off random characters that represent icons */ .fa-laptop-code:before { content: "\f5fc"; } +.fa-laptop-house:before { + content: "\e066"; } + .fa-laptop-medical:before { content: "\f812"; } @@ -2786,6 +2947,12 @@ readers do not read off random characters that represent icons */ .fa-luggage-cart:before { content: "\f59d"; } +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\e067"; } + .fa-lyft:before { content: "\f3c3"; } @@ -2861,6 +3028,9 @@ readers do not read off random characters that represent icons */ .fa-maxcdn:before { content: "\f136"; } +.fa-mdb:before { + content: "\f8ca"; } + .fa-medal:before { content: "\f5a2"; } @@ -2909,6 +3079,9 @@ readers do not read off random characters that represent icons */ .fa-meteor:before { content: "\f753"; } +.fa-microblog:before { + content: "\e01a"; } + .fa-microchip:before { content: "\f2db"; } @@ -2948,6 +3121,9 @@ readers do not read off random characters that represent icons */ .fa-mixcloud:before { content: "\f289"; } +.fa-mixer:before { + content: "\e056"; } + .fa-mizuni:before { content: "\f3cc"; } @@ -2999,6 +3175,9 @@ readers do not read off random characters that represent icons */ .fa-mountain:before { content: "\f6fc"; } +.fa-mouse:before { + content: "\f8cc"; } + .fa-mouse-pointer:before { content: "\f245"; } @@ -3026,9 +3205,6 @@ readers do not read off random characters that represent icons */ .fa-nimblr:before { content: "\f5a8"; } -.fa-nintendo-switch:before { - content: "\f418"; } - .fa-node:before { content: "\f419"; } @@ -3056,6 +3232,9 @@ readers do not read off random characters that represent icons */ .fa-object-ungroup:before { content: "\f248"; } +.fa-octopus-deploy:before { + content: "\e082"; } + .fa-odnoklassniki:before { content: "\f263"; } @@ -3083,6 +3262,9 @@ readers do not read off random characters that represent icons */ .fa-optin-monster:before { content: "\f23c"; } +.fa-orcid:before { + content: "\f8d2"; } + .fa-osi:before { content: "\f41a"; } @@ -3182,12 +3364,18 @@ readers do not read off random characters that represent icons */ .fa-penny-arcade:before { content: "\f704"; } +.fa-people-arrows:before { + content: "\e068"; } + .fa-people-carry:before { content: "\f4ce"; } .fa-pepper-hot:before { content: "\f816"; } +.fa-perbyte:before { + content: "\e083"; } + .fa-percent:before { content: "\f295"; } @@ -3212,15 +3400,24 @@ readers do not read off random characters that represent icons */ .fa-phone:before { content: "\f095"; } +.fa-phone-alt:before { + content: "\f879"; } + .fa-phone-slash:before { content: "\f3dd"; } .fa-phone-square:before { content: "\f098"; } +.fa-phone-square-alt:before { + content: "\f87b"; } + .fa-phone-volume:before { content: "\f2a0"; } +.fa-photo-video:before { + content: "\f87c"; } + .fa-php:before { content: "\f457"; } @@ -3236,6 +3433,9 @@ readers do not read off random characters that represent icons */ .fa-pied-piper-pp:before { content: "\f1a7"; } +.fa-pied-piper-square:before { + content: "\e01e"; } + .fa-piggy-bank:before { content: "\f4d3"; } @@ -3266,6 +3466,9 @@ readers do not read off random characters that represent icons */ .fa-plane-departure:before { content: "\f5b0"; } +.fa-plane-slash:before { + content: "\e069"; } + .fa-play:before { content: "\f04b"; } @@ -3341,6 +3544,12 @@ readers do not read off random characters that represent icons */ .fa-project-diagram:before { content: "\f542"; } +.fa-pump-medical:before { + content: "\e06a"; } + +.fa-pump-soap:before { + content: "\e06b"; } + .fa-pushed:before { content: "\f3e1"; } @@ -3416,6 +3625,9 @@ readers do not read off random characters that represent icons */ .fa-receipt:before { content: "\f543"; } +.fa-record-vinyl:before { + content: "\f8d9"; } + .fa-recycle:before { content: "\f1b8"; } @@ -3443,6 +3655,9 @@ readers do not read off random characters that represent icons */ .fa-registered:before { content: "\f25d"; } +.fa-remove-format:before { + content: "\f87d"; } + .fa-renren:before { content: "\f18b"; } @@ -3524,6 +3739,9 @@ readers do not read off random characters that represent icons */ .fa-rupee-sign:before { content: "\f156"; } +.fa-rust:before { + content: "\e07a"; } + .fa-sad-cry:before { content: "\f5b3"; } @@ -3533,6 +3751,9 @@ readers do not read off random characters that represent icons */ .fa-safari:before { content: "\f267"; } +.fa-salesforce:before { + content: "\f83b"; } + .fa-sass:before { content: "\f41e"; } @@ -3617,6 +3838,9 @@ readers do not read off random characters that represent icons */ .fa-shield-alt:before { content: "\f3ed"; } +.fa-shield-virus:before { + content: "\e06c"; } + .fa-ship:before { content: "\f21a"; } @@ -3629,6 +3853,9 @@ readers do not read off random characters that represent icons */ .fa-shoe-prints:before { content: "\f54b"; } +.fa-shopify:before { + content: "\e057"; } + .fa-shopping-bag:before { content: "\f290"; } @@ -3671,6 +3898,9 @@ readers do not read off random characters that represent icons */ .fa-simplybuilt:before { content: "\f215"; } +.fa-sink:before { + content: "\e06d"; } + .fa-sistrix:before { content: "\f3ee"; } @@ -3764,6 +3994,9 @@ readers do not read off random characters that represent icons */ .fa-snowplow:before { content: "\f7d2"; } +.fa-soap:before { + content: "\e06e"; } + .fa-socks:before { content: "\f696"; } @@ -3776,24 +4009,42 @@ readers do not read off random characters that represent icons */ .fa-sort-alpha-down:before { content: "\f15d"; } +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + .fa-sort-alpha-up:before { content: "\f15e"; } +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + .fa-sort-amount-down:before { content: "\f160"; } +.fa-sort-amount-down-alt:before { + content: "\f884"; } + .fa-sort-amount-up:before { content: "\f161"; } +.fa-sort-amount-up-alt:before { + content: "\f885"; } + .fa-sort-down:before { content: "\f0dd"; } .fa-sort-numeric-down:before { content: "\f162"; } +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + .fa-sort-numeric-up:before { content: "\f163"; } +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + .fa-sort-up:before { content: "\f0de"; } @@ -3812,6 +4063,12 @@ readers do not read off random characters that represent icons */ .fa-speakap:before { content: "\f3f3"; } +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + .fa-spider:before { content: "\f717"; } @@ -3845,6 +4102,9 @@ readers do not read off random characters that represent icons */ .fa-stack-overflow:before { content: "\f16c"; } +.fa-stackpath:before { + content: "\f842"; } + .fa-stamp:before { content: "\f5bf"; } @@ -3902,12 +4162,21 @@ readers do not read off random characters that represent icons */ .fa-stopwatch:before { content: "\f2f2"; } +.fa-stopwatch-20:before { + content: "\e06f"; } + .fa-store:before { content: "\f54e"; } .fa-store-alt:before { content: "\f54f"; } +.fa-store-alt-slash:before { + content: "\e070"; } + +.fa-store-slash:before { + content: "\e071"; } + .fa-strava:before { content: "\f428"; } @@ -3971,12 +4240,18 @@ readers do not read off random characters that represent icons */ .fa-swatchbook:before { content: "\f5c3"; } +.fa-swift:before { + content: "\f8e1"; } + .fa-swimmer:before { content: "\f5c4"; } .fa-swimming-pool:before { content: "\f5c5"; } +.fa-symfony:before { + content: "\f83d"; } + .fa-synagogue:before { content: "\f69b"; } @@ -4112,6 +4387,9 @@ readers do not read off random characters that represent icons */ .fa-ticket-alt:before { content: "\f3ff"; } +.fa-tiktok:before { + content: "\e07b"; } + .fa-times:before { content: "\f00d"; } @@ -4139,6 +4417,9 @@ readers do not read off random characters that represent icons */ .fa-toilet-paper:before { content: "\f71e"; } +.fa-toilet-paper-slash:before { + content: "\e072"; } + .fa-toolbox:before { content: "\f552"; } @@ -4166,6 +4447,9 @@ readers do not read off random characters that represent icons */ .fa-traffic-light:before { content: "\f637"; } +.fa-trailer:before { + content: "\e041"; } + .fa-train:before { content: "\f238"; } @@ -4253,12 +4537,18 @@ readers do not read off random characters that represent icons */ .fa-uikit:before { content: "\f403"; } +.fa-umbraco:before { + content: "\f8e8"; } + .fa-umbrella:before { content: "\f0e9"; } .fa-umbrella-beach:before { content: "\f5ca"; } +.fa-uncharted:before { + content: "\e084"; } + .fa-underline:before { content: "\f0cd"; } @@ -4271,6 +4561,9 @@ readers do not read off random characters that represent icons */ .fa-uniregistry:before { content: "\f404"; } +.fa-unity:before { + content: "\e049"; } + .fa-universal-access:before { content: "\f29a"; } @@ -4286,6 +4579,9 @@ readers do not read off random characters that represent icons */ .fa-unlock-alt:before { content: "\f13e"; } +.fa-unsplash:before { + content: "\e07c"; } + .fa-untappd:before { content: "\f405"; } @@ -4376,6 +4672,9 @@ readers do not read off random characters that represent icons */ .fa-users-cog:before { content: "\f509"; } +.fa-users-slash:before { + content: "\e073"; } + .fa-usps:before { content: "\f7e1"; } @@ -4403,6 +4702,12 @@ readers do not read off random characters that represent icons */ .fa-venus-mars:before { content: "\f228"; } +.fa-vest:before { + content: "\e085"; } + +.fa-vest-patches:before { + content: "\e086"; } + .fa-viacoin:before { content: "\f237"; } @@ -4442,12 +4747,24 @@ readers do not read off random characters that represent icons */ .fa-vine:before { content: "\f1ca"; } +.fa-virus:before { + content: "\e074"; } + +.fa-virus-slash:before { + content: "\e075"; } + +.fa-viruses:before { + content: "\e076"; } + .fa-vk:before { content: "\f189"; } .fa-vnv:before { content: "\f40b"; } +.fa-voicemail:before { + content: "\f897"; } + .fa-volleyball-ball:before { content: "\f45f"; } @@ -4481,9 +4798,18 @@ readers do not read off random characters that represent icons */ .fa-warehouse:before { content: "\f494"; } +.fa-watchman-monitoring:before { + content: "\e087"; } + .fa-water:before { content: "\f773"; } +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + .fa-weebly:before { content: "\f5cc"; } @@ -4550,6 +4876,9 @@ readers do not read off random characters that represent icons */ .fa-wizards-of-the-coast:before { content: "\f730"; } +.fa-wodu:before { + content: "\e088"; } + .fa-wolf-pack-battalion:before { content: "\f514"; } @@ -4595,6 +4924,9 @@ readers do not read off random characters that represent icons */ .fa-yahoo:before { content: "\f19e"; } +.fa-yammer:before { + content: "\f840"; } + .fa-yandex:before { content: "\f413"; } @@ -4643,11 +4975,15 @@ readers do not read off random characters that represent icons */ position: static; width: auto; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../fonts/fa-solid-900.eot"); src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); } @@ -4656,11 +4992,15 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-weight: 900; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 400; - font-display: auto; + font-display: block; src: url("../fonts/fa-regular-400.eot"); src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); } @@ -4668,16 +5008,21 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-weight: 400; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Brands'; font-style: normal; - font-weight: normal; - font-display: auto; + font-weight: 400; + font-display: block; src: url("../fonts/fa-brands-400.eot"); src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); } .fab { - font-family: 'Font Awesome 5 Brands'; } + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } .fa.fa-glass:before { content: "\f000"; } @@ -4831,6 +5176,12 @@ readers do not read off random characters that represent icons */ .fa.fa-mail-forward:before { content: "\f064"; } +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + .fa.fa-eye { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -5424,19 +5775,19 @@ readers do not read off random characters that represent icons */ content: "\f15d"; } .fa.fa-sort-alpha-desc:before { - content: "\f15e"; } + content: "\f881"; } .fa.fa-sort-amount-asc:before { content: "\f160"; } .fa.fa-sort-amount-desc:before { - content: "\f161"; } + content: "\f884"; } .fa.fa-sort-numeric-asc:before { content: "\f162"; } .fa.fa-sort-numeric-desc:before { - content: "\f163"; } + content: "\f886"; } .fa.fa-youtube-square { font-family: 'Font Awesome 5 Brands'; @@ -5732,9 +6083,6 @@ readers do not read off random characters that represent icons */ .fa.fa-automobile:before { content: "\f1b9"; } -.fa.fa-cab:before { - content: "\f1ba"; } - .fa.fa-envelope-o { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -5742,6 +6090,10 @@ readers do not read off random characters that represent icons */ .fa.fa-envelope-o:before { content: "\f0e0"; } +.fa.fa-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + .fa.fa-deviantart { font-family: 'Font Awesome 5 Brands'; font-weight: 400; } @@ -6838,14 +7190,18 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Brands'; font-weight: 400; } -.fa.fa-spotify { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } +.fa.fa-cab:before { + content: "\f1ba"; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ .icon, .fas, .far, .fal, +.fad, .fab { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; @@ -7042,9 +7398,6 @@ readers do not read off random characters that represent icons */ .icon-adn:before { content: "\f170"; } -.icon-adobe:before { - content: "\f778"; } - .icon-adversal:before { content: "\f36a"; } @@ -7054,6 +7407,9 @@ readers do not read off random characters that represent icons */ .icon-air-freshener:before { content: "\f5d0"; } +.icon-airbnb:before { + content: "\f834"; } + .icon-algolia:before { content: "\f36c"; } @@ -7264,9 +7620,24 @@ readers do not read off random characters that represent icons */ .icon-bacon:before { content: "\f7e5"; } +.icon-bacteria:before { + content: "\e059"; } + +.icon-bacterium:before { + content: "\e05a"; } + +.icon-bahai:before { + content: "\f666"; } + .icon-balance-scale:before { content: "\f24e"; } +.icon-balance-scale-left:before { + content: "\f515"; } + +.icon-balance-scale-right:before { + content: "\f516"; } + .icon-ban:before { content: "\f05e"; } @@ -7306,6 +7677,9 @@ readers do not read off random characters that represent icons */ .icon-battery-three-quarters:before { content: "\f241"; } +.icon-battle-net:before { + content: "\f835"; } + .icon-bed:before { content: "\f236"; } @@ -7333,6 +7707,9 @@ readers do not read off random characters that represent icons */ .icon-bicycle:before { content: "\f206"; } +.icon-biking:before { + content: "\f84a"; } + .icon-bimobject:before { content: "\f378"; } @@ -7417,6 +7794,18 @@ readers do not read off random characters that represent icons */ .icon-bookmark:before { content: "\f02e"; } +.icon-bootstrap:before { + content: "\f836"; } + +.icon-border-all:before { + content: "\f84c"; } + +.icon-border-none:before { + content: "\f850"; } + +.icon-border-style:before { + content: "\f853"; } + .icon-bowling-ball:before { content: "\f436"; } @@ -7426,6 +7815,9 @@ readers do not read off random characters that represent icons */ .icon-box-open:before { content: "\f49e"; } +.icon-box-tissue:before { + content: "\e05b"; } + .icon-boxes:before { content: "\f468"; } @@ -7456,6 +7848,9 @@ readers do not read off random characters that represent icons */ .icon-btc:before { content: "\f15a"; } +.icon-buffer:before { + content: "\f837"; } + .icon-bug:before { content: "\f188"; } @@ -7483,6 +7878,9 @@ readers do not read off random characters that represent icons */ .icon-business-time:before { content: "\f64a"; } +.icon-buy-n-large:before { + content: "\f8a6"; } + .icon-buysellads:before { content: "\f20d"; } @@ -7549,6 +7947,9 @@ readers do not read off random characters that represent icons */ .icon-car-side:before { content: "\f5e4"; } +.icon-caravan:before { + content: "\f8ff"; } + .icon-caret-down:before { content: "\f0d7"; } @@ -7720,6 +8121,9 @@ readers do not read off random characters that represent icons */ .icon-chrome:before { content: "\f268"; } +.icon-chromecast:before { + content: "\f838"; } + .icon-church:before { content: "\f51d"; } @@ -7783,6 +8187,9 @@ readers do not read off random characters that represent icons */ .icon-cloud-upload-alt:before { content: "\f382"; } +.icon-cloudflare:before { + content: "\e07d"; } + .icon-cloudscale:before { content: "\f383"; } @@ -7855,6 +8262,9 @@ readers do not read off random characters that represent icons */ .icon-compress:before { content: "\f066"; } +.icon-compress-alt:before { + content: "\f422"; } + .icon-compress-arrows-alt:before { content: "\f78c"; } @@ -7882,6 +8292,9 @@ readers do not read off random characters that represent icons */ .icon-copyright:before { content: "\f1f9"; } +.icon-cotton-bureau:before { + content: "\f89e"; } + .icon-couch:before { content: "\f4b8"; } @@ -7981,6 +8394,9 @@ readers do not read off random characters that represent icons */ .icon-d-and-d-beyond:before { content: "\f6ca"; } +.icon-dailymotion:before { + content: "\e052"; } + .icon-dashcube:before { content: "\f210"; } @@ -7990,6 +8406,9 @@ readers do not read off random characters that represent icons */ .icon-deaf:before { content: "\f2a4"; } +.icon-deezer:before { + content: "\e077"; } + .icon-delicious:before { content: "\f1a5"; } @@ -8068,6 +8487,9 @@ readers do not read off random characters that represent icons */ .icon-discourse:before { content: "\f393"; } +.icon-disease:before { + content: "\f7fa"; } + .icon-divide:before { content: "\f529"; } @@ -8170,6 +8592,9 @@ readers do not read off random characters that represent icons */ .icon-edge:before { content: "\f282"; } +.icon-edge-legacy:before { + content: "\e078"; } + .icon-edit:before { content: "\f044"; } @@ -8233,6 +8658,9 @@ readers do not read off random characters that represent icons */ .icon-euro-sign:before { content: "\f153"; } +.icon-evernote:before { + content: "\f839"; } + .icon-exchange-alt:before { content: "\f362"; } @@ -8248,6 +8676,9 @@ readers do not read off random characters that represent icons */ .icon-expand:before { content: "\f065"; } +.icon-expand-alt:before { + content: "\f424"; } + .icon-expand-arrows-alt:before { content: "\f31e"; } @@ -8281,6 +8712,9 @@ readers do not read off random characters that represent icons */ .icon-facebook-square:before { content: "\f082"; } +.icon-fan:before { + content: "\f863"; } + .icon-fantasy-flight-games:before { content: "\f6dc"; } @@ -8290,6 +8724,9 @@ readers do not read off random characters that represent icons */ .icon-fast-forward:before { content: "\f050"; } +.icon-faucet:before { + content: "\e005"; } + .icon-fax:before { content: "\f1ac"; } @@ -8410,6 +8847,9 @@ readers do not read off random characters that represent icons */ .icon-firefox:before { content: "\f269"; } +.icon-firefox-browser:before { + content: "\e007"; } + .icon-first-aid:before { content: "\f479"; } @@ -8569,6 +9009,9 @@ readers do not read off random characters that represent icons */ .icon-git:before { content: "\f1d3"; } +.icon-git-alt:before { + content: "\f841"; } + .icon-git-square:before { content: "\f1d2"; } @@ -8644,6 +9087,9 @@ readers do not read off random characters that represent icons */ .icon-google-drive:before { content: "\f3aa"; } +.icon-google-pay:before { + content: "\e079"; } + .icon-google-play:before { content: "\f3ab"; } @@ -8737,6 +9183,9 @@ readers do not read off random characters that represent icons */ .icon-grunt:before { content: "\f3ad"; } +.icon-guilded:before { + content: "\e07e"; } + .icon-guitar:before { content: "\f7a6"; } @@ -8770,9 +9219,15 @@ readers do not read off random characters that represent icons */ .icon-hand-holding-heart:before { content: "\f4be"; } +.icon-hand-holding-medical:before { + content: "\e05c"; } + .icon-hand-holding-usd:before { content: "\f4c0"; } +.icon-hand-holding-water:before { + content: "\f4c1"; } + .icon-hand-lizard:before { content: "\f258"; } @@ -8806,6 +9261,9 @@ readers do not read off random characters that represent icons */ .icon-hand-scissors:before { content: "\f257"; } +.icon-hand-sparkles:before { + content: "\e05d"; } + .icon-hand-spock:before { content: "\f259"; } @@ -8815,9 +9273,18 @@ readers do not read off random characters that represent icons */ .icon-hands-helping:before { content: "\f4c4"; } +.icon-hands-wash:before { + content: "\e05e"; } + .icon-handshake:before { content: "\f2b5"; } +.icon-handshake-alt-slash:before { + content: "\e05f"; } + +.icon-handshake-slash:before { + content: "\e060"; } + .icon-hanukiah:before { content: "\f6e6"; } @@ -8827,15 +9294,30 @@ readers do not read off random characters that represent icons */ .icon-hashtag:before { content: "\f292"; } +.icon-hat-cowboy:before { + content: "\f8c0"; } + +.icon-hat-cowboy-side:before { + content: "\f8c1"; } + .icon-hat-wizard:before { content: "\f6e8"; } -.icon-haykal:before { - content: "\f666"; } - .icon-hdd:before { content: "\f0a0"; } +.icon-head-side-cough:before { + content: "\e061"; } + +.icon-head-side-cough-slash:before { + content: "\e062"; } + +.icon-head-side-mask:before { + content: "\e063"; } + +.icon-head-side-virus:before { + content: "\e064"; } + .icon-heading:before { content: "\f1dc"; } @@ -8878,6 +9360,9 @@ readers do not read off random characters that represent icons */ .icon-history:before { content: "\f1da"; } +.icon-hive:before { + content: "\e07f"; } + .icon-hockey-puck:before { content: "\f453"; } @@ -8908,6 +9393,9 @@ readers do not read off random characters that represent icons */ .icon-hospital-symbol:before { content: "\f47e"; } +.icon-hospital-user:before { + content: "\f80d"; } + .icon-hot-tub:before { content: "\f593"; } @@ -8935,6 +9423,9 @@ readers do not read off random characters that represent icons */ .icon-house-damage:before { content: "\f6f1"; } +.icon-house-user:before { + content: "\e065"; } + .icon-houzz:before { content: "\f27c"; } @@ -8956,6 +9447,9 @@ readers do not read off random characters that represent icons */ .icon-icicles:before { content: "\f7ad"; } +.icon-icons:before { + content: "\f86d"; } + .icon-id-badge:before { content: "\f2c1"; } @@ -8965,6 +9459,9 @@ readers do not read off random characters that represent icons */ .icon-id-card-alt:before { content: "\f47f"; } +.icon-ideal:before { + content: "\e013"; } + .icon-igloo:before { content: "\f7ae"; } @@ -8995,9 +9492,18 @@ readers do not read off random characters that represent icons */ .icon-info-circle:before { content: "\f05a"; } +.icon-innosoft:before { + content: "\e080"; } + .icon-instagram:before { content: "\f16d"; } +.icon-instagram-square:before { + content: "\e055"; } + +.icon-instalod:before { + content: "\e081"; } + .icon-intercom:before { content: "\f7af"; } @@ -9013,6 +9519,9 @@ readers do not read off random characters that represent icons */ .icon-italic:before { content: "\f033"; } +.icon-itch-io:before { + content: "\f83a"; } + .icon-itunes:before { content: "\f3b4"; } @@ -9109,6 +9618,9 @@ readers do not read off random characters that represent icons */ .icon-laptop-code:before { content: "\f5fc"; } +.icon-laptop-house:before { + content: "\e066"; } + .icon-laptop-medical:before { content: "\f812"; } @@ -9226,6 +9738,12 @@ readers do not read off random characters that represent icons */ .icon-luggage-cart:before { content: "\f59d"; } +.icon-lungs:before { + content: "\f604"; } + +.icon-lungs-virus:before { + content: "\e067"; } + .icon-lyft:before { content: "\f3c3"; } @@ -9301,6 +9819,9 @@ readers do not read off random characters that represent icons */ .icon-maxcdn:before { content: "\f136"; } +.icon-mdb:before { + content: "\f8ca"; } + .icon-medal:before { content: "\f5a2"; } @@ -9349,6 +9870,9 @@ readers do not read off random characters that represent icons */ .icon-meteor:before { content: "\f753"; } +.icon-microblog:before { + content: "\e01a"; } + .icon-microchip:before { content: "\f2db"; } @@ -9388,6 +9912,9 @@ readers do not read off random characters that represent icons */ .icon-mixcloud:before { content: "\f289"; } +.icon-mixer:before { + content: "\e056"; } + .icon-mizuni:before { content: "\f3cc"; } @@ -9439,6 +9966,9 @@ readers do not read off random characters that represent icons */ .icon-mountain:before { content: "\f6fc"; } +.icon-mouse:before { + content: "\f8cc"; } + .icon-mouse-pointer:before { content: "\f245"; } @@ -9466,9 +9996,6 @@ readers do not read off random characters that represent icons */ .icon-nimblr:before { content: "\f5a8"; } -.icon-nintendo-switch:before { - content: "\f418"; } - .icon-node:before { content: "\f419"; } @@ -9496,6 +10023,9 @@ readers do not read off random characters that represent icons */ .icon-object-ungroup:before { content: "\f248"; } +.icon-octopus-deploy:before { + content: "\e082"; } + .icon-odnoklassniki:before { content: "\f263"; } @@ -9523,6 +10053,9 @@ readers do not read off random characters that represent icons */ .icon-optin-monster:before { content: "\f23c"; } +.icon-orcid:before { + content: "\f8d2"; } + .icon-osi:before { content: "\f41a"; } @@ -9622,12 +10155,18 @@ readers do not read off random characters that represent icons */ .icon-penny-arcade:before { content: "\f704"; } +.icon-people-arrows:before { + content: "\e068"; } + .icon-people-carry:before { content: "\f4ce"; } .icon-pepper-hot:before { content: "\f816"; } +.icon-perbyte:before { + content: "\e083"; } + .icon-percent:before { content: "\f295"; } @@ -9652,15 +10191,24 @@ readers do not read off random characters that represent icons */ .icon-phone:before { content: "\f095"; } +.icon-phone-alt:before { + content: "\f879"; } + .icon-phone-slash:before { content: "\f3dd"; } .icon-phone-square:before { content: "\f098"; } +.icon-phone-square-alt:before { + content: "\f87b"; } + .icon-phone-volume:before { content: "\f2a0"; } +.icon-photo-video:before { + content: "\f87c"; } + .icon-php:before { content: "\f457"; } @@ -9676,6 +10224,9 @@ readers do not read off random characters that represent icons */ .icon-pied-piper-pp:before { content: "\f1a7"; } +.icon-pied-piper-square:before { + content: "\e01e"; } + .icon-piggy-bank:before { content: "\f4d3"; } @@ -9706,6 +10257,9 @@ readers do not read off random characters that represent icons */ .icon-plane-departure:before { content: "\f5b0"; } +.icon-plane-slash:before { + content: "\e069"; } + .icon-play:before { content: "\f04b"; } @@ -9781,6 +10335,12 @@ readers do not read off random characters that represent icons */ .icon-project-diagram:before { content: "\f542"; } +.icon-pump-medical:before { + content: "\e06a"; } + +.icon-pump-soap:before { + content: "\e06b"; } + .icon-pushed:before { content: "\f3e1"; } @@ -9856,6 +10416,9 @@ readers do not read off random characters that represent icons */ .icon-receipt:before { content: "\f543"; } +.icon-record-vinyl:before { + content: "\f8d9"; } + .icon-recycle:before { content: "\f1b8"; } @@ -9883,6 +10446,9 @@ readers do not read off random characters that represent icons */ .icon-registered:before { content: "\f25d"; } +.icon-remove-format:before { + content: "\f87d"; } + .icon-renren:before { content: "\f18b"; } @@ -9964,6 +10530,9 @@ readers do not read off random characters that represent icons */ .icon-rupee-sign:before { content: "\f156"; } +.icon-rust:before { + content: "\e07a"; } + .icon-sad-cry:before { content: "\f5b3"; } @@ -9973,6 +10542,9 @@ readers do not read off random characters that represent icons */ .icon-safari:before { content: "\f267"; } +.icon-salesforce:before { + content: "\f83b"; } + .icon-sass:before { content: "\f41e"; } @@ -10057,6 +10629,9 @@ readers do not read off random characters that represent icons */ .icon-shield-alt:before { content: "\f3ed"; } +.icon-shield-virus:before { + content: "\e06c"; } + .icon-ship:before { content: "\f21a"; } @@ -10069,6 +10644,9 @@ readers do not read off random characters that represent icons */ .icon-shoe-prints:before { content: "\f54b"; } +.icon-shopify:before { + content: "\e057"; } + .icon-shopping-bag:before { content: "\f290"; } @@ -10111,6 +10689,9 @@ readers do not read off random characters that represent icons */ .icon-simplybuilt:before { content: "\f215"; } +.icon-sink:before { + content: "\e06d"; } + .icon-sistrix:before { content: "\f3ee"; } @@ -10204,6 +10785,9 @@ readers do not read off random characters that represent icons */ .icon-snowplow:before { content: "\f7d2"; } +.icon-soap:before { + content: "\e06e"; } + .icon-socks:before { content: "\f696"; } @@ -10216,24 +10800,42 @@ readers do not read off random characters that represent icons */ .icon-sort-alpha-down:before { content: "\f15d"; } +.icon-sort-alpha-down-alt:before { + content: "\f881"; } + .icon-sort-alpha-up:before { content: "\f15e"; } +.icon-sort-alpha-up-alt:before { + content: "\f882"; } + .icon-sort-amount-down:before { content: "\f160"; } +.icon-sort-amount-down-alt:before { + content: "\f884"; } + .icon-sort-amount-up:before { content: "\f161"; } +.icon-sort-amount-up-alt:before { + content: "\f885"; } + .icon-sort-down:before { content: "\f0dd"; } .icon-sort-numeric-down:before { content: "\f162"; } +.icon-sort-numeric-down-alt:before { + content: "\f886"; } + .icon-sort-numeric-up:before { content: "\f163"; } +.icon-sort-numeric-up-alt:before { + content: "\f887"; } + .icon-sort-up:before { content: "\f0de"; } @@ -10252,6 +10854,12 @@ readers do not read off random characters that represent icons */ .icon-speakap:before { content: "\f3f3"; } +.icon-speaker-deck:before { + content: "\f83c"; } + +.icon-spell-check:before { + content: "\f891"; } + .icon-spider:before { content: "\f717"; } @@ -10285,6 +10893,9 @@ readers do not read off random characters that represent icons */ .icon-stack-overflow:before { content: "\f16c"; } +.icon-stackpath:before { + content: "\f842"; } + .icon-stamp:before { content: "\f5bf"; } @@ -10342,12 +10953,21 @@ readers do not read off random characters that represent icons */ .icon-stopwatch:before { content: "\f2f2"; } +.icon-stopwatch-20:before { + content: "\e06f"; } + .icon-store:before { content: "\f54e"; } .icon-store-alt:before { content: "\f54f"; } +.icon-store-alt-slash:before { + content: "\e070"; } + +.icon-store-slash:before { + content: "\e071"; } + .icon-strava:before { content: "\f428"; } @@ -10411,12 +11031,18 @@ readers do not read off random characters that represent icons */ .icon-swatchbook:before { content: "\f5c3"; } +.icon-swift:before { + content: "\f8e1"; } + .icon-swimmer:before { content: "\f5c4"; } .icon-swimming-pool:before { content: "\f5c5"; } +.icon-symfony:before { + content: "\f83d"; } + .icon-synagogue:before { content: "\f69b"; } @@ -10552,6 +11178,9 @@ readers do not read off random characters that represent icons */ .icon-ticket-alt:before { content: "\f3ff"; } +.icon-tiktok:before { + content: "\e07b"; } + .icon-times:before { content: "\f00d"; } @@ -10579,6 +11208,9 @@ readers do not read off random characters that represent icons */ .icon-toilet-paper:before { content: "\f71e"; } +.icon-toilet-paper-slash:before { + content: "\e072"; } + .icon-toolbox:before { content: "\f552"; } @@ -10606,6 +11238,9 @@ readers do not read off random characters that represent icons */ .icon-traffic-light:before { content: "\f637"; } +.icon-trailer:before { + content: "\e041"; } + .icon-train:before { content: "\f238"; } @@ -10693,12 +11328,18 @@ readers do not read off random characters that represent icons */ .icon-uikit:before { content: "\f403"; } +.icon-umbraco:before { + content: "\f8e8"; } + .icon-umbrella:before { content: "\f0e9"; } .icon-umbrella-beach:before { content: "\f5ca"; } +.icon-uncharted:before { + content: "\e084"; } + .icon-underline:before { content: "\f0cd"; } @@ -10711,6 +11352,9 @@ readers do not read off random characters that represent icons */ .icon-uniregistry:before { content: "\f404"; } +.icon-unity:before { + content: "\e049"; } + .icon-universal-access:before { content: "\f29a"; } @@ -10726,6 +11370,9 @@ readers do not read off random characters that represent icons */ .icon-unlock-alt:before { content: "\f13e"; } +.icon-unsplash:before { + content: "\e07c"; } + .icon-untappd:before { content: "\f405"; } @@ -10816,6 +11463,9 @@ readers do not read off random characters that represent icons */ .icon-users-cog:before { content: "\f509"; } +.icon-users-slash:before { + content: "\e073"; } + .icon-usps:before { content: "\f7e1"; } @@ -10843,6 +11493,12 @@ readers do not read off random characters that represent icons */ .icon-venus-mars:before { content: "\f228"; } +.icon-vest:before { + content: "\e085"; } + +.icon-vest-patches:before { + content: "\e086"; } + .icon-viacoin:before { content: "\f237"; } @@ -10882,12 +11538,24 @@ readers do not read off random characters that represent icons */ .icon-vine:before { content: "\f1ca"; } +.icon-virus:before { + content: "\e074"; } + +.icon-virus-slash:before { + content: "\e075"; } + +.icon-viruses:before { + content: "\e076"; } + .icon-vk:before { content: "\f189"; } .icon-vnv:before { content: "\f40b"; } +.icon-voicemail:before { + content: "\f897"; } + .icon-volleyball-ball:before { content: "\f45f"; } @@ -10921,9 +11589,18 @@ readers do not read off random characters that represent icons */ .icon-warehouse:before { content: "\f494"; } +.icon-watchman-monitoring:before { + content: "\e087"; } + .icon-water:before { content: "\f773"; } +.icon-wave-square:before { + content: "\f83e"; } + +.icon-waze:before { + content: "\f83f"; } + .icon-weebly:before { content: "\f5cc"; } @@ -10990,6 +11667,9 @@ readers do not read off random characters that represent icons */ .icon-wizards-of-the-coast:before { content: "\f730"; } +.icon-wodu:before { + content: "\e088"; } + .icon-wolf-pack-battalion:before { content: "\f514"; } @@ -11035,6 +11715,9 @@ readers do not read off random characters that represent icons */ .icon-yahoo:before { content: "\f19e"; } +.icon-yammer:before { + content: "\f840"; } + .icon-yandex:before { content: "\f413"; } @@ -11083,11 +11766,15 @@ readers do not read off random characters that represent icons */ position: static; width: auto; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../fonts/fa-solid-900.eot"); src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); } @@ -11096,11 +11783,15 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-weight: 900; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 400; - font-display: auto; + font-display: block; src: url("../fonts/fa-regular-400.eot"); src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); } @@ -11108,16 +11799,21 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-weight: 400; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Brands'; font-style: normal; - font-weight: normal; - font-display: auto; + font-weight: 400; + font-display: block; src: url("../fonts/fa-brands-400.eot"); src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); } .fab { - font-family: 'Font Awesome 5 Brands'; } + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } .icon.icon-glass:before { content: "\f000"; } @@ -11271,6 +11967,12 @@ readers do not read off random characters that represent icons */ .icon.icon-mail-forward:before { content: "\f064"; } +.icon.icon-expand:before { + content: "\f424"; } + +.icon.icon-compress:before { + content: "\f422"; } + .icon.icon-eye { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -11864,19 +12566,19 @@ readers do not read off random characters that represent icons */ content: "\f15d"; } .icon.icon-sort-alpha-desc:before { - content: "\f15e"; } + content: "\f881"; } .icon.icon-sort-amount-asc:before { content: "\f160"; } .icon.icon-sort-amount-desc:before { - content: "\f161"; } + content: "\f884"; } .icon.icon-sort-numeric-asc:before { content: "\f162"; } .icon.icon-sort-numeric-desc:before { - content: "\f163"; } + content: "\f886"; } .icon.icon-youtube-square { font-family: 'Font Awesome 5 Brands'; @@ -12172,9 +12874,6 @@ readers do not read off random characters that represent icons */ .icon.icon-automobile:before { content: "\f1b9"; } -.icon.icon-cab:before { - content: "\f1ba"; } - .icon.icon-envelope-o { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -12182,6 +12881,10 @@ readers do not read off random characters that represent icons */ .icon.icon-envelope-o:before { content: "\f0e0"; } +.icon.icon-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + .icon.icon-deviantart { font-family: 'Font Awesome 5 Brands'; font-weight: 400; } @@ -13278,9 +13981,8 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Brands'; font-weight: 400; } -.icon.icon-spotify { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } +.icon.icon-cab:before { + content: "\f1ba"; } /* Main colors */ /* needs much more adaption, should be used as text color for elements with $colorSplash background */ @@ -14678,6 +15380,10 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { filter: alpha(opacity=60); /* for IE <= 8 */ } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ .fa.fa-glass:before { content: "\f000"; } @@ -14830,6 +15536,12 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { .fa.fa-mail-forward:before { content: "\f064"; } +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + .fa.fa-eye { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -15423,19 +16135,19 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { content: "\f15d"; } .fa.fa-sort-alpha-desc:before { - content: "\f15e"; } + content: "\f881"; } .fa.fa-sort-amount-asc:before { content: "\f160"; } .fa.fa-sort-amount-desc:before { - content: "\f161"; } + content: "\f884"; } .fa.fa-sort-numeric-asc:before { content: "\f162"; } .fa.fa-sort-numeric-desc:before { - content: "\f163"; } + content: "\f886"; } .fa.fa-youtube-square { font-family: 'Font Awesome 5 Brands'; @@ -15731,9 +16443,6 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { .fa.fa-automobile:before { content: "\f1b9"; } -.fa.fa-cab:before { - content: "\f1ba"; } - .fa.fa-envelope-o { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -15741,6 +16450,10 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { .fa.fa-envelope-o:before { content: "\f0e0"; } +.fa.fa-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; } + .fa.fa-deviantart { font-family: 'Font Awesome 5 Brands'; font-weight: 400; } @@ -16837,9 +17550,8 @@ td.x-grid3-hd-menu-open .x-grid3-hd-inner { font-family: 'Font Awesome 5 Brands'; font-weight: 400; } -.fa.fa-spotify { - font-family: 'Font Awesome 5 Brands'; - font-weight: 400; } +.fa.fa-cab:before { + content: "\f1ba"; } button { margin: 2px; @@ -17108,6 +17820,10 @@ button { border-radius: 3px 0 0 3px; z-index: 1; /* prevent clear filter button from overlapping the textfield */ } + .x-toolbar .x-toolbar-right-row .x-form-filter:not(.x-form-empty-field) { + border-color: #000; } + .x-toolbar .x-toolbar-right-row .x-form-filter.x-form-focus { + border-color: #999999; } .x-toolbar .x-toolbar-right-row .x-form-filter-clear { border-radius: 0 3px 3px 0; @@ -17937,6 +18653,9 @@ input::-moz-focus-inner { z-index: 3; /* needs to stay above the transparent file input field */ } +#x-form-el-modx-user-photo .x-form-file-trigger:before { + content: "\f1c5"; } + /* .x-form-field-wrap */ /* both, radio groups and checkbox groups are wrapped in a x-form-check-wrap */ .x-form-check-wrap, @@ -19036,7 +19755,7 @@ ul.x-tab-strip-bottom { #modx-header { background: #234368; - max-width: 80px; + max-width: 70px; position: absolute; z-index: 2; height: 100%; } @@ -19050,10 +19769,11 @@ ul.x-tab-strip-bottom { display: flex; -ms-flex-direction: column; flex-direction: column; - padding: 0 10px; } + padding: 0 5px; } #modx-navbar .icon { color: #FFF; font-size: 20px; + line-height: 20px; vertical-align: middle; } #modx-navbar li, #modx-navbar a { @@ -19070,8 +19790,16 @@ ul.x-tab-strip-bottom { line-height: 12px; font-size: 10px; text-decoration: none; } + #modx-navbar a .description { + font-size: 9px; + opacity: .7; } + #modx-navbar a .icon, #modx-navbar a .label, #modx-navbar a .description { + width: 100%; + display: block; } #modx-navbar li a:hover { opacity: .7; } + #modx-navbar #modx-user-menu a .label, #modx-navbar #modx-user-menu a .description, #modx-navbar #modx-user-menu a #user-username { + display: none; } #modx-navbar #modx-manager-search-icon a, #modx-navbar #modx-leftbar-trigger a, #modx-navbar #modx-user-menu a { @@ -19086,39 +19814,8 @@ ul.x-tab-strip-bottom { display: block; position: relative; padding: 12px 0; } - #modx-navbar #modx-topnav > li:not(#modx-home-dashboard):not(#modx-manager-search-icon):not(#modx-leftbar-trigger) > a:before { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - font-family: 'Font Awesome 5 Free', 'Font Awesome 5 Brands'; - font-weight: 900; - text-align: center; - font-size: 20px; - margin: 5px 0; - width: 100%; - position: static; } - #modx-navbar #modx-topnav #limenu-site > a:before { - content: "\f15c"; - font-weight: 300 !important; } - #modx-navbar #modx-topnav #limenu-media > a:before { - content: "\f1c5"; - font-weight: 300 !important; } - #modx-navbar #modx-topnav #limenu-components > a:before { - content: "\f1b2"; } - #modx-navbar #modx-topnav #limenu-manage > a:before { - content: "\f1de"; } #modx-navbar #modx-user-menu { margin-top: auto; } - #modx-navbar #modx-user-menu #user-username { - display: none; } #modx-navbar #modx-user-menu #user-avatar img { border-radius: 20px; height: 40px; @@ -19149,17 +19846,6 @@ ul.x-tab-strip-bottom { overflow: hidden; text-overflow: ellipsis; } -#modx-footer ul.modx-subnav li:hover ul ul, -#modx-footer ul.modx-subnav ul li:hover ul ul, -#modx-footer ul.modx-subnav ul ul li:hover ul ul { - display: none; } - -#modx-footer ul.modx-subnav li:hover ul, -#modx-footer ul.modx-subnav ul li:hover ul, -#modx-footer ul.modx-subnav ul ul li:hover ul, -#modx-footer ul.modx-subnav ul ul ul li:hover ul { - display: block; } - #modx-leftbar-trigger { transition: all .2s ease; } #modx-leftbar-trigger .icon:before { @@ -19215,6 +19901,11 @@ ul.x-tab-strip-bottom { display: block; text-decoration: none; cursor: pointer; } + #modx-footer .modx-subnav li a .icon { + display: inline-block; + font-size: 18px; + opacity: .07; + padding-left: 5px; } #modx-footer .modx-subnav li a span { color: #999999; display: block; @@ -19231,6 +19922,15 @@ ul.x-tab-strip-bottom { color: #53595F; } #modx-footer .modx-subnav li a:hover .description { color: #707070; } + #modx-footer .modx-subnav li:hover ul ul, + #modx-footer .modx-subnav ul li:hover ul ul, + #modx-footer .modx-subnav ul ul li:hover ul ul { + display: none; } + #modx-footer .modx-subnav li:hover ul, + #modx-footer .modx-subnav ul li:hover ul, + #modx-footer .modx-subnav ul ul li:hover ul, + #modx-footer .modx-subnav ul ul ul li:hover ul { + display: block; } #modx-footer .modx-subnav.active { opacity: 1; visibility: visible; } @@ -19254,7 +19954,7 @@ ul.x-tab-strip-bottom { pointer-events: none; margin-top: -6px; } -#modx-footer #limenu-user-submenu #language .modx-subsubnav { +#modx-footer #language .modx-subsubnav { max-height: 86vh; overflow-y: auto; } @@ -19379,9 +20079,6 @@ ul.x-tab-strip-bottom { height: auto !important; box-sizing: border-box; /* we need the parent selector to override default combobox styles */ } - @media screen and (max-width: 960px) { - .modx-manager-search-results { - left: 5px !important; } } .modx-manager-search-results .loading-indicator { background: none; color: #515151; @@ -19406,22 +20103,24 @@ ul.x-tab-strip-bottom { padding-bottom: .5em; } } .modx-manager-search-results .section { border-left: 1px solid #ededed; - font-size: 13px; - margin-left: 95px; + font-size: 12px; + line-height: 12px; + margin-left: 100px; position: relative; width: auto; /* change to 100% to enable scrollable overflow */ } .modx-manager-search-results h3, .modx-manager-search-results .x-combo-list-item { color: #515151; - line-height: 17px; + line-height: 18px; margin: 0; - padding: 4px 8px; } + padding: 4px 6px; } .modx-manager-search-results h3 { color: #53595F; - font-size: 13px; + font-size: 11px; + line-height: 11px; font-weight: normal; - left: -116px; + left: -108px; position: absolute; text-align: right; top: 0; @@ -19429,7 +20128,7 @@ ul.x-tab-strip-bottom { .modx-manager-search-results a { cursor: pointer; display: inline-block; - padding-left: 18px; + padding-left: 20px; position: relative; color: inherit; text-decoration: none; } @@ -19437,7 +20136,7 @@ ul.x-tab-strip-bottom { color: #234368; left: 0; position: absolute; - top: 2px; } + top: 4px; } .modx-manager-search-results em { font-style: normal; opacity: .7; } @@ -19774,7 +20473,7 @@ ul.x-tab-strip-bottom { /* root box containing a context or category */ /* just the actual nodes */ } #modx-leftbar .x-tab-panel-noborder { - margin: 0 12px; } + margin: 0 8px; } #modx-leftbar .x-tab-panel-bwrap { border-radius: 0 0 3px 3px; position: relative; @@ -19824,7 +20523,7 @@ ul.x-tab-strip-bottom { #modx-split-wrapper .x-layout-split, #modx-split-wrapper #modx-leftbar-tabs-xcollapsed { - margin-left: -80px; } + margin-left: -70px; } .x-layout-split { overflow: visible; @@ -21033,7 +21732,7 @@ ul.x-tab-strip-bottom { display: flex; -ms-flex-flow: row wrap; flex-flow: row wrap; - margin: -1rem 0 0 -1rem !important; + margin: -0.5rem 0 0 -1rem !important; padding: 0 15px; } .dashboard .dashboard-button { padding: 5px 20px; @@ -21351,7 +22050,11 @@ ul.x-tab-strip-bottom { background: #CF1124; } #modx-panel-system-info .x-form-label-left .x-form-item { - padding: 0; } + padding: 0 5px; } + #modx-panel-system-info .x-form-label-left .x-form-item:nth-child(2n) { + background: #F0F0F0; } + #modx-panel-system-info .x-form-label-left .x-form-item .x-form-display-field { + padding: 7px 0; } @media screen and (max-width: 960px) { .dashboard-buttons .dashboard-button { @@ -21465,7 +22168,6 @@ ul.x-tab-strip-bottom { #helpBanner { margin-top: 1.5em; min-height: 112px; - background-image: url("../images/modx-logo-color.png"); background-image: url("../images/modx-logo-color.svg"), none; background-repeat: no-repeat; background-attachment: none; @@ -21555,6 +22257,19 @@ ul.x-tab-strip-bottom { box-shadow: 0 0 0 1px #6CB24A; color: #FFF; } +#changelog-tab p { + margin-bottom: 0.3rem; } + +#changelog-tab h1 { + color: #515151; } + +#changelog-tab h2 { + font-weight: 700; + margin-top: 1rem; } + +#changelog-tab ul { + margin-bottom: 1rem; } + body { color: black; font: normal 13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; @@ -21663,10 +22378,10 @@ textarea.x-form-field { transition: all .6s ease; } #modx-content { - width: calc(100% - 390px); + width: calc(100% - 370px); right: 0; padding-left: 0.5rem; - left: 310px; + left: 370px; /* give #modx-content an initial left value to prevent the panel from jumping around */ } .modx-form p { @@ -21714,14 +22429,22 @@ textarea.x-form-field { #modx-container { height: auto; } } -@media screen and (max-width: 1024px) { +@media screen and (max-width: 1140px) { #modx-resource-main-left, #modx-resource-main-right, #modx-page-settings-left, #modx-page-settings-right { box-sizing: border-box; width: 100% !important; - margin: 0 auto 15px; } } + margin: 0 auto 15px; } + #modx-resource-main-left .x-panel-body, + #modx-resource-main-right .x-panel-body, + #modx-page-settings-left .x-panel-body, + #modx-page-settings-right .x-panel-body { + height: auto !important; + max-height: 100% !important; + width: auto !important; + max-width: 100% !important; } } @media screen and (max-width: 960px) { #modx-template-form .main-wrapper, @@ -21860,6 +22583,11 @@ textarea.x-form-field { background: #6CB24A; border: 5px solid #6CB24A; } +#modx-panel-packages.drag-n-drop:before { + background: transparent url("../images/restyle/dragndrop.svg") no-repeat top; + background-size: 50% 30%; + z-index: 0; } + .x-panel-header { background: none; border: none; @@ -21886,7 +22614,7 @@ textarea.x-form-field { border-bottom: 0; right: 15px; position: absolute; - z-index: 20; } + z-index: 9; } #modx-resource-main-left .x-panel-header .x-panel-header-text { display: none; } #modx-resource-main-left .x-panel-collapsed .x-panel-header, diff --git a/manager/templates/default/dashboard/onlineusers.tpl b/manager/templates/default/dashboard/onlineusers.tpl index fa9efd88050..3831a516074 100644 --- a/manager/templates/default/dashboard/onlineusers.tpl +++ b/manager/templates/default/dashboard/onlineusers.tpl @@ -23,7 +23,7 @@ {/if}
    -
    {$record.fullname}
    +
    {$record.fullname|default:$record.username}
    {$record.group}
    diff --git a/manager/templates/default/dashboard/recentlyeditedresources.tpl b/manager/templates/default/dashboard/recentlyeditedresources.tpl index 32dcb679947..08e4e9c6112 100644 --- a/manager/templates/default/dashboard/recentlyeditedresources.tpl +++ b/manager/templates/default/dashboard/recentlyeditedresources.tpl @@ -49,18 +49,18 @@ {foreach $record.menu as $menu} - {if empty($menu.text) || $menu.text == '-'} + {if empty($menu.text) || $menu.text == '-' || !isset($menu.params)} {continue} {/if} {if $menu.params.type == 'view'} - {assign var=icon value='icon icon-eye'} + {$icon='icon icon-eye'} {elseif $menu.params.type == 'edit'} - {assign var=icon value='icon icon-edit'} + {$icon='icon icon-edit'} {elseif $menu.params.type == 'open'} - {assign var=icon value='icon icon-external-link'} + {$icon='icon icon-external-link'} {else} - {assign var=icon value=null} + {$icon=null} {/if} {if !empty($menu.params.a) && !empty($menu.params.id)} diff --git a/manager/templates/default/dashboard/updates.tpl b/manager/templates/default/dashboard/updates.tpl index a937b150292..c379c3f7777 100644 --- a/manager/templates/default/dashboard/updates.tpl +++ b/manager/templates/default/dashboard/updates.tpl @@ -3,7 +3,7 @@ - + @@ -42,4 +42,4 @@
    {$_lang.updates_sort}{$_lang.updates_type} {$_lang.updates_status} {$_lang.updates_action}
    - \ No newline at end of file + diff --git a/manager/templates/default/element/tv/renders/input/autotag.tpl b/manager/templates/default/element/tv/renders/input/autotag.tpl index 8a74637fb33..87e80f9558f 100644 --- a/manager/templates/default/element/tv/renders/input/autotag.tpl +++ b/manager/templates/default/element/tv/renders/input/autotag.tpl @@ -6,7 +6,7 @@ />
    - \ No newline at end of file + diff --git a/manager/templates/default/element/tv/renders/input/email.tpl b/manager/templates/default/element/tv/renders/input/email.tpl index a4747d745d7..7457bce3e55 100644 --- a/manager/templates/default/element/tv/renders/input/email.tpl +++ b/manager/templates/default/element/tv/renders/input/email.tpl @@ -5,7 +5,7 @@ tvtype="{$tv->type}" /> - {else} - {else} - \ No newline at end of file diff --git a/manager/templates/default/element/tv/renders/input/listbox-multiple.tpl b/manager/templates/default/element/tv/renders/input/listbox-multiple.tpl index 348d937ceae..b4180765f91 100644 --- a/manager/templates/default/element/tv/renders/input/listbox-multiple.tpl +++ b/manager/templates/default/element/tv/renders/input/listbox-multiple.tpl @@ -9,7 +9,7 @@ {/foreach} - -{/literal} diff --git a/manager/templates/default/element/tv/renders/inputproperties/listbox-multiple.tpl b/manager/templates/default/element/tv/renders/inputproperties/listbox-multiple.tpl index e74a471538b..36bebf7fe79 100644 --- a/manager/templates/default/element/tv/renders/inputproperties/listbox-multiple.tpl +++ b/manager/templates/default/element/tv/renders/inputproperties/listbox-multiple.tpl @@ -1,7 +1,7 @@
    {literal} - - + + {else} - - + + {/if} - - - - + + + + {$maincssjs} {foreach from=$cssjs item=scr} {$scr} {/foreach} - diff --git a/manager/templates/default/images/modx-icon-color.png b/manager/templates/default/images/modx-icon-color.png deleted file mode 100644 index 67a91b959e6..00000000000 Binary files a/manager/templates/default/images/modx-icon-color.png and /dev/null differ diff --git a/manager/templates/default/images/modx-icon-color.svg b/manager/templates/default/images/modx-icon-color.svg index 7e89a319da3..5ec8d40840c 100644 --- a/manager/templates/default/images/modx-icon-color.svg +++ b/manager/templates/default/images/modx-icon-color.svg @@ -1,34 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/manager/templates/default/images/modx-logo-color.png b/manager/templates/default/images/modx-logo-color.png deleted file mode 100644 index de22bbd1e2d..00000000000 Binary files a/manager/templates/default/images/modx-logo-color.png and /dev/null differ diff --git a/manager/templates/default/images/modx-logo-color.svg b/manager/templates/default/images/modx-logo-color.svg index 24662cc81f6..056dfa94987 100644 --- a/manager/templates/default/images/modx-logo-color.svg +++ b/manager/templates/default/images/modx-logo-color.svg @@ -1,53 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/manager/templates/default/resource/create.tpl b/manager/templates/default/resource/create.tpl index 088f56034e4..88145bd72af 100644 --- a/manager/templates/default/resource/create.tpl +++ b/manager/templates/default/resource/create.tpl @@ -5,7 +5,7 @@ {$tv->get('formElement')} {/foreach} -{$onDocFormPrerender} +{$onDocFormPrerender|default} {if $resource->richtext AND $_config.use_editor} - {$onRichTextEditorInit} + {$onRichTextEditorInit|default} {/if} diff --git a/manager/templates/default/resource/sections/tvs.tpl b/manager/templates/default/resource/sections/tvs.tpl index 88005f76ac6..619324d8613 100644 --- a/manager/templates/default/resource/sections/tvs.tpl +++ b/manager/templates/default/resource/sections/tvs.tpl @@ -25,7 +25,7 @@ {$tv->get('formElement')} - + {else} {$tv->get('formElement')} @@ -39,7 +39,7 @@ {/foreach} {literal} - + diff --git a/manager/templates/default/security/logout.tpl b/manager/templates/default/security/logout.tpl index dc484b54e16..6846136630d 100644 --- a/manager/templates/default/security/logout.tpl +++ b/manager/templates/default/security/logout.tpl @@ -1,5 +1,5 @@ - - + + MODx :: {$_lang.permission_denied} @@ -10,26 +10,26 @@ {if isset($_config.ext_debug) && $_config.ext_debug} - - + + {else} - - + + {/if} - - - - - - - - - - + + + + + + + + + + {literal}{/literal} - @@ -53,4 +53,4 @@ - \ No newline at end of file + diff --git a/phpcs.xml b/phpcs.xml new file mode 100644 index 00000000000..63cdb75a63d --- /dev/null +++ b/phpcs.xml @@ -0,0 +1,23 @@ + + + MODX dev PHP_CodeSniffer ruleset + _build + connectors + core + manager + setup + + + manager/assets/ext3/ + core/lexicon/ + setup/lang/ + + + + + + */vendor/* + + + + diff --git a/setup/assets/css/installer-min.css b/setup/assets/css/installer-min.css index 6cd5019851c..951a760ea90 100644 --- a/setup/assets/css/installer-min.css +++ b/setup/assets/css/installer-min.css @@ -1,2 +1,14 @@ -/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-large,.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.fab,.fal,.far,.fas,.icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.icon-large,.icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.icon-xs{font-size:.75em}.icon-sm{font-size:.875em}.icon-1x{font-size:1em}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-6x{font-size:6em}.icon-7x{font-size:7em}.icon-8x{font-size:8em}.icon-9x{font-size:9em}.icon-10x{font-size:10em}.icon-fw{text-align:center;width:1.25em}.icon-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.icon-ul>li{position:relative}.icon-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.icon-pull-left{float:left}.icon-pull-right{float:right}.fab.icon-pull-left,.fal.icon-pull-left,.far.icon-pull-left,.fas.icon-pull-left,.icon.icon-pull-left{margin-right:.3em}.fab.icon-pull-right,.fal.icon-pull-right,.far.icon-pull-right,.fas.icon-pull-right,.icon.icon-pull-right{margin-left:.3em}.icon-spin{animation:fa-spin 2s infinite linear}.icon-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.icon-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.icon-flip-both,.icon-flip-horizontal.icon-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .icon-flip-both,:root .icon-flip-horizontal,:root .icon-flip-vertical,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-rotate-90{filter:none}.icon-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.icon-stack-1x,.icon-stack-2x{left:0;position:absolute;text-align:center;width:100%}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-500px:before{content:"\f26e"}.icon-accessible-icon:before{content:"\f368"}.icon-accusoft:before{content:"\f369"}.icon-acquisitions-incorporated:before{content:"\f6af"}.icon-ad:before{content:"\f641"}.icon-address-book:before{content:"\f2b9"}.icon-address-card:before{content:"\f2bb"}.icon-adjust:before{content:"\f042"}.icon-adn:before{content:"\f170"}.icon-adobe:before{content:"\f778"}.icon-adversal:before{content:"\f36a"}.icon-affiliatetheme:before{content:"\f36b"}.icon-air-freshener:before{content:"\f5d0"}.icon-algolia:before{content:"\f36c"}.icon-align-center:before{content:"\f037"}.icon-align-justify:before{content:"\f039"}.icon-align-left:before{content:"\f036"}.icon-align-right:before{content:"\f038"}.icon-alipay:before{content:"\f642"}.icon-allergies:before{content:"\f461"}.icon-amazon:before{content:"\f270"}.icon-amazon-pay:before{content:"\f42c"}.icon-ambulance:before{content:"\f0f9"}.icon-american-sign-language-interpreting:before{content:"\f2a3"}.icon-amilia:before{content:"\f36d"}.icon-anchor:before{content:"\f13d"}.icon-android:before{content:"\f17b"}.icon-angellist:before{content:"\f209"}.icon-angle-double-down:before{content:"\f103"}.icon-angle-double-left:before{content:"\f100"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-double-up:before{content:"\f102"}.icon-angle-down:before{content:"\f107"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angry:before{content:"\f556"}.icon-angrycreative:before{content:"\f36e"}.icon-angular:before{content:"\f420"}.icon-ankh:before{content:"\f644"}.icon-app-store:before{content:"\f36f"}.icon-app-store-ios:before{content:"\f370"}.icon-apper:before{content:"\f371"}.icon-apple:before{content:"\f179"}.icon-apple-alt:before{content:"\f5d1"}.icon-apple-pay:before{content:"\f415"}.icon-archive:before{content:"\f187"}.icon-archway:before{content:"\f557"}.icon-arrow-alt-circle-down:before{content:"\f358"}.icon-arrow-alt-circle-left:before{content:"\f359"}.icon-arrow-alt-circle-right:before{content:"\f35a"}.icon-arrow-alt-circle-up:before{content:"\f35b"}.icon-arrow-circle-down:before{content:"\f0ab"}.icon-arrow-circle-left:before{content:"\f0a8"}.icon-arrow-circle-right:before{content:"\f0a9"}.icon-arrow-circle-up:before{content:"\f0aa"}.icon-arrow-down:before{content:"\f063"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrows-alt:before{content:"\f0b2"}.icon-arrows-alt-h:before{content:"\f337"}.icon-arrows-alt-v:before{content:"\f338"}.icon-artstation:before{content:"\f77a"}.icon-assistive-listening-systems:before{content:"\f2a2"}.icon-asterisk:before{content:"\f069"}.icon-asymmetrik:before{content:"\f372"}.icon-at:before{content:"\f1fa"}.icon-atlas:before{content:"\f558"}.icon-atlassian:before{content:"\f77b"}.icon-atom:before{content:"\f5d2"}.icon-audible:before{content:"\f373"}.icon-audio-description:before{content:"\f29e"}.icon-autoprefixer:before{content:"\f41c"}.icon-avianex:before{content:"\f374"}.icon-aviato:before{content:"\f421"}.icon-award:before{content:"\f559"}.icon-aws:before{content:"\f375"}.icon-baby:before{content:"\f77c"}.icon-baby-carriage:before{content:"\f77d"}.icon-backspace:before{content:"\f55a"}.icon-backward:before{content:"\f04a"}.icon-bacon:before{content:"\f7e5"}.icon-balance-scale:before{content:"\f24e"}.icon-ban:before{content:"\f05e"}.icon-band-aid:before{content:"\f462"}.icon-bandcamp:before{content:"\f2d5"}.icon-barcode:before{content:"\f02a"}.icon-bars:before{content:"\f0c9"}.icon-baseball-ball:before{content:"\f433"}.icon-basketball-ball:before{content:"\f434"}.icon-bath:before{content:"\f2cd"}.icon-battery-empty:before{content:"\f244"}.icon-battery-full:before{content:"\f240"}.icon-battery-half:before{content:"\f242"}.icon-battery-quarter:before{content:"\f243"}.icon-battery-three-quarters:before{content:"\f241"}.icon-bed:before{content:"\f236"}.icon-beer:before{content:"\f0fc"}.icon-behance:before{content:"\f1b4"}.icon-behance-square:before{content:"\f1b5"}.icon-bell:before{content:"\f0f3"}.icon-bell-slash:before{content:"\f1f6"}.icon-bezier-curve:before{content:"\f55b"}.icon-bible:before{content:"\f647"}.icon-bicycle:before{content:"\f206"}.icon-bimobject:before{content:"\f378"}.icon-binoculars:before{content:"\f1e5"}.icon-biohazard:before{content:"\f780"}.icon-birthday-cake:before{content:"\f1fd"}.icon-bitbucket:before{content:"\f171"}.icon-bitcoin:before{content:"\f379"}.icon-bity:before{content:"\f37a"}.icon-black-tie:before{content:"\f27e"}.icon-blackberry:before{content:"\f37b"}.icon-blender:before{content:"\f517"}.icon-blender-phone:before{content:"\f6b6"}.icon-blind:before{content:"\f29d"}.icon-blog:before{content:"\f781"}.icon-blogger:before{content:"\f37c"}.icon-blogger-b:before{content:"\f37d"}.icon-bluetooth:before{content:"\f293"}.icon-bluetooth-b:before{content:"\f294"}.icon-bold:before{content:"\f032"}.icon-bolt:before{content:"\f0e7"}.icon-bomb:before{content:"\f1e2"}.icon-bone:before{content:"\f5d7"}.icon-bong:before{content:"\f55c"}.icon-book:before{content:"\f02d"}.icon-book-dead:before{content:"\f6b7"}.icon-book-medical:before{content:"\f7e6"}.icon-book-open:before{content:"\f518"}.icon-book-reader:before{content:"\f5da"}.icon-bookmark:before{content:"\f02e"}.icon-bowling-ball:before{content:"\f436"}.icon-box:before{content:"\f466"}.icon-box-open:before{content:"\f49e"}.icon-boxes:before{content:"\f468"}.icon-braille:before{content:"\f2a1"}.icon-brain:before{content:"\f5dc"}.icon-bread-slice:before{content:"\f7ec"}.icon-briefcase:before{content:"\f0b1"}.icon-briefcase-medical:before{content:"\f469"}.icon-broadcast-tower:before{content:"\f519"}.icon-broom:before{content:"\f51a"}.icon-brush:before{content:"\f55d"}.icon-btc:before{content:"\f15a"}.icon-bug:before{content:"\f188"}.icon-building:before{content:"\f1ad"}.icon-bullhorn:before{content:"\f0a1"}.icon-bullseye:before{content:"\f140"}.icon-burn:before{content:"\f46a"}.icon-buromobelexperte:before{content:"\f37f"}.icon-bus:before{content:"\f207"}.icon-bus-alt:before{content:"\f55e"}.icon-business-time:before{content:"\f64a"}.icon-buysellads:before{content:"\f20d"}.icon-calculator:before{content:"\f1ec"}.icon-calendar:before{content:"\f133"}.icon-calendar-alt:before{content:"\f073"}.icon-calendar-check:before{content:"\f274"}.icon-calendar-day:before{content:"\f783"}.icon-calendar-minus:before{content:"\f272"}.icon-calendar-plus:before{content:"\f271"}.icon-calendar-times:before{content:"\f273"}.icon-calendar-week:before{content:"\f784"}.icon-camera:before{content:"\f030"}.icon-camera-retro:before{content:"\f083"}.icon-campground:before{content:"\f6bb"}.icon-canadian-maple-leaf:before{content:"\f785"}.icon-candy-cane:before{content:"\f786"}.icon-cannabis:before{content:"\f55f"}.icon-capsules:before{content:"\f46b"}.icon-car:before{content:"\f1b9"}.icon-car-alt:before{content:"\f5de"}.icon-car-battery:before{content:"\f5df"}.icon-car-crash:before{content:"\f5e1"}.icon-car-side:before{content:"\f5e4"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-caret-square-down:before{content:"\f150"}.icon-caret-square-left:before{content:"\f191"}.icon-caret-square-right:before{content:"\f152"}.icon-caret-square-up:before{content:"\f151"}.icon-caret-up:before{content:"\f0d8"}.icon-carrot:before{content:"\f787"}.icon-cart-arrow-down:before{content:"\f218"}.icon-cart-plus:before{content:"\f217"}.icon-cash-register:before{content:"\f788"}.icon-cat:before{content:"\f6be"}.icon-cc-amazon-pay:before{content:"\f42d"}.icon-cc-amex:before{content:"\f1f3"}.icon-cc-apple-pay:before{content:"\f416"}.icon-cc-diners-club:before{content:"\f24c"}.icon-cc-discover:before{content:"\f1f2"}.icon-cc-jcb:before{content:"\f24b"}.icon-cc-mastercard:before{content:"\f1f1"}.icon-cc-paypal:before{content:"\f1f4"}.icon-cc-stripe:before{content:"\f1f5"}.icon-cc-visa:before{content:"\f1f0"}.icon-centercode:before{content:"\f380"}.icon-centos:before{content:"\f789"}.icon-certificate:before{content:"\f0a3"}.icon-chair:before{content:"\f6c0"}.icon-chalkboard:before{content:"\f51b"}.icon-chalkboard-teacher:before{content:"\f51c"}.icon-charging-station:before{content:"\f5e7"}.icon-chart-area:before{content:"\f1fe"}.icon-chart-bar:before{content:"\f080"}.icon-chart-line:before{content:"\f201"}.icon-chart-pie:before{content:"\f200"}.icon-check:before{content:"\f00c"}.icon-check-circle:before{content:"\f058"}.icon-check-double:before{content:"\f560"}.icon-check-square:before{content:"\f14a"}.icon-cheese:before{content:"\f7ef"}.icon-chess:before{content:"\f439"}.icon-chess-bishop:before{content:"\f43a"}.icon-chess-board:before{content:"\f43c"}.icon-chess-king:before{content:"\f43f"}.icon-chess-knight:before{content:"\f441"}.icon-chess-pawn:before{content:"\f443"}.icon-chess-queen:before{content:"\f445"}.icon-chess-rook:before{content:"\f447"}.icon-chevron-circle-down:before{content:"\f13a"}.icon-chevron-circle-left:before{content:"\f137"}.icon-chevron-circle-right:before{content:"\f138"}.icon-chevron-circle-up:before{content:"\f139"}.icon-chevron-down:before{content:"\f078"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-chevron-up:before{content:"\f077"}.icon-child:before{content:"\f1ae"}.icon-chrome:before{content:"\f268"}.icon-church:before{content:"\f51d"}.icon-circle:before{content:"\f111"}.icon-circle-notch:before{content:"\f1ce"}.icon-city:before{content:"\f64f"}.icon-clinic-medical:before{content:"\f7f2"}.icon-clipboard:before{content:"\f328"}.icon-clipboard-check:before{content:"\f46c"}.icon-clipboard-list:before{content:"\f46d"}.icon-clock:before{content:"\f017"}.icon-clone:before{content:"\f24d"}.icon-closed-captioning:before{content:"\f20a"}.icon-cloud:before{content:"\f0c2"}.icon-cloud-download-alt:before{content:"\f381"}.icon-cloud-meatball:before{content:"\f73b"}.icon-cloud-moon:before{content:"\f6c3"}.icon-cloud-moon-rain:before{content:"\f73c"}.icon-cloud-rain:before{content:"\f73d"}.icon-cloud-showers-heavy:before{content:"\f740"}.icon-cloud-sun:before{content:"\f6c4"}.icon-cloud-sun-rain:before{content:"\f743"}.icon-cloud-upload-alt:before{content:"\f382"}.icon-cloudscale:before{content:"\f383"}.icon-cloudsmith:before{content:"\f384"}.icon-cloudversify:before{content:"\f385"}.icon-cocktail:before{content:"\f561"}.icon-code:before{content:"\f121"}.icon-code-branch:before{content:"\f126"}.icon-codepen:before{content:"\f1cb"}.icon-codiepie:before{content:"\f284"}.icon-coffee:before{content:"\f0f4"}.icon-cog:before{content:"\f013"}.icon-cogs:before{content:"\f085"}.icon-coins:before{content:"\f51e"}.icon-columns:before{content:"\f0db"}.icon-comment:before{content:"\f075"}.icon-comment-alt:before{content:"\f27a"}.icon-comment-dollar:before{content:"\f651"}.icon-comment-dots:before{content:"\f4ad"}.icon-comment-medical:before{content:"\f7f5"}.icon-comment-slash:before{content:"\f4b3"}.icon-comments:before{content:"\f086"}.icon-comments-dollar:before{content:"\f653"}.icon-compact-disc:before{content:"\f51f"}.icon-compass:before{content:"\f14e"}.icon-compress:before{content:"\f066"}.icon-compress-arrows-alt:before{content:"\f78c"}.icon-concierge-bell:before{content:"\f562"}.icon-confluence:before{content:"\f78d"}.icon-connectdevelop:before{content:"\f20e"}.icon-contao:before{content:"\f26d"}.icon-cookie:before{content:"\f563"}.icon-cookie-bite:before{content:"\f564"}.icon-copy:before{content:"\f0c5"}.icon-copyright:before{content:"\f1f9"}.icon-couch:before{content:"\f4b8"}.icon-cpanel:before{content:"\f388"}.icon-creative-commons:before{content:"\f25e"}.icon-creative-commons-by:before{content:"\f4e7"}.icon-creative-commons-nc:before{content:"\f4e8"}.icon-creative-commons-nc-eu:before{content:"\f4e9"}.icon-creative-commons-nc-jp:before{content:"\f4ea"}.icon-creative-commons-nd:before{content:"\f4eb"}.icon-creative-commons-pd:before{content:"\f4ec"}.icon-creative-commons-pd-alt:before{content:"\f4ed"}.icon-creative-commons-remix:before{content:"\f4ee"}.icon-creative-commons-sa:before{content:"\f4ef"}.icon-creative-commons-sampling:before{content:"\f4f0"}.icon-creative-commons-sampling-plus:before{content:"\f4f1"}.icon-creative-commons-share:before{content:"\f4f2"}.icon-creative-commons-zero:before{content:"\f4f3"}.icon-credit-card:before{content:"\f09d"}.icon-critical-role:before{content:"\f6c9"}.icon-crop:before{content:"\f125"}.icon-crop-alt:before{content:"\f565"}.icon-cross:before{content:"\f654"}.icon-crosshairs:before{content:"\f05b"}.icon-crow:before{content:"\f520"}.icon-crown:before{content:"\f521"}.icon-crutch:before{content:"\f7f7"}.icon-css3:before{content:"\f13c"}.icon-css3-alt:before{content:"\f38b"}.icon-cube:before{content:"\f1b2"}.icon-cubes:before{content:"\f1b3"}.icon-cut:before{content:"\f0c4"}.icon-cuttlefish:before{content:"\f38c"}.icon-d-and-d:before{content:"\f38d"}.icon-d-and-d-beyond:before{content:"\f6ca"}.icon-dashcube:before{content:"\f210"}.icon-database:before{content:"\f1c0"}.icon-deaf:before{content:"\f2a4"}.icon-delicious:before{content:"\f1a5"}.icon-democrat:before{content:"\f747"}.icon-deploydog:before{content:"\f38e"}.icon-deskpro:before{content:"\f38f"}.icon-desktop:before{content:"\f108"}.icon-dev:before{content:"\f6cc"}.icon-deviantart:before{content:"\f1bd"}.icon-dharmachakra:before{content:"\f655"}.icon-dhl:before{content:"\f790"}.icon-diagnoses:before{content:"\f470"}.icon-diaspora:before{content:"\f791"}.icon-dice:before{content:"\f522"}.icon-dice-d20:before{content:"\f6cf"}.icon-dice-d6:before{content:"\f6d1"}.icon-dice-five:before{content:"\f523"}.icon-dice-four:before{content:"\f524"}.icon-dice-one:before{content:"\f525"}.icon-dice-six:before{content:"\f526"}.icon-dice-three:before{content:"\f527"}.icon-dice-two:before{content:"\f528"}.icon-digg:before{content:"\f1a6"}.icon-digital-ocean:before{content:"\f391"}.icon-digital-tachograph:before{content:"\f566"}.icon-directions:before{content:"\f5eb"}.icon-discord:before{content:"\f392"}.icon-discourse:before{content:"\f393"}.icon-divide:before{content:"\f529"}.icon-dizzy:before{content:"\f567"}.icon-dna:before{content:"\f471"}.icon-dochub:before{content:"\f394"}.icon-docker:before{content:"\f395"}.icon-dog:before{content:"\f6d3"}.icon-dollar-sign:before{content:"\f155"}.icon-dolly:before{content:"\f472"}.icon-dolly-flatbed:before{content:"\f474"}.icon-donate:before{content:"\f4b9"}.icon-door-closed:before{content:"\f52a"}.icon-door-open:before{content:"\f52b"}.icon-dot-circle:before{content:"\f192"}.icon-dove:before{content:"\f4ba"}.icon-download:before{content:"\f019"}.icon-draft2digital:before{content:"\f396"}.icon-drafting-compass:before{content:"\f568"}.icon-dragon:before{content:"\f6d5"}.icon-draw-polygon:before{content:"\f5ee"}.icon-dribbble:before{content:"\f17d"}.icon-dribbble-square:before{content:"\f397"}.icon-dropbox:before{content:"\f16b"}.icon-drum:before{content:"\f569"}.icon-drum-steelpan:before{content:"\f56a"}.icon-drumstick-bite:before{content:"\f6d7"}.icon-drupal:before{content:"\f1a9"}.icon-dumbbell:before{content:"\f44b"}.icon-dumpster:before{content:"\f793"}.icon-dumpster-fire:before{content:"\f794"}.icon-dungeon:before{content:"\f6d9"}.icon-dyalog:before{content:"\f399"}.icon-earlybirds:before{content:"\f39a"}.icon-ebay:before{content:"\f4f4"}.icon-edge:before{content:"\f282"}.icon-edit:before{content:"\f044"}.icon-egg:before{content:"\f7fb"}.icon-eject:before{content:"\f052"}.icon-elementor:before{content:"\f430"}.icon-ellipsis-h:before{content:"\f141"}.icon-ellipsis-v:before{content:"\f142"}.icon-ello:before{content:"\f5f1"}.icon-ember:before{content:"\f423"}.icon-empire:before{content:"\f1d1"}.icon-envelope:before{content:"\f0e0"}.icon-envelope-open:before{content:"\f2b6"}.icon-envelope-open-text:before{content:"\f658"}.icon-envelope-square:before{content:"\f199"}.icon-envira:before{content:"\f299"}.icon-equals:before{content:"\f52c"}.icon-eraser:before{content:"\f12d"}.icon-erlang:before{content:"\f39d"}.icon-ethereum:before{content:"\f42e"}.icon-ethernet:before{content:"\f796"}.icon-etsy:before{content:"\f2d7"}.icon-euro-sign:before{content:"\f153"}.icon-exchange-alt:before{content:"\f362"}.icon-exclamation:before{content:"\f12a"}.icon-exclamation-circle:before{content:"\f06a"}.icon-exclamation-triangle:before{content:"\f071"}.icon-expand:before{content:"\f065"}.icon-expand-arrows-alt:before{content:"\f31e"}.icon-expeditedssl:before{content:"\f23e"}.icon-external-link-alt:before{content:"\f35d"}.icon-external-link-square-alt:before{content:"\f360"}.icon-eye:before{content:"\f06e"}.icon-eye-dropper:before{content:"\f1fb"}.icon-eye-slash:before{content:"\f070"}.icon-facebook:before{content:"\f09a"}.icon-facebook-f:before{content:"\f39e"}.icon-facebook-messenger:before{content:"\f39f"}.icon-facebook-square:before{content:"\f082"}.icon-fantasy-flight-games:before{content:"\f6dc"}.icon-fast-backward:before{content:"\f049"}.icon-fast-forward:before{content:"\f050"}.icon-fax:before{content:"\f1ac"}.icon-feather:before{content:"\f52d"}.icon-feather-alt:before{content:"\f56b"}.icon-fedex:before{content:"\f797"}.icon-fedora:before{content:"\f798"}.icon-female:before{content:"\f182"}.icon-fighter-jet:before{content:"\f0fb"}.icon-figma:before{content:"\f799"}.icon-file:before{content:"\f15b"}.icon-file-alt:before{content:"\f15c"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-code:before{content:"\f1c9"}.icon-file-contract:before{content:"\f56c"}.icon-file-csv:before{content:"\f6dd"}.icon-file-download:before{content:"\f56d"}.icon-file-excel:before{content:"\f1c3"}.icon-file-export:before{content:"\f56e"}.icon-file-image:before{content:"\f1c5"}.icon-file-import:before{content:"\f56f"}.icon-file-invoice:before{content:"\f570"}.icon-file-invoice-dollar:before{content:"\f571"}.icon-file-medical:before{content:"\f477"}.icon-file-medical-alt:before{content:"\f478"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-prescription:before{content:"\f572"}.icon-file-signature:before{content:"\f573"}.icon-file-upload:before{content:"\f574"}.icon-file-video:before{content:"\f1c8"}.icon-file-word:before{content:"\f1c2"}.icon-fill:before{content:"\f575"}.icon-fill-drip:before{content:"\f576"}.icon-film:before{content:"\f008"}.icon-filter:before{content:"\f0b0"}.icon-fingerprint:before{content:"\f577"}.icon-fire:before{content:"\f06d"}.icon-fire-alt:before{content:"\f7e4"}.icon-fire-extinguisher:before{content:"\f134"}.icon-firefox:before{content:"\f269"}.icon-first-aid:before{content:"\f479"}.icon-first-order:before{content:"\f2b0"}.icon-first-order-alt:before{content:"\f50a"}.icon-firstdraft:before{content:"\f3a1"}.icon-fish:before{content:"\f578"}.icon-fist-raised:before{content:"\f6de"}.icon-flag:before{content:"\f024"}.icon-flag-checkered:before{content:"\f11e"}.icon-flag-usa:before{content:"\f74d"}.icon-flask:before{content:"\f0c3"}.icon-flickr:before{content:"\f16e"}.icon-flipboard:before{content:"\f44d"}.icon-flushed:before{content:"\f579"}.icon-fly:before{content:"\f417"}.icon-folder:before{content:"\f07b"}.icon-folder-minus:before{content:"\f65d"}.icon-folder-open:before{content:"\f07c"}.icon-folder-plus:before{content:"\f65e"}.icon-font:before{content:"\f031"}.icon-font-awesome:before{content:"\f2b4"}.icon-font-awesome-alt:before{content:"\f35c"}.icon-font-awesome-flag:before{content:"\f425"}.icon-font-awesome-logo-full:before{content:"\f4e6"}.icon-fonticons:before{content:"\f280"}.icon-fonticons-fi:before{content:"\f3a2"}.icon-football-ball:before{content:"\f44e"}.icon-fort-awesome:before{content:"\f286"}.icon-fort-awesome-alt:before{content:"\f3a3"}.icon-forumbee:before{content:"\f211"}.icon-forward:before{content:"\f04e"}.icon-foursquare:before{content:"\f180"}.icon-free-code-camp:before{content:"\f2c5"}.icon-freebsd:before{content:"\f3a4"}.icon-frog:before{content:"\f52e"}.icon-frown:before{content:"\f119"}.icon-frown-open:before{content:"\f57a"}.icon-fulcrum:before{content:"\f50b"}.icon-funnel-dollar:before{content:"\f662"}.icon-futbol:before{content:"\f1e3"}.icon-galactic-republic:before{content:"\f50c"}.icon-galactic-senate:before{content:"\f50d"}.icon-gamepad:before{content:"\f11b"}.icon-gas-pump:before{content:"\f52f"}.icon-gavel:before{content:"\f0e3"}.icon-gem:before{content:"\f3a5"}.icon-genderless:before{content:"\f22d"}.icon-get-pocket:before{content:"\f265"}.icon-gg:before{content:"\f260"}.icon-gg-circle:before{content:"\f261"}.icon-ghost:before{content:"\f6e2"}.icon-gift:before{content:"\f06b"}.icon-gifts:before{content:"\f79c"}.icon-git:before{content:"\f1d3"}.icon-git-square:before{content:"\f1d2"}.icon-github:before{content:"\f09b"}.icon-github-alt:before{content:"\f113"}.icon-github-square:before{content:"\f092"}.icon-gitkraken:before{content:"\f3a6"}.icon-gitlab:before{content:"\f296"}.icon-gitter:before{content:"\f426"}.icon-glass-cheers:before{content:"\f79f"}.icon-glass-martini:before{content:"\f000"}.icon-glass-martini-alt:before{content:"\f57b"}.icon-glass-whiskey:before{content:"\f7a0"}.icon-glasses:before{content:"\f530"}.icon-glide:before{content:"\f2a5"}.icon-glide-g:before{content:"\f2a6"}.icon-globe:before{content:"\f0ac"}.icon-globe-africa:before{content:"\f57c"}.icon-globe-americas:before{content:"\f57d"}.icon-globe-asia:before{content:"\f57e"}.icon-globe-europe:before{content:"\f7a2"}.icon-gofore:before{content:"\f3a7"}.icon-golf-ball:before{content:"\f450"}.icon-goodreads:before{content:"\f3a8"}.icon-goodreads-g:before{content:"\f3a9"}.icon-google:before{content:"\f1a0"}.icon-google-drive:before{content:"\f3aa"}.icon-google-play:before{content:"\f3ab"}.icon-google-plus:before{content:"\f2b3"}.icon-google-plus-g:before{content:"\f0d5"}.icon-google-plus-square:before{content:"\f0d4"}.icon-google-wallet:before{content:"\f1ee"}.icon-gopuram:before{content:"\f664"}.icon-graduation-cap:before{content:"\f19d"}.icon-gratipay:before{content:"\f184"}.icon-grav:before{content:"\f2d6"}.icon-greater-than:before{content:"\f531"}.icon-greater-than-equal:before{content:"\f532"}.icon-grimace:before{content:"\f57f"}.icon-grin:before{content:"\f580"}.icon-grin-alt:before{content:"\f581"}.icon-grin-beam:before{content:"\f582"}.icon-grin-beam-sweat:before{content:"\f583"}.icon-grin-hearts:before{content:"\f584"}.icon-grin-squint:before{content:"\f585"}.icon-grin-squint-tears:before{content:"\f586"}.icon-grin-stars:before{content:"\f587"}.icon-grin-tears:before{content:"\f588"}.icon-grin-tongue:before{content:"\f589"}.icon-grin-tongue-squint:before{content:"\f58a"}.icon-grin-tongue-wink:before{content:"\f58b"}.icon-grin-wink:before{content:"\f58c"}.icon-grip-horizontal:before{content:"\f58d"}.icon-grip-lines:before{content:"\f7a4"}.icon-grip-lines-vertical:before{content:"\f7a5"}.icon-grip-vertical:before{content:"\f58e"}.icon-gripfire:before{content:"\f3ac"}.icon-grunt:before{content:"\f3ad"}.icon-guitar:before{content:"\f7a6"}.icon-gulp:before{content:"\f3ae"}.icon-h-square:before{content:"\f0fd"}.icon-hacker-news:before{content:"\f1d4"}.icon-hacker-news-square:before{content:"\f3af"}.icon-hackerrank:before{content:"\f5f7"}.icon-hamburger:before{content:"\f805"}.icon-hammer:before{content:"\f6e3"}.icon-hamsa:before{content:"\f665"}.icon-hand-holding:before{content:"\f4bd"}.icon-hand-holding-heart:before{content:"\f4be"}.icon-hand-holding-usd:before{content:"\f4c0"}.icon-hand-lizard:before{content:"\f258"}.icon-hand-middle-finger:before{content:"\f806"}.icon-hand-paper:before{content:"\f256"}.icon-hand-peace:before{content:"\f25b"}.icon-hand-point-down:before{content:"\f0a7"}.icon-hand-point-left:before{content:"\f0a5"}.icon-hand-point-right:before{content:"\f0a4"}.icon-hand-point-up:before{content:"\f0a6"}.icon-hand-pointer:before{content:"\f25a"}.icon-hand-rock:before{content:"\f255"}.icon-hand-scissors:before{content:"\f257"}.icon-hand-spock:before{content:"\f259"}.icon-hands:before{content:"\f4c2"}.icon-hands-helping:before{content:"\f4c4"}.icon-handshake:before{content:"\f2b5"}.icon-hanukiah:before{content:"\f6e6"}.icon-hard-hat:before{content:"\f807"}.icon-hashtag:before{content:"\f292"}.icon-hat-wizard:before{content:"\f6e8"}.icon-haykal:before{content:"\f666"}.icon-hdd:before{content:"\f0a0"}.icon-heading:before{content:"\f1dc"}.icon-headphones:before{content:"\f025"}.icon-headphones-alt:before{content:"\f58f"}.icon-headset:before{content:"\f590"}.icon-heart:before{content:"\f004"}.icon-heart-broken:before{content:"\f7a9"}.icon-heartbeat:before{content:"\f21e"}.icon-helicopter:before{content:"\f533"}.icon-highlighter:before{content:"\f591"}.icon-hiking:before{content:"\f6ec"}.icon-hippo:before{content:"\f6ed"}.icon-hips:before{content:"\f452"}.icon-hire-a-helper:before{content:"\f3b0"}.icon-history:before{content:"\f1da"}.icon-hockey-puck:before{content:"\f453"}.icon-holly-berry:before{content:"\f7aa"}.icon-home:before{content:"\f015"}.icon-hooli:before{content:"\f427"}.icon-hornbill:before{content:"\f592"}.icon-horse:before{content:"\f6f0"}.icon-horse-head:before{content:"\f7ab"}.icon-hospital:before{content:"\f0f8"}.icon-hospital-alt:before{content:"\f47d"}.icon-hospital-symbol:before{content:"\f47e"}.icon-hot-tub:before{content:"\f593"}.icon-hotdog:before{content:"\f80f"}.icon-hotel:before{content:"\f594"}.icon-hotjar:before{content:"\f3b1"}.icon-hourglass:before{content:"\f254"}.icon-hourglass-end:before{content:"\f253"}.icon-hourglass-half:before{content:"\f252"}.icon-hourglass-start:before{content:"\f251"}.icon-house-damage:before{content:"\f6f1"}.icon-houzz:before{content:"\f27c"}.icon-hryvnia:before{content:"\f6f2"}.icon-html5:before{content:"\f13b"}.icon-hubspot:before{content:"\f3b2"}.icon-i-cursor:before{content:"\f246"}.icon-ice-cream:before{content:"\f810"}.icon-icicles:before{content:"\f7ad"}.icon-id-badge:before{content:"\f2c1"}.icon-id-card:before{content:"\f2c2"}.icon-id-card-alt:before{content:"\f47f"}.icon-igloo:before{content:"\f7ae"}.icon-image:before{content:"\f03e"}.icon-images:before{content:"\f302"}.icon-imdb:before{content:"\f2d8"}.icon-inbox:before{content:"\f01c"}.icon-indent:before{content:"\f03c"}.icon-industry:before{content:"\f275"}.icon-infinity:before{content:"\f534"}.icon-info:before{content:"\f129"}.icon-info-circle:before{content:"\f05a"}.icon-instagram:before{content:"\f16d"}.icon-intercom:before{content:"\f7af"}.icon-internet-explorer:before{content:"\f26b"}.icon-invision:before{content:"\f7b0"}.icon-ioxhost:before{content:"\f208"}.icon-italic:before{content:"\f033"}.icon-itunes:before{content:"\f3b4"}.icon-itunes-note:before{content:"\f3b5"}.icon-java:before{content:"\f4e4"}.icon-jedi:before{content:"\f669"}.icon-jedi-order:before{content:"\f50e"}.icon-jenkins:before{content:"\f3b6"}.icon-jira:before{content:"\f7b1"}.icon-joget:before{content:"\f3b7"}.icon-joint:before{content:"\f595"}.icon-joomla:before{content:"\f1aa"}.icon-journal-whills:before{content:"\f66a"}.icon-js:before{content:"\f3b8"}.icon-js-square:before{content:"\f3b9"}.icon-jsfiddle:before{content:"\f1cc"}.icon-kaaba:before{content:"\f66b"}.icon-kaggle:before{content:"\f5fa"}.icon-key:before{content:"\f084"}.icon-keybase:before{content:"\f4f5"}.icon-keyboard:before{content:"\f11c"}.icon-keycdn:before{content:"\f3ba"}.icon-khanda:before{content:"\f66d"}.icon-kickstarter:before{content:"\f3bb"}.icon-kickstarter-k:before{content:"\f3bc"}.icon-kiss:before{content:"\f596"}.icon-kiss-beam:before{content:"\f597"}.icon-kiss-wink-heart:before{content:"\f598"}.icon-kiwi-bird:before{content:"\f535"}.icon-korvue:before{content:"\f42f"}.icon-landmark:before{content:"\f66f"}.icon-language:before{content:"\f1ab"}.icon-laptop:before{content:"\f109"}.icon-laptop-code:before{content:"\f5fc"}.icon-laptop-medical:before{content:"\f812"}.icon-laravel:before{content:"\f3bd"}.icon-lastfm:before{content:"\f202"}.icon-lastfm-square:before{content:"\f203"}.icon-laugh:before{content:"\f599"}.icon-laugh-beam:before{content:"\f59a"}.icon-laugh-squint:before{content:"\f59b"}.icon-laugh-wink:before{content:"\f59c"}.icon-layer-group:before{content:"\f5fd"}.icon-leaf:before{content:"\f06c"}.icon-leanpub:before{content:"\f212"}.icon-lemon:before{content:"\f094"}.icon-less:before{content:"\f41d"}.icon-less-than:before{content:"\f536"}.icon-less-than-equal:before{content:"\f537"}.icon-level-down-alt:before{content:"\f3be"}.icon-level-up-alt:before{content:"\f3bf"}.icon-life-ring:before{content:"\f1cd"}.icon-lightbulb:before{content:"\f0eb"}.icon-line:before{content:"\f3c0"}.icon-link:before{content:"\f0c1"}.icon-linkedin:before{content:"\f08c"}.icon-linkedin-in:before{content:"\f0e1"}.icon-linode:before{content:"\f2b8"}.icon-linux:before{content:"\f17c"}.icon-lira-sign:before{content:"\f195"}.icon-list:before{content:"\f03a"}.icon-list-alt:before{content:"\f022"}.icon-list-ol:before{content:"\f0cb"}.icon-list-ul:before{content:"\f0ca"}.icon-location-arrow:before{content:"\f124"}.icon-lock:before{content:"\f023"}.icon-lock-open:before{content:"\f3c1"}.icon-long-arrow-alt-down:before{content:"\f309"}.icon-long-arrow-alt-left:before{content:"\f30a"}.icon-long-arrow-alt-right:before{content:"\f30b"}.icon-long-arrow-alt-up:before{content:"\f30c"}.icon-low-vision:before{content:"\f2a8"}.icon-luggage-cart:before{content:"\f59d"}.icon-lyft:before{content:"\f3c3"}.icon-magento:before{content:"\f3c4"}.icon-magic:before{content:"\f0d0"}.icon-magnet:before{content:"\f076"}.icon-mail-bulk:before{content:"\f674"}.icon-mailchimp:before{content:"\f59e"}.icon-male:before{content:"\f183"}.icon-mandalorian:before{content:"\f50f"}.icon-map:before{content:"\f279"}.icon-map-marked:before{content:"\f59f"}.icon-map-marked-alt:before{content:"\f5a0"}.icon-map-marker:before{content:"\f041"}.icon-map-marker-alt:before{content:"\f3c5"}.icon-map-pin:before{content:"\f276"}.icon-map-signs:before{content:"\f277"}.icon-markdown:before{content:"\f60f"}.icon-marker:before{content:"\f5a1"}.icon-mars:before{content:"\f222"}.icon-mars-double:before{content:"\f227"}.icon-mars-stroke:before{content:"\f229"}.icon-mars-stroke-h:before{content:"\f22b"}.icon-mars-stroke-v:before{content:"\f22a"}.icon-mask:before{content:"\f6fa"}.icon-mastodon:before{content:"\f4f6"}.icon-maxcdn:before{content:"\f136"}.icon-medal:before{content:"\f5a2"}.icon-medapps:before{content:"\f3c6"}.icon-medium:before{content:"\f23a"}.icon-medium-m:before{content:"\f3c7"}.icon-medkit:before{content:"\f0fa"}.icon-medrt:before{content:"\f3c8"}.icon-meetup:before{content:"\f2e0"}.icon-megaport:before{content:"\f5a3"}.icon-meh:before{content:"\f11a"}.icon-meh-blank:before{content:"\f5a4"}.icon-meh-rolling-eyes:before{content:"\f5a5"}.icon-memory:before{content:"\f538"}.icon-mendeley:before{content:"\f7b3"}.icon-menorah:before{content:"\f676"}.icon-mercury:before{content:"\f223"}.icon-meteor:before{content:"\f753"}.icon-microchip:before{content:"\f2db"}.icon-microphone:before{content:"\f130"}.icon-microphone-alt:before{content:"\f3c9"}.icon-microphone-alt-slash:before{content:"\f539"}.icon-microphone-slash:before{content:"\f131"}.icon-microscope:before{content:"\f610"}.icon-microsoft:before{content:"\f3ca"}.icon-minus:before{content:"\f068"}.icon-minus-circle:before{content:"\f056"}.icon-minus-square:before{content:"\f146"}.icon-mitten:before{content:"\f7b5"}.icon-mix:before{content:"\f3cb"}.icon-mixcloud:before{content:"\f289"}.icon-mizuni:before{content:"\f3cc"}.icon-mobile:before{content:"\f10b"}.icon-mobile-alt:before{content:"\f3cd"}.icon-modx:before{content:"\f285"}.icon-monero:before{content:"\f3d0"}.icon-money-bill:before{content:"\f0d6"}.icon-money-bill-alt:before{content:"\f3d1"}.icon-money-bill-wave:before{content:"\f53a"}.icon-money-bill-wave-alt:before{content:"\f53b"}.icon-money-check:before{content:"\f53c"}.icon-money-check-alt:before{content:"\f53d"}.icon-monument:before{content:"\f5a6"}.icon-moon:before{content:"\f186"}.icon-mortar-pestle:before{content:"\f5a7"}.icon-mosque:before{content:"\f678"}.icon-motorcycle:before{content:"\f21c"}.icon-mountain:before{content:"\f6fc"}.icon-mouse-pointer:before{content:"\f245"}.icon-mug-hot:before{content:"\f7b6"}.icon-music:before{content:"\f001"}.icon-napster:before{content:"\f3d2"}.icon-neos:before{content:"\f612"}.icon-network-wired:before{content:"\f6ff"}.icon-neuter:before{content:"\f22c"}.icon-newspaper:before{content:"\f1ea"}.icon-nimblr:before{content:"\f5a8"}.icon-nintendo-switch:before{content:"\f418"}.icon-node:before{content:"\f419"}.icon-node-js:before{content:"\f3d3"}.icon-not-equal:before{content:"\f53e"}.icon-notes-medical:before{content:"\f481"}.icon-npm:before{content:"\f3d4"}.icon-ns8:before{content:"\f3d5"}.icon-nutritionix:before{content:"\f3d6"}.icon-object-group:before{content:"\f247"}.icon-object-ungroup:before{content:"\f248"}.icon-odnoklassniki:before{content:"\f263"}.icon-odnoklassniki-square:before{content:"\f264"}.icon-oil-can:before{content:"\f613"}.icon-old-republic:before{content:"\f510"}.icon-om:before{content:"\f679"}.icon-opencart:before{content:"\f23d"}.icon-openid:before{content:"\f19b"}.icon-opera:before{content:"\f26a"}.icon-optin-monster:before{content:"\f23c"}.icon-osi:before{content:"\f41a"}.icon-otter:before{content:"\f700"}.icon-outdent:before{content:"\f03b"}.icon-page4:before{content:"\f3d7"}.icon-pagelines:before{content:"\f18c"}.icon-pager:before{content:"\f815"}.icon-paint-brush:before{content:"\f1fc"}.icon-paint-roller:before{content:"\f5aa"}.icon-palette:before{content:"\f53f"}.icon-palfed:before{content:"\f3d8"}.icon-pallet:before{content:"\f482"}.icon-paper-plane:before{content:"\f1d8"}.icon-paperclip:before{content:"\f0c6"}.icon-parachute-box:before{content:"\f4cd"}.icon-paragraph:before{content:"\f1dd"}.icon-parking:before{content:"\f540"}.icon-passport:before{content:"\f5ab"}.icon-pastafarianism:before{content:"\f67b"}.icon-paste:before{content:"\f0ea"}.icon-patreon:before{content:"\f3d9"}.icon-pause:before{content:"\f04c"}.icon-pause-circle:before{content:"\f28b"}.icon-paw:before{content:"\f1b0"}.icon-paypal:before{content:"\f1ed"}.icon-peace:before{content:"\f67c"}.icon-pen:before{content:"\f304"}.icon-pen-alt:before{content:"\f305"}.icon-pen-fancy:before{content:"\f5ac"}.icon-pen-nib:before{content:"\f5ad"}.icon-pen-square:before{content:"\f14b"}.icon-pencil-alt:before{content:"\f303"}.icon-pencil-ruler:before{content:"\f5ae"}.icon-penny-arcade:before{content:"\f704"}.icon-people-carry:before{content:"\f4ce"}.icon-pepper-hot:before{content:"\f816"}.icon-percent:before{content:"\f295"}.icon-percentage:before{content:"\f541"}.icon-periscope:before{content:"\f3da"}.icon-person-booth:before{content:"\f756"}.icon-phabricator:before{content:"\f3db"}.icon-phoenix-framework:before{content:"\f3dc"}.icon-phoenix-squadron:before{content:"\f511"}.icon-phone:before{content:"\f095"}.icon-phone-slash:before{content:"\f3dd"}.icon-phone-square:before{content:"\f098"}.icon-phone-volume:before{content:"\f2a0"}.icon-php:before{content:"\f457"}.icon-pied-piper:before{content:"\f2ae"}.icon-pied-piper-alt:before{content:"\f1a8"}.icon-pied-piper-hat:before{content:"\f4e5"}.icon-pied-piper-pp:before{content:"\f1a7"}.icon-piggy-bank:before{content:"\f4d3"}.icon-pills:before{content:"\f484"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-p:before{content:"\f231"}.icon-pinterest-square:before{content:"\f0d3"}.icon-pizza-slice:before{content:"\f818"}.icon-place-of-worship:before{content:"\f67f"}.icon-plane:before{content:"\f072"}.icon-plane-arrival:before{content:"\f5af"}.icon-plane-departure:before{content:"\f5b0"}.icon-play:before{content:"\f04b"}.icon-play-circle:before{content:"\f144"}.icon-playstation:before{content:"\f3df"}.icon-plug:before{content:"\f1e6"}.icon-plus:before{content:"\f067"}.icon-plus-circle:before{content:"\f055"}.icon-plus-square:before{content:"\f0fe"}.icon-podcast:before{content:"\f2ce"}.icon-poll:before{content:"\f681"}.icon-poll-h:before{content:"\f682"}.icon-poo:before{content:"\f2fe"}.icon-poo-storm:before{content:"\f75a"}.icon-poop:before{content:"\f619"}.icon-portrait:before{content:"\f3e0"}.icon-pound-sign:before{content:"\f154"}.icon-power-off:before{content:"\f011"}.icon-pray:before{content:"\f683"}.icon-praying-hands:before{content:"\f684"}.icon-prescription:before{content:"\f5b1"}.icon-prescription-bottle:before{content:"\f485"}.icon-prescription-bottle-alt:before{content:"\f486"}.icon-print:before{content:"\f02f"}.icon-procedures:before{content:"\f487"}.icon-product-hunt:before{content:"\f288"}.icon-project-diagram:before{content:"\f542"}.icon-pushed:before{content:"\f3e1"}.icon-puzzle-piece:before{content:"\f12e"}.icon-python:before{content:"\f3e2"}.icon-qq:before{content:"\f1d6"}.icon-qrcode:before{content:"\f029"}.icon-question:before{content:"\f128"}.icon-question-circle:before{content:"\f059"}.icon-quidditch:before{content:"\f458"}.icon-quinscape:before{content:"\f459"}.icon-quora:before{content:"\f2c4"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-quran:before{content:"\f687"}.icon-r-project:before{content:"\f4f7"}.icon-radiation:before{content:"\f7b9"}.icon-radiation-alt:before{content:"\f7ba"}.icon-rainbow:before{content:"\f75b"}.icon-random:before{content:"\f074"}.icon-raspberry-pi:before{content:"\f7bb"}.icon-ravelry:before{content:"\f2d9"}.icon-react:before{content:"\f41b"}.icon-reacteurope:before{content:"\f75d"}.icon-readme:before{content:"\f4d5"}.icon-rebel:before{content:"\f1d0"}.icon-receipt:before{content:"\f543"}.icon-recycle:before{content:"\f1b8"}.icon-red-river:before{content:"\f3e3"}.icon-reddit:before{content:"\f1a1"}.icon-reddit-alien:before{content:"\f281"}.icon-reddit-square:before{content:"\f1a2"}.icon-redhat:before{content:"\f7bc"}.icon-redo:before{content:"\f01e"}.icon-redo-alt:before{content:"\f2f9"}.icon-registered:before{content:"\f25d"}.icon-renren:before{content:"\f18b"}.icon-reply:before{content:"\f3e5"}.icon-reply-all:before{content:"\f122"}.icon-replyd:before{content:"\f3e6"}.icon-republican:before{content:"\f75e"}.icon-researchgate:before{content:"\f4f8"}.icon-resolving:before{content:"\f3e7"}.icon-restroom:before{content:"\f7bd"}.icon-retweet:before{content:"\f079"}.icon-rev:before{content:"\f5b2"}.icon-ribbon:before{content:"\f4d6"}.icon-ring:before{content:"\f70b"}.icon-road:before{content:"\f018"}.icon-robot:before{content:"\f544"}.icon-rocket:before{content:"\f135"}.icon-rocketchat:before{content:"\f3e8"}.icon-rockrms:before{content:"\f3e9"}.icon-route:before{content:"\f4d7"}.icon-rss:before{content:"\f09e"}.icon-rss-square:before{content:"\f143"}.icon-ruble-sign:before{content:"\f158"}.icon-ruler:before{content:"\f545"}.icon-ruler-combined:before{content:"\f546"}.icon-ruler-horizontal:before{content:"\f547"}.icon-ruler-vertical:before{content:"\f548"}.icon-running:before{content:"\f70c"}.icon-rupee-sign:before{content:"\f156"}.icon-sad-cry:before{content:"\f5b3"}.icon-sad-tear:before{content:"\f5b4"}.icon-safari:before{content:"\f267"}.icon-sass:before{content:"\f41e"}.icon-satellite:before{content:"\f7bf"}.icon-satellite-dish:before{content:"\f7c0"}.icon-save:before{content:"\f0c7"}.icon-schlix:before{content:"\f3ea"}.icon-school:before{content:"\f549"}.icon-screwdriver:before{content:"\f54a"}.icon-scribd:before{content:"\f28a"}.icon-scroll:before{content:"\f70e"}.icon-sd-card:before{content:"\f7c2"}.icon-search:before{content:"\f002"}.icon-search-dollar:before{content:"\f688"}.icon-search-location:before{content:"\f689"}.icon-search-minus:before{content:"\f010"}.icon-search-plus:before{content:"\f00e"}.icon-searchengin:before{content:"\f3eb"}.icon-seedling:before{content:"\f4d8"}.icon-sellcast:before{content:"\f2da"}.icon-sellsy:before{content:"\f213"}.icon-server:before{content:"\f233"}.icon-servicestack:before{content:"\f3ec"}.icon-shapes:before{content:"\f61f"}.icon-share:before{content:"\f064"}.icon-share-alt:before{content:"\f1e0"}.icon-share-alt-square:before{content:"\f1e1"}.icon-share-square:before{content:"\f14d"}.icon-shekel-sign:before{content:"\f20b"}.icon-shield-alt:before{content:"\f3ed"}.icon-ship:before{content:"\f21a"}.icon-shipping-fast:before{content:"\f48b"}.icon-shirtsinbulk:before{content:"\f214"}.icon-shoe-prints:before{content:"\f54b"}.icon-shopping-bag:before{content:"\f290"}.icon-shopping-basket:before{content:"\f291"}.icon-shopping-cart:before{content:"\f07a"}.icon-shopware:before{content:"\f5b5"}.icon-shower:before{content:"\f2cc"}.icon-shuttle-van:before{content:"\f5b6"}.icon-sign:before{content:"\f4d9"}.icon-sign-in-alt:before{content:"\f2f6"}.icon-sign-language:before{content:"\f2a7"}.icon-sign-out-alt:before{content:"\f2f5"}.icon-signal:before{content:"\f012"}.icon-signature:before{content:"\f5b7"}.icon-sim-card:before{content:"\f7c4"}.icon-simplybuilt:before{content:"\f215"}.icon-sistrix:before{content:"\f3ee"}.icon-sitemap:before{content:"\f0e8"}.icon-sith:before{content:"\f512"}.icon-skating:before{content:"\f7c5"}.icon-sketch:before{content:"\f7c6"}.icon-skiing:before{content:"\f7c9"}.icon-skiing-nordic:before{content:"\f7ca"}.icon-skull:before{content:"\f54c"}.icon-skull-crossbones:before{content:"\f714"}.icon-skyatlas:before{content:"\f216"}.icon-skype:before{content:"\f17e"}.icon-slack:before{content:"\f198"}.icon-slack-hash:before{content:"\f3ef"}.icon-slash:before{content:"\f715"}.icon-sleigh:before{content:"\f7cc"}.icon-sliders-h:before{content:"\f1de"}.icon-slideshare:before{content:"\f1e7"}.icon-smile:before{content:"\f118"}.icon-smile-beam:before{content:"\f5b8"}.icon-smile-wink:before{content:"\f4da"}.icon-smog:before{content:"\f75f"}.icon-smoking:before{content:"\f48d"}.icon-smoking-ban:before{content:"\f54d"}.icon-sms:before{content:"\f7cd"}.icon-snapchat:before{content:"\f2ab"}.icon-snapchat-ghost:before{content:"\f2ac"}.icon-snapchat-square:before{content:"\f2ad"}.icon-snowboarding:before{content:"\f7ce"}.icon-snowflake:before{content:"\f2dc"}.icon-snowman:before{content:"\f7d0"}.icon-snowplow:before{content:"\f7d2"}.icon-socks:before{content:"\f696"}.icon-solar-panel:before{content:"\f5ba"}.icon-sort:before{content:"\f0dc"}.icon-sort-alpha-down:before{content:"\f15d"}.icon-sort-alpha-up:before{content:"\f15e"}.icon-sort-amount-down:before{content:"\f160"}.icon-sort-amount-up:before{content:"\f161"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-numeric-down:before{content:"\f162"}.icon-sort-numeric-up:before{content:"\f163"}.icon-sort-up:before{content:"\f0de"}.icon-soundcloud:before{content:"\f1be"}.icon-sourcetree:before{content:"\f7d3"}.icon-spa:before{content:"\f5bb"}.icon-space-shuttle:before{content:"\f197"}.icon-speakap:before{content:"\f3f3"}.icon-spider:before{content:"\f717"}.icon-spinner:before{content:"\f110"}.icon-splotch:before{content:"\f5bc"}.icon-spotify:before{content:"\f1bc"}.icon-spray-can:before{content:"\f5bd"}.icon-square:before{content:"\f0c8"}.icon-square-full:before{content:"\f45c"}.icon-square-root-alt:before{content:"\f698"}.icon-squarespace:before{content:"\f5be"}.icon-stack-exchange:before{content:"\f18d"}.icon-stack-overflow:before{content:"\f16c"}.icon-stamp:before{content:"\f5bf"}.icon-star:before{content:"\f005"}.icon-star-and-crescent:before{content:"\f699"}.icon-star-half:before{content:"\f089"}.icon-star-half-alt:before{content:"\f5c0"}.icon-star-of-david:before{content:"\f69a"}.icon-star-of-life:before{content:"\f621"}.icon-staylinked:before{content:"\f3f5"}.icon-steam:before{content:"\f1b6"}.icon-steam-square:before{content:"\f1b7"}.icon-steam-symbol:before{content:"\f3f6"}.icon-step-backward:before{content:"\f048"}.icon-step-forward:before{content:"\f051"}.icon-stethoscope:before{content:"\f0f1"}.icon-sticker-mule:before{content:"\f3f7"}.icon-sticky-note:before{content:"\f249"}.icon-stop:before{content:"\f04d"}.icon-stop-circle:before{content:"\f28d"}.icon-stopwatch:before{content:"\f2f2"}.icon-store:before{content:"\f54e"}.icon-store-alt:before{content:"\f54f"}.icon-strava:before{content:"\f428"}.icon-stream:before{content:"\f550"}.icon-street-view:before{content:"\f21d"}.icon-strikethrough:before{content:"\f0cc"}.icon-stripe:before{content:"\f429"}.icon-stripe-s:before{content:"\f42a"}.icon-stroopwafel:before{content:"\f551"}.icon-studiovinari:before{content:"\f3f8"}.icon-stumbleupon:before{content:"\f1a4"}.icon-stumbleupon-circle:before{content:"\f1a3"}.icon-subscript:before{content:"\f12c"}.icon-subway:before{content:"\f239"}.icon-suitcase:before{content:"\f0f2"}.icon-suitcase-rolling:before{content:"\f5c1"}.icon-sun:before{content:"\f185"}.icon-superpowers:before{content:"\f2dd"}.icon-superscript:before{content:"\f12b"}.icon-supple:before{content:"\f3f9"}.icon-surprise:before{content:"\f5c2"}.icon-suse:before{content:"\f7d6"}.icon-swatchbook:before{content:"\f5c3"}.icon-swimmer:before{content:"\f5c4"}.icon-swimming-pool:before{content:"\f5c5"}.icon-synagogue:before{content:"\f69b"}.icon-sync:before{content:"\f021"}.icon-sync-alt:before{content:"\f2f1"}.icon-syringe:before{content:"\f48e"}.icon-table:before{content:"\f0ce"}.icon-table-tennis:before{content:"\f45d"}.icon-tablet:before{content:"\f10a"}.icon-tablet-alt:before{content:"\f3fa"}.icon-tablets:before{content:"\f490"}.icon-tachometer-alt:before{content:"\f3fd"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-tape:before{content:"\f4db"}.icon-tasks:before{content:"\f0ae"}.icon-taxi:before{content:"\f1ba"}.icon-teamspeak:before{content:"\f4f9"}.icon-teeth:before{content:"\f62e"}.icon-teeth-open:before{content:"\f62f"}.icon-telegram:before{content:"\f2c6"}.icon-telegram-plane:before{content:"\f3fe"}.icon-temperature-high:before{content:"\f769"}.icon-temperature-low:before{content:"\f76b"}.icon-tencent-weibo:before{content:"\f1d5"}.icon-tenge:before{content:"\f7d7"}.icon-terminal:before{content:"\f120"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-th:before{content:"\f00a"}.icon-th-large:before{content:"\f009"}.icon-th-list:before{content:"\f00b"}.icon-the-red-yeti:before{content:"\f69d"}.icon-theater-masks:before{content:"\f630"}.icon-themeco:before{content:"\f5c6"}.icon-themeisle:before{content:"\f2b2"}.icon-thermometer:before{content:"\f491"}.icon-thermometer-empty:before{content:"\f2cb"}.icon-thermometer-full:before{content:"\f2c7"}.icon-thermometer-half:before{content:"\f2c9"}.icon-thermometer-quarter:before{content:"\f2ca"}.icon-thermometer-three-quarters:before{content:"\f2c8"}.icon-think-peaks:before{content:"\f731"}.icon-thumbs-down:before{content:"\f165"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbtack:before{content:"\f08d"}.icon-ticket-alt:before{content:"\f3ff"}.icon-times:before{content:"\f00d"}.icon-times-circle:before{content:"\f057"}.icon-tint:before{content:"\f043"}.icon-tint-slash:before{content:"\f5c7"}.icon-tired:before{content:"\f5c8"}.icon-toggle-off:before{content:"\f204"}.icon-toggle-on:before{content:"\f205"}.icon-toilet:before{content:"\f7d8"}.icon-toilet-paper:before{content:"\f71e"}.icon-toolbox:before{content:"\f552"}.icon-tools:before{content:"\f7d9"}.icon-tooth:before{content:"\f5c9"}.icon-torah:before{content:"\f6a0"}.icon-torii-gate:before{content:"\f6a1"}.icon-tractor:before{content:"\f722"}.icon-trade-federation:before{content:"\f513"}.icon-trademark:before{content:"\f25c"}.icon-traffic-light:before{content:"\f637"}.icon-train:before{content:"\f238"}.icon-tram:before{content:"\f7da"}.icon-transgender:before{content:"\f224"}.icon-transgender-alt:before{content:"\f225"}.icon-trash:before{content:"\f1f8"}.icon-trash-alt:before{content:"\f2ed"}.icon-trash-restore:before{content:"\f829"}.icon-trash-restore-alt:before{content:"\f82a"}.icon-tree:before{content:"\f1bb"}.icon-trello:before{content:"\f181"}.icon-tripadvisor:before{content:"\f262"}.icon-trophy:before{content:"\f091"}.icon-truck:before{content:"\f0d1"}.icon-truck-loading:before{content:"\f4de"}.icon-truck-monster:before{content:"\f63b"}.icon-truck-moving:before{content:"\f4df"}.icon-truck-pickup:before{content:"\f63c"}.icon-tshirt:before{content:"\f553"}.icon-tty:before{content:"\f1e4"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-square:before{content:"\f174"}.icon-tv:before{content:"\f26c"}.icon-twitch:before{content:"\f1e8"}.icon-twitter:before{content:"\f099"}.icon-twitter-square:before{content:"\f081"}.icon-typo3:before{content:"\f42b"}.icon-uber:before{content:"\f402"}.icon-ubuntu:before{content:"\f7df"}.icon-uikit:before{content:"\f403"}.icon-umbrella:before{content:"\f0e9"}.icon-umbrella-beach:before{content:"\f5ca"}.icon-underline:before{content:"\f0cd"}.icon-undo:before{content:"\f0e2"}.icon-undo-alt:before{content:"\f2ea"}.icon-uniregistry:before{content:"\f404"}.icon-universal-access:before{content:"\f29a"}.icon-university:before{content:"\f19c"}.icon-unlink:before{content:"\f127"}.icon-unlock:before{content:"\f09c"}.icon-unlock-alt:before{content:"\f13e"}.icon-untappd:before{content:"\f405"}.icon-upload:before{content:"\f093"}.icon-ups:before{content:"\f7e0"}.icon-usb:before{content:"\f287"}.icon-user:before{content:"\f007"}.icon-user-alt:before{content:"\f406"}.icon-user-alt-slash:before{content:"\f4fa"}.icon-user-astronaut:before{content:"\f4fb"}.icon-user-check:before{content:"\f4fc"}.icon-user-circle:before{content:"\f2bd"}.icon-user-clock:before{content:"\f4fd"}.icon-user-cog:before{content:"\f4fe"}.icon-user-edit:before{content:"\f4ff"}.icon-user-friends:before{content:"\f500"}.icon-user-graduate:before{content:"\f501"}.icon-user-injured:before{content:"\f728"}.icon-user-lock:before{content:"\f502"}.icon-user-md:before{content:"\f0f0"}.icon-user-minus:before{content:"\f503"}.icon-user-ninja:before{content:"\f504"}.icon-user-nurse:before{content:"\f82f"}.icon-user-plus:before{content:"\f234"}.icon-user-secret:before{content:"\f21b"}.icon-user-shield:before{content:"\f505"}.icon-user-slash:before{content:"\f506"}.icon-user-tag:before{content:"\f507"}.icon-user-tie:before{content:"\f508"}.icon-user-times:before{content:"\f235"}.icon-users:before{content:"\f0c0"}.icon-users-cog:before{content:"\f509"}.icon-usps:before{content:"\f7e1"}.icon-ussunnah:before{content:"\f407"}.icon-utensil-spoon:before{content:"\f2e5"}.icon-utensils:before{content:"\f2e7"}.icon-vaadin:before{content:"\f408"}.icon-vector-square:before{content:"\f5cb"}.icon-venus:before{content:"\f221"}.icon-venus-double:before{content:"\f226"}.icon-venus-mars:before{content:"\f228"}.icon-viacoin:before{content:"\f237"}.icon-viadeo:before{content:"\f2a9"}.icon-viadeo-square:before{content:"\f2aa"}.icon-vial:before{content:"\f492"}.icon-vials:before{content:"\f493"}.icon-viber:before{content:"\f409"}.icon-video:before{content:"\f03d"}.icon-video-slash:before{content:"\f4e2"}.icon-vihara:before{content:"\f6a7"}.icon-vimeo:before{content:"\f40a"}.icon-vimeo-square:before{content:"\f194"}.icon-vimeo-v:before{content:"\f27d"}.icon-vine:before{content:"\f1ca"}.icon-vk:before{content:"\f189"}.icon-vnv:before{content:"\f40b"}.icon-volleyball-ball:before{content:"\f45f"}.icon-volume-down:before{content:"\f027"}.icon-volume-mute:before{content:"\f6a9"}.icon-volume-off:before{content:"\f026"}.icon-volume-up:before{content:"\f028"}.icon-vote-yea:before{content:"\f772"}.icon-vr-cardboard:before{content:"\f729"}.icon-vuejs:before{content:"\f41f"}.icon-walking:before{content:"\f554"}.icon-wallet:before{content:"\f555"}.icon-warehouse:before{content:"\f494"}.icon-water:before{content:"\f773"}.icon-weebly:before{content:"\f5cc"}.icon-weibo:before{content:"\f18a"}.icon-weight:before{content:"\f496"}.icon-weight-hanging:before{content:"\f5cd"}.icon-weixin:before{content:"\f1d7"}.icon-whatsapp:before{content:"\f232"}.icon-whatsapp-square:before{content:"\f40c"}.icon-wheelchair:before{content:"\f193"}.icon-whmcs:before{content:"\f40d"}.icon-wifi:before{content:"\f1eb"}.icon-wikipedia-w:before{content:"\f266"}.icon-wind:before{content:"\f72e"}.icon-window-close:before{content:"\f410"}.icon-window-maximize:before{content:"\f2d0"}.icon-window-minimize:before{content:"\f2d1"}.icon-window-restore:before{content:"\f2d2"}.icon-windows:before{content:"\f17a"}.icon-wine-bottle:before{content:"\f72f"}.icon-wine-glass:before{content:"\f4e3"}.icon-wine-glass-alt:before{content:"\f5ce"}.icon-wix:before{content:"\f5cf"}.icon-wizards-of-the-coast:before{content:"\f730"}.icon-wolf-pack-battalion:before{content:"\f514"}.icon-won-sign:before{content:"\f159"}.icon-wordpress:before{content:"\f19a"}.icon-wordpress-simple:before{content:"\f411"}.icon-wpbeginner:before{content:"\f297"}.icon-wpexplorer:before{content:"\f2de"}.icon-wpforms:before{content:"\f298"}.icon-wpressr:before{content:"\f3e4"}.icon-wrench:before{content:"\f0ad"}.icon-x-ray:before{content:"\f497"}.icon-xbox:before{content:"\f412"}.icon-xing:before{content:"\f168"}.icon-xing-square:before{content:"\f169"}.icon-y-combinator:before{content:"\f23b"}.icon-yahoo:before{content:"\f19e"}.icon-yandex:before{content:"\f413"}.icon-yandex-international:before{content:"\f414"}.icon-yarn:before{content:"\f7e3"}.icon-yelp:before{content:"\f1e9"}.icon-yen-sign:before{content:"\f157"}.icon-yin-yang:before{content:"\f6ad"}.icon-yoast:before{content:"\f2b1"}.icon-youtube:before{content:"\f167"}.icon-youtube-square:before{content:"\f431"}.icon-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.modx-installer-steps li.active span.icon::after,[type=checkbox]:checked+label:before,[type=checkbox]:not(:checked)+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:900}*,::after,::before{box-sizing:border-box}body,html{height:100%}body{color:#343434;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;background:#f4f4f4;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}body a{color:#4a90e2;text-decoration:none;transition:all .2s ease-in}body a:hover{color:#2275d7}.button{display:inline-block;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:0;margin-left:0;border:0;border-radius:3px;cursor:pointer;line-height:1;font-size:18px;padding:15px 30px;width:170px;transition:background-color .2s ease-out;background:#6cb24a;box-shadow:0 0 0 1px #e4e4e4}.custom-select{font-size:16px;width:50%;padding:9px 0 9px 20px;border:1px solid #e4e4e4!important;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url("data:image/svg+xml;utf8,") no-repeat;background-size:12px;background-position:calc(100% - 20px) 60%;background-repeat:no-repeat;background-color:#fbfbfb;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.select_lang .toggle{color:#515151;width:25%;float:right;top:-3rem;position:relative;font-size:18px;text-align:center}.select_lang .toggle span{cursor:pointer;border-bottom:1px dotted}.select_lang .toggle.pop{display:none}.languages{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.languages .language{max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%;cursor:pointer;position:relative}.languages .language.other{display:none}.languages .language .radio{position:absolute;z-index:-1}.languages .language .wrap{display:block;padding:.5rem .7rem;border:1px solid #dcdcdc;margin:5px;background-color:#fbfbfb;border-radius:3px;color:#515151}.languages .language .wrap>span{display:block}.languages .language .native{font-weight:700;font-size:1rem}.languages .language .name strong{text-transform:uppercase}.languages .language:focus input~.wrap,.languages .language:hover input~.wrap{border-color:#4a90e2}.languages .language input:checked~.wrap,.languages .language input:focus~.wrap{border-color:#4a90e2;background-color:#f1f6fd}[type=checkbox]:checked,[type=checkbox]:not(:checked){position:absolute;left:-9999px}[type=checkbox]:checked+label,[type=checkbox]:not(:checked)+label{position:relative;padding-left:1.95em;cursor:pointer;margin:0 auto}[type=checkbox]:disabled+label:before{opacity:.5}.cleanup [type=checkbox]:checked+label,.cleanup [type=checkbox]:not(:checked)+label{padding-left:0}[type=checkbox]:checked+label:before,[type=checkbox]:not(:checked)+label:before{position:absolute;left:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:30px;width:30px;height:30px;line-height:30px}[type=checkbox]:not(:checked)+label:before{content:"\f0c8";color:#dcdcdc}[type=checkbox]:checked+label:before{content:"\f14a";color:#4a90e2}#modx-next{background-color:#6cb24a;color:#fff}#modx-next:hover{background:#61a043}#modx-back{background:#fff;color:#515151;background-repeat:no-repeat;border:0;border-radius:3px;cursor:pointer;display:inline-block;position:relative;text-decoration:none;transition:background-color .2s ease-out;zoom:1}#modx-back:hover{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.steps-outer{width:100%;max-width:750px;margin:0 auto}.modx-installer-steps{list-style:none;text-align:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.modx-installer-steps li{display:inline-block;width:calc(100% / 7);position:relative;z-index:2}.modx-installer-steps li:first-child::before,.modx-installer-steps li:last-child::after{display:none}.modx-installer-steps li::after,.modx-installer-steps li::before{content:"";height:2px;background-color:#dcdcdc;position:absolute;top:13px;z-index:-1;transition:all .3s}.modx-installer-steps li::after{left:50%;right:0}.modx-installer-steps li::before{right:50%;left:0}.modx-installer-steps li span.icon{display:block;position:relative;width:25px;height:25px;background:#e4e4e4;border-radius:50%;border:2px solid #dcdcdc;margin:1px auto 10px;z-index:4;box-sizing:border-box;font-size:15px;line-height:21px;transition:all .3s}.modx-installer-steps li.active::after,.modx-installer-steps li.active::before{background-color:#6cb24a}.modx-installer-steps li.active span.icon{background-color:#6cb24a;border-color:#6cb24a}.modx-installer-steps li.active span.icon::after{content:"\f00c";color:#fff;position:relative;line-height:1}.modx-installer-steps li.current::before{background-color:#6cb24a}.modx-installer-steps li.current span.icon{background-color:#6cb24a;border-color:#fff;border-width:7px;box-shadow:0 0 5px rgba(0,0,0,.1)}input[type=email],input[type=password],input[type=text]{background-color:#fbfbfb;border:1px solid #e4e4e4;border-radius:3px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:10px 20px}input[type=button],input[type=submit]{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wrapper{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;max-width:1140px}header{margin-top:10px}header .wrapper_logo .logo{background:url(../images/modx-logo-color.svg) no-repeat center transparent;width:220px;height:85px;background-size:contain;display:block;position:relative;text-indent:-9999px;margin:0 auto}header .wrapper_version{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:16px;padding:5px 0}#content{-ms-flex-positive:1;flex-grow:1}#content .content-inside{padding:20px}#content .content-inside .wrapper{background:#fff;padding:30px;border-radius:5px;max-width:890px;height:auto;min-height:400px}#content .content-inside .wrapper .content_header{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#content .content-inside .wrapper .content_header_title{width:100%;font:600 30px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#343434;padding-bottom:15px;border-bottom:1px solid #dcdcdc}#content .content-inside .wrapper form{margin-top:25px;display:block}#content .content-inside .wrapper form .content-wrap{min-height:calc(430px - 80px)}#content .content-inside .wrapper form .content-wrap h2{font-weight:500;font-size:22px}#content .content-inside .wrapper form .content-wrap p{font-size:16px}#content .content-inside .wrapper form .content-wrap .title{font-weight:500}#content .content-inside .wrapper .setup_navbar{width:100%;display:inline-block;padding-top:25px}#content .content-inside .wrapper .setup_navbar #modx-back{float:left}#content .content-inside .wrapper .setup_navbar #modx-next{float:right}#content .content-inside .wrapper .content_footer{padding-top:25px;padding-bottom:30px}.options-wrap{margin:0}.options-wrap .option-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:25px 40px 25px 0;cursor:pointer;min-height:120px;margin-bottom:10px;position:relative}.options-wrap .option-item-note{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:25px 40px;min-height:140px;margin-bottom:10px;border-left:.2rem solid #4a90e2;background-color:rgba(74,144,226,.3);border-color:#4a90e2;color:#061527}.options-wrap .option-item-input{-ms-flex-preferred-size:130px;flex-basis:130px;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.options-wrap .option-item-input input{margin:0 auto;display:block}.options-wrap .option-item-input input[type=text]{font-size:14px;padding:8px 15px;text-align:center}.options-wrap .option-item-desc{-ms-flex:1 1 0;flex:1 1 0;letter-spacing:0}.options-wrap .option-item-desc .label{font-size:20px;color:#343434;font-weight:500}.options-wrap .option-item-desc .desc{font-size:16px;line-height:25px;color:#606060}.options-wrap .option-item .fa{color:#dfdfdf}.options-wrap .option-item input:checked~.fa{color:#4a90e2}.options-wrap .option-item span{display:block;border:1px solid #dfdfdf;padding:20px;position:absolute;top:0;left:0;right:0;bottom:0}.options-wrap .option-item input:checked~span{border-color:#4a90e2}.advanced_options .option-item{padding:10px 40px 10px 0;border:1px solid #dfdfdf;min-height:70px}.advanced_options .option-item-input{-ms-flex-preferred-size:130px;flex-basis:130px;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.advanced_options .option-item-desc{-ms-flex:1 1 0;flex:1 1 0;letter-spacing:0}.advanced_options .option-item-desc .label{font-size:16px;color:#343434;font-weight:500}.advanced_options .option-item-desc .desc{font-size:14px;line-height:1.6;color:#606060}.hide{display:none!important}.fa{color:#4a90e2;font-size:3em;margin:0 auto}#welcome input#config_key{font-size:16px;padding:10px 20px;margin-left:10px}#cck-div{font-size:16px}#cck-div p{margin-bottom:0}#cck-div pre{display:inline-block;font-size:16px;margin:0}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center #modx-testcoll,.flex-center #modx-testconn{background:#fff;border:1px solid #515151;color:#515151;margin-top:10px;text-align:center;width:auto}.flex-center #modx-testcoll:hover,.flex-center #modx-testconn:hover{box-shadow:0 0 15px 5px rgba(154,158,156,.2);transition:all .4s cubic-bezier(.23,1,.135,2.284)}#install h2.title{font-size:20px;color:#343434;letter-spacing:0}#install p{font-size:16px;color:#606060;letter-spacing:0;line-height:22px}#install ul.checklist{list-style:none;margin:15px 0;padding:0}#install ul.checklist li{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}#install ul.checklist li p{color:#333;font-size:14px;line-height:14px;margin:0}#install ul.checklist li .notok,#install ul.checklist li .ok{font-weight:700}#install ul.checklist li .ok{color:#355825}#install ul.checklist li .notok{color:#590710}#install ul.checklist .failed,#install ul.checklist .success,#install ul.checklist .testFailed,#install ul.checklist .testPassed,#install ul.checklist .testWarn,#install ul.checklist .warning{padding:10px;border-left:.2rem solid}#install ul.checklist .testWarn,#install ul.checklist .warning{background-color:rgba(240,180,41,.2);border-color:#f0b429}#install ul.checklist .success,#install ul.checklist .testPassed{background-color:rgba(108,178,74,.2);border-color:#6cb24a}#install ul.checklist .failed,#install ul.checklist .testFailed{background-color:rgba(207,17,36,.2);border-color:#cf1124}#install .labelHolder{margin-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}#install .labelHolder .col{line-height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#install .labelHolder .col:first-child{-ms-flex-preferred-size:40%;flex-basis:40%}#install .labelHolder .col:last-child{-ms-flex-preferred-size:60%;flex-basis:60%}#install .labelHolder .col label{color:#606060;font-size:16px;letter-spacing:0}#install .labelHolder .col input[type=email],#install .labelHolder .col input[type=password],#install .labelHolder .col input[type=text]{font-size:16px;padding:10px 20px;width:260px}#install .labelHolder .col select{width:260px}#install .labelHolder .col .field_error{color:#cf1124!important;font-size:14px;margin-left:10px}#install .labelHolder .col-1,#install .labelHolder .col-2,#install .labelHolder .col-3{line-height:30px}#install .labelHolder .col-1 label,#install .labelHolder .col-2 label,#install .labelHolder .col-3 label{color:#606060;font-size:16px;letter-spacing:0}#install .labelHolder .col-1 input[type=email],#install .labelHolder .col-1 input[type=password],#install .labelHolder .col-1 input[type=text],#install .labelHolder .col-2 input[type=email],#install .labelHolder .col-2 input[type=password],#install .labelHolder .col-2 input[type=text],#install .labelHolder .col-3 input[type=email],#install .labelHolder .col-3 input[type=password],#install .labelHolder .col-3 input[type=text]{font-size:16px;padding:10px 20px;width:100%}#install .labelHolder .col-1{-ms-flex-preferred-size:35%;flex-basis:35%}#install .labelHolder .col-2{-ms-flex-preferred-size:60%;flex-basis:60%}#install .labelHolder .col-3{-ms-flex-preferred-size:5%;flex-basis:5%;margin:0 auto;text-align:center}#install .labelHolder .col-3 input[type=checkbox]{width:auto}#install #modx-db-step1-msg,#install #modx-db-step2-msg{margin-bottom:10px;border-bottom:2px solid #dfdfdf;padding-bottom:22px}#install #modx-db-step1-msg .title,#install #modx-db-step2-msg .title{color:#343434;font-size:16px;font-weight:500;display:block;margin-bottom:10px}#install #modx-db-step1-msg span.connect-msg,#install #modx-db-step1-msg span.result,#install #modx-db-step2-msg span.connect-msg,#install #modx-db-step2-msg span.result{background-color:#effcf6;border-left:.2rem solid;border-color:#6cb24a;color:#355825;display:block;font-size:16px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:10px}#install #modx-db-step1-msg span.connect-msg p,#install #modx-db-step1-msg span.result p,#install #modx-db-step2-msg span.connect-msg p,#install #modx-db-step2-msg span.result p{font-size:14px}#install #modx-db-step1-msg span.connect-msg p:first-child,#install #modx-db-step1-msg span.result p:first-child,#install #modx-db-step2-msg span.connect-msg p:first-child,#install #modx-db-step2-msg span.result p:first-child{-webkit-margin-before:0;margin-block-start:0}#install #modx-db-step1-msg span.connect-msg p:last-child,#install #modx-db-step1-msg span.result p:last-child,#install #modx-db-step2-msg span.connect-msg p:last-child,#install #modx-db-step2-msg span.result p:last-child{-webkit-margin-after:0;margin-block-end:0}#install #modx-db-step1-msg.error span.connect-msg,#install #modx-db-step1-msg.error span.result,#install #modx-db-step2-msg.error span.connect-msg,#install #modx-db-step2-msg.error span.result{background-color:rgba(207,17,36,.2);border-color:#cf1124}#install #modx-db-step1-msg.error span.connect-msg p,#install #modx-db-step1-msg.error span.result p,#install #modx-db-step2-msg.error span.connect-msg p,#install #modx-db-step2-msg.error span.result p{color:#590710}#install #modx-db-info span{display:block;margin-bottom:5px;font-weight:500}#install #modx-db-info #modx-db-client-version,#install #modx-db-info #modx-db-server-version{color:#606060;font-weight:400}#install #modx-db-info #modx-db-client-version.success,#install #modx-db-info #modx-db-server-version.success{color:#6cb24a}#install #modx-db-info #modx-db-client-version.warning,#install #modx-db-info #modx-db-server-version.warning{color:#cf1124}#install #modx-db-step2 .result{font-weight:500}#install #modx-db-step2.success span.result{color:#6cb24a}.setup_body{box-sizing:border-box;min-height:calc(430px - 80px);padding-bottom:90px}.cleanup [type=checkbox]:checked+label:before,.cleanup [type=checkbox]:not(:checked)+label:before{position:relative;margin:10px 10px 0 0;float:left}footer{background:#fff;padding:15px 0}@media (max-width:575.98px){.modx-installer-steps li span.title{display:none}.button{font-size:14px;padding:15px 10px;width:140px}#content .content-inside .wrapper{padding:20px}#content .content-inside .wrapper form .content-wrap h2{font-size:20px}#content .content-inside .wrapper form .content-wrap p{font-size:14px}#content .content-inside .wrapper .content_header_title{font-size:24px}#cck-div,#install p,.custom-select,pre{font-size:14px}#welcome input#config_key{font-size:14px;margin-left:0;margin-top:5px}#install .labelHolder{-ms-flex-direction:column;flex-direction:column}#install .labelHolder .col-1,#install .labelHolder .col-2,#install .labelHolder .col-3{-ms-flex-preferred-size:100%;flex-basis:100%;width:100%}#install .labelHolder .col-1 input[type=text],#install .labelHolder .col-2 input[type=text],#install .labelHolder .col-3 input[type=text]{font-size:14px}#install .labelHolder .col-3{margin-top:10px}#install .labelHolder .col-3 [type=checkbox]:checked+label:before,#install .labelHolder .col-3 [type=checkbox]:not(:checked)+label:before{width:1.5em;height:1.5em}#install .labelHolder .col-3 [type=checkbox]:checked+label:after,#install .labelHolder .col-3 [type=checkbox]:not(:checked)+label:after{font-size:1.4em}#install #modx-db-step1-msg .title{margin-top:10px}#install #modx-db-step1-msg.error span.connect-msg p{font-size:13px;word-break:break-all}#install #modx-db-info #modx-db-client-version.success{word-break:break-all}#install h2.title{font-size:20px}#install h3{text-align:center}small{font-size:100%}#install ul.checklist{word-break:break-all}.setup_navbar.complete{display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.setup_navbar.complete span.cleanup{display:-ms-flexbox;display:flex}.cleanup [type=checkbox]:checked+label:before,.cleanup [type=checkbox]:not(:checked)+label:before{top:5px!important}.cleanup [type=checkbox]:checked+label:after,.cleanup [type=checkbox]:not(:checked)+label:after{top:8px!important}footer{font-size:12px;padding:0}.select_lang .toggle{width:100%;float:initial;top:.5rem;display:block}.languages .language{max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}} +/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}main{display:block}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}input{overflow:visible}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;display:table;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}details{display:block}summary{display:list-item}menu{display:block}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-large,.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */.fab,.fad,.fal,.far,.fas,.icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.icon-large,.icon-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.icon-xs{font-size:.75em}.icon-sm{font-size:.875em}.icon-1x{font-size:1em}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-6x{font-size:6em}.icon-7x{font-size:7em}.icon-8x{font-size:8em}.icon-9x{font-size:9em}.icon-10x{font-size:10em}.icon-fw{text-align:center;width:1.25em}.icon-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.icon-ul>li{position:relative}.icon-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.icon-pull-left{float:left}.icon-pull-right{float:right}.fab.icon-pull-left,.fal.icon-pull-left,.far.icon-pull-left,.fas.icon-pull-left,.icon.icon-pull-left{margin-right:.3em}.fab.icon-pull-right,.fal.icon-pull-right,.far.icon-pull-right,.fas.icon-pull-right,.icon.icon-pull-right{margin-left:.3em}.icon-spin{animation:fa-spin 2s infinite linear}.icon-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.icon-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}.icon-flip-both,.icon-flip-horizontal.icon-flip-vertical{-ms-transform:scale(-1,-1);transform:scale(-1,-1)}:root .icon-flip-both,:root .icon-flip-horizontal,:root .icon-flip-vertical,:root .icon-rotate-180,:root .icon-rotate-270,:root .icon-rotate-90{filter:none}.icon-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.icon-stack-1x,.icon-stack-2x{left:0;position:absolute;text-align:center;width:100%}.icon-stack-1x{line-height:inherit}.icon-stack-2x{font-size:2em}.icon-inverse{color:#fff}.icon-500px:before{content:"\f26e"}.icon-accessible-icon:before{content:"\f368"}.icon-accusoft:before{content:"\f369"}.icon-acquisitions-incorporated:before{content:"\f6af"}.icon-ad:before{content:"\f641"}.icon-address-book:before{content:"\f2b9"}.icon-address-card:before{content:"\f2bb"}.icon-adjust:before{content:"\f042"}.icon-adn:before{content:"\f170"}.icon-adversal:before{content:"\f36a"}.icon-affiliatetheme:before{content:"\f36b"}.icon-air-freshener:before{content:"\f5d0"}.icon-airbnb:before{content:"\f834"}.icon-algolia:before{content:"\f36c"}.icon-align-center:before{content:"\f037"}.icon-align-justify:before{content:"\f039"}.icon-align-left:before{content:"\f036"}.icon-align-right:before{content:"\f038"}.icon-alipay:before{content:"\f642"}.icon-allergies:before{content:"\f461"}.icon-amazon:before{content:"\f270"}.icon-amazon-pay:before{content:"\f42c"}.icon-ambulance:before{content:"\f0f9"}.icon-american-sign-language-interpreting:before{content:"\f2a3"}.icon-amilia:before{content:"\f36d"}.icon-anchor:before{content:"\f13d"}.icon-android:before{content:"\f17b"}.icon-angellist:before{content:"\f209"}.icon-angle-double-down:before{content:"\f103"}.icon-angle-double-left:before{content:"\f100"}.icon-angle-double-right:before{content:"\f101"}.icon-angle-double-up:before{content:"\f102"}.icon-angle-down:before{content:"\f107"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angry:before{content:"\f556"}.icon-angrycreative:before{content:"\f36e"}.icon-angular:before{content:"\f420"}.icon-ankh:before{content:"\f644"}.icon-app-store:before{content:"\f36f"}.icon-app-store-ios:before{content:"\f370"}.icon-apper:before{content:"\f371"}.icon-apple:before{content:"\f179"}.icon-apple-alt:before{content:"\f5d1"}.icon-apple-pay:before{content:"\f415"}.icon-archive:before{content:"\f187"}.icon-archway:before{content:"\f557"}.icon-arrow-alt-circle-down:before{content:"\f358"}.icon-arrow-alt-circle-left:before{content:"\f359"}.icon-arrow-alt-circle-right:before{content:"\f35a"}.icon-arrow-alt-circle-up:before{content:"\f35b"}.icon-arrow-circle-down:before{content:"\f0ab"}.icon-arrow-circle-left:before{content:"\f0a8"}.icon-arrow-circle-right:before{content:"\f0a9"}.icon-arrow-circle-up:before{content:"\f0aa"}.icon-arrow-down:before{content:"\f063"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrows-alt:before{content:"\f0b2"}.icon-arrows-alt-h:before{content:"\f337"}.icon-arrows-alt-v:before{content:"\f338"}.icon-artstation:before{content:"\f77a"}.icon-assistive-listening-systems:before{content:"\f2a2"}.icon-asterisk:before{content:"\f069"}.icon-asymmetrik:before{content:"\f372"}.icon-at:before{content:"\f1fa"}.icon-atlas:before{content:"\f558"}.icon-atlassian:before{content:"\f77b"}.icon-atom:before{content:"\f5d2"}.icon-audible:before{content:"\f373"}.icon-audio-description:before{content:"\f29e"}.icon-autoprefixer:before{content:"\f41c"}.icon-avianex:before{content:"\f374"}.icon-aviato:before{content:"\f421"}.icon-award:before{content:"\f559"}.icon-aws:before{content:"\f375"}.icon-baby:before{content:"\f77c"}.icon-baby-carriage:before{content:"\f77d"}.icon-backspace:before{content:"\f55a"}.icon-backward:before{content:"\f04a"}.icon-bacon:before{content:"\f7e5"}.icon-bacteria:before{content:"\e059"}.icon-bacterium:before{content:"\e05a"}.icon-bahai:before{content:"\f666"}.icon-balance-scale:before{content:"\f24e"}.icon-balance-scale-left:before{content:"\f515"}.icon-balance-scale-right:before{content:"\f516"}.icon-ban:before{content:"\f05e"}.icon-band-aid:before{content:"\f462"}.icon-bandcamp:before{content:"\f2d5"}.icon-barcode:before{content:"\f02a"}.icon-bars:before{content:"\f0c9"}.icon-baseball-ball:before{content:"\f433"}.icon-basketball-ball:before{content:"\f434"}.icon-bath:before{content:"\f2cd"}.icon-battery-empty:before{content:"\f244"}.icon-battery-full:before{content:"\f240"}.icon-battery-half:before{content:"\f242"}.icon-battery-quarter:before{content:"\f243"}.icon-battery-three-quarters:before{content:"\f241"}.icon-battle-net:before{content:"\f835"}.icon-bed:before{content:"\f236"}.icon-beer:before{content:"\f0fc"}.icon-behance:before{content:"\f1b4"}.icon-behance-square:before{content:"\f1b5"}.icon-bell:before{content:"\f0f3"}.icon-bell-slash:before{content:"\f1f6"}.icon-bezier-curve:before{content:"\f55b"}.icon-bible:before{content:"\f647"}.icon-bicycle:before{content:"\f206"}.icon-biking:before{content:"\f84a"}.icon-bimobject:before{content:"\f378"}.icon-binoculars:before{content:"\f1e5"}.icon-biohazard:before{content:"\f780"}.icon-birthday-cake:before{content:"\f1fd"}.icon-bitbucket:before{content:"\f171"}.icon-bitcoin:before{content:"\f379"}.icon-bity:before{content:"\f37a"}.icon-black-tie:before{content:"\f27e"}.icon-blackberry:before{content:"\f37b"}.icon-blender:before{content:"\f517"}.icon-blender-phone:before{content:"\f6b6"}.icon-blind:before{content:"\f29d"}.icon-blog:before{content:"\f781"}.icon-blogger:before{content:"\f37c"}.icon-blogger-b:before{content:"\f37d"}.icon-bluetooth:before{content:"\f293"}.icon-bluetooth-b:before{content:"\f294"}.icon-bold:before{content:"\f032"}.icon-bolt:before{content:"\f0e7"}.icon-bomb:before{content:"\f1e2"}.icon-bone:before{content:"\f5d7"}.icon-bong:before{content:"\f55c"}.icon-book:before{content:"\f02d"}.icon-book-dead:before{content:"\f6b7"}.icon-book-medical:before{content:"\f7e6"}.icon-book-open:before{content:"\f518"}.icon-book-reader:before{content:"\f5da"}.icon-bookmark:before{content:"\f02e"}.icon-bootstrap:before{content:"\f836"}.icon-border-all:before{content:"\f84c"}.icon-border-none:before{content:"\f850"}.icon-border-style:before{content:"\f853"}.icon-bowling-ball:before{content:"\f436"}.icon-box:before{content:"\f466"}.icon-box-open:before{content:"\f49e"}.icon-box-tissue:before{content:"\e05b"}.icon-boxes:before{content:"\f468"}.icon-braille:before{content:"\f2a1"}.icon-brain:before{content:"\f5dc"}.icon-bread-slice:before{content:"\f7ec"}.icon-briefcase:before{content:"\f0b1"}.icon-briefcase-medical:before{content:"\f469"}.icon-broadcast-tower:before{content:"\f519"}.icon-broom:before{content:"\f51a"}.icon-brush:before{content:"\f55d"}.icon-btc:before{content:"\f15a"}.icon-buffer:before{content:"\f837"}.icon-bug:before{content:"\f188"}.icon-building:before{content:"\f1ad"}.icon-bullhorn:before{content:"\f0a1"}.icon-bullseye:before{content:"\f140"}.icon-burn:before{content:"\f46a"}.icon-buromobelexperte:before{content:"\f37f"}.icon-bus:before{content:"\f207"}.icon-bus-alt:before{content:"\f55e"}.icon-business-time:before{content:"\f64a"}.icon-buy-n-large:before{content:"\f8a6"}.icon-buysellads:before{content:"\f20d"}.icon-calculator:before{content:"\f1ec"}.icon-calendar:before{content:"\f133"}.icon-calendar-alt:before{content:"\f073"}.icon-calendar-check:before{content:"\f274"}.icon-calendar-day:before{content:"\f783"}.icon-calendar-minus:before{content:"\f272"}.icon-calendar-plus:before{content:"\f271"}.icon-calendar-times:before{content:"\f273"}.icon-calendar-week:before{content:"\f784"}.icon-camera:before{content:"\f030"}.icon-camera-retro:before{content:"\f083"}.icon-campground:before{content:"\f6bb"}.icon-canadian-maple-leaf:before{content:"\f785"}.icon-candy-cane:before{content:"\f786"}.icon-cannabis:before{content:"\f55f"}.icon-capsules:before{content:"\f46b"}.icon-car:before{content:"\f1b9"}.icon-car-alt:before{content:"\f5de"}.icon-car-battery:before{content:"\f5df"}.icon-car-crash:before{content:"\f5e1"}.icon-car-side:before{content:"\f5e4"}.icon-caravan:before{content:"\f8ff"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-caret-square-down:before{content:"\f150"}.icon-caret-square-left:before{content:"\f191"}.icon-caret-square-right:before{content:"\f152"}.icon-caret-square-up:before{content:"\f151"}.icon-caret-up:before{content:"\f0d8"}.icon-carrot:before{content:"\f787"}.icon-cart-arrow-down:before{content:"\f218"}.icon-cart-plus:before{content:"\f217"}.icon-cash-register:before{content:"\f788"}.icon-cat:before{content:"\f6be"}.icon-cc-amazon-pay:before{content:"\f42d"}.icon-cc-amex:before{content:"\f1f3"}.icon-cc-apple-pay:before{content:"\f416"}.icon-cc-diners-club:before{content:"\f24c"}.icon-cc-discover:before{content:"\f1f2"}.icon-cc-jcb:before{content:"\f24b"}.icon-cc-mastercard:before{content:"\f1f1"}.icon-cc-paypal:before{content:"\f1f4"}.icon-cc-stripe:before{content:"\f1f5"}.icon-cc-visa:before{content:"\f1f0"}.icon-centercode:before{content:"\f380"}.icon-centos:before{content:"\f789"}.icon-certificate:before{content:"\f0a3"}.icon-chair:before{content:"\f6c0"}.icon-chalkboard:before{content:"\f51b"}.icon-chalkboard-teacher:before{content:"\f51c"}.icon-charging-station:before{content:"\f5e7"}.icon-chart-area:before{content:"\f1fe"}.icon-chart-bar:before{content:"\f080"}.icon-chart-line:before{content:"\f201"}.icon-chart-pie:before{content:"\f200"}.icon-check:before{content:"\f00c"}.icon-check-circle:before{content:"\f058"}.icon-check-double:before{content:"\f560"}.icon-check-square:before{content:"\f14a"}.icon-cheese:before{content:"\f7ef"}.icon-chess:before{content:"\f439"}.icon-chess-bishop:before{content:"\f43a"}.icon-chess-board:before{content:"\f43c"}.icon-chess-king:before{content:"\f43f"}.icon-chess-knight:before{content:"\f441"}.icon-chess-pawn:before{content:"\f443"}.icon-chess-queen:before{content:"\f445"}.icon-chess-rook:before{content:"\f447"}.icon-chevron-circle-down:before{content:"\f13a"}.icon-chevron-circle-left:before{content:"\f137"}.icon-chevron-circle-right:before{content:"\f138"}.icon-chevron-circle-up:before{content:"\f139"}.icon-chevron-down:before{content:"\f078"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-chevron-up:before{content:"\f077"}.icon-child:before{content:"\f1ae"}.icon-chrome:before{content:"\f268"}.icon-chromecast:before{content:"\f838"}.icon-church:before{content:"\f51d"}.icon-circle:before{content:"\f111"}.icon-circle-notch:before{content:"\f1ce"}.icon-city:before{content:"\f64f"}.icon-clinic-medical:before{content:"\f7f2"}.icon-clipboard:before{content:"\f328"}.icon-clipboard-check:before{content:"\f46c"}.icon-clipboard-list:before{content:"\f46d"}.icon-clock:before{content:"\f017"}.icon-clone:before{content:"\f24d"}.icon-closed-captioning:before{content:"\f20a"}.icon-cloud:before{content:"\f0c2"}.icon-cloud-download-alt:before{content:"\f381"}.icon-cloud-meatball:before{content:"\f73b"}.icon-cloud-moon:before{content:"\f6c3"}.icon-cloud-moon-rain:before{content:"\f73c"}.icon-cloud-rain:before{content:"\f73d"}.icon-cloud-showers-heavy:before{content:"\f740"}.icon-cloud-sun:before{content:"\f6c4"}.icon-cloud-sun-rain:before{content:"\f743"}.icon-cloud-upload-alt:before{content:"\f382"}.icon-cloudflare:before{content:"\e07d"}.icon-cloudscale:before{content:"\f383"}.icon-cloudsmith:before{content:"\f384"}.icon-cloudversify:before{content:"\f385"}.icon-cocktail:before{content:"\f561"}.icon-code:before{content:"\f121"}.icon-code-branch:before{content:"\f126"}.icon-codepen:before{content:"\f1cb"}.icon-codiepie:before{content:"\f284"}.icon-coffee:before{content:"\f0f4"}.icon-cog:before{content:"\f013"}.icon-cogs:before{content:"\f085"}.icon-coins:before{content:"\f51e"}.icon-columns:before{content:"\f0db"}.icon-comment:before{content:"\f075"}.icon-comment-alt:before{content:"\f27a"}.icon-comment-dollar:before{content:"\f651"}.icon-comment-dots:before{content:"\f4ad"}.icon-comment-medical:before{content:"\f7f5"}.icon-comment-slash:before{content:"\f4b3"}.icon-comments:before{content:"\f086"}.icon-comments-dollar:before{content:"\f653"}.icon-compact-disc:before{content:"\f51f"}.icon-compass:before{content:"\f14e"}.icon-compress:before{content:"\f066"}.icon-compress-alt:before{content:"\f422"}.icon-compress-arrows-alt:before{content:"\f78c"}.icon-concierge-bell:before{content:"\f562"}.icon-confluence:before{content:"\f78d"}.icon-connectdevelop:before{content:"\f20e"}.icon-contao:before{content:"\f26d"}.icon-cookie:before{content:"\f563"}.icon-cookie-bite:before{content:"\f564"}.icon-copy:before{content:"\f0c5"}.icon-copyright:before{content:"\f1f9"}.icon-cotton-bureau:before{content:"\f89e"}.icon-couch:before{content:"\f4b8"}.icon-cpanel:before{content:"\f388"}.icon-creative-commons:before{content:"\f25e"}.icon-creative-commons-by:before{content:"\f4e7"}.icon-creative-commons-nc:before{content:"\f4e8"}.icon-creative-commons-nc-eu:before{content:"\f4e9"}.icon-creative-commons-nc-jp:before{content:"\f4ea"}.icon-creative-commons-nd:before{content:"\f4eb"}.icon-creative-commons-pd:before{content:"\f4ec"}.icon-creative-commons-pd-alt:before{content:"\f4ed"}.icon-creative-commons-remix:before{content:"\f4ee"}.icon-creative-commons-sa:before{content:"\f4ef"}.icon-creative-commons-sampling:before{content:"\f4f0"}.icon-creative-commons-sampling-plus:before{content:"\f4f1"}.icon-creative-commons-share:before{content:"\f4f2"}.icon-creative-commons-zero:before{content:"\f4f3"}.icon-credit-card:before{content:"\f09d"}.icon-critical-role:before{content:"\f6c9"}.icon-crop:before{content:"\f125"}.icon-crop-alt:before{content:"\f565"}.icon-cross:before{content:"\f654"}.icon-crosshairs:before{content:"\f05b"}.icon-crow:before{content:"\f520"}.icon-crown:before{content:"\f521"}.icon-crutch:before{content:"\f7f7"}.icon-css3:before{content:"\f13c"}.icon-css3-alt:before{content:"\f38b"}.icon-cube:before{content:"\f1b2"}.icon-cubes:before{content:"\f1b3"}.icon-cut:before{content:"\f0c4"}.icon-cuttlefish:before{content:"\f38c"}.icon-d-and-d:before{content:"\f38d"}.icon-d-and-d-beyond:before{content:"\f6ca"}.icon-dailymotion:before{content:"\e052"}.icon-dashcube:before{content:"\f210"}.icon-database:before{content:"\f1c0"}.icon-deaf:before{content:"\f2a4"}.icon-deezer:before{content:"\e077"}.icon-delicious:before{content:"\f1a5"}.icon-democrat:before{content:"\f747"}.icon-deploydog:before{content:"\f38e"}.icon-deskpro:before{content:"\f38f"}.icon-desktop:before{content:"\f108"}.icon-dev:before{content:"\f6cc"}.icon-deviantart:before{content:"\f1bd"}.icon-dharmachakra:before{content:"\f655"}.icon-dhl:before{content:"\f790"}.icon-diagnoses:before{content:"\f470"}.icon-diaspora:before{content:"\f791"}.icon-dice:before{content:"\f522"}.icon-dice-d20:before{content:"\f6cf"}.icon-dice-d6:before{content:"\f6d1"}.icon-dice-five:before{content:"\f523"}.icon-dice-four:before{content:"\f524"}.icon-dice-one:before{content:"\f525"}.icon-dice-six:before{content:"\f526"}.icon-dice-three:before{content:"\f527"}.icon-dice-two:before{content:"\f528"}.icon-digg:before{content:"\f1a6"}.icon-digital-ocean:before{content:"\f391"}.icon-digital-tachograph:before{content:"\f566"}.icon-directions:before{content:"\f5eb"}.icon-discord:before{content:"\f392"}.icon-discourse:before{content:"\f393"}.icon-disease:before{content:"\f7fa"}.icon-divide:before{content:"\f529"}.icon-dizzy:before{content:"\f567"}.icon-dna:before{content:"\f471"}.icon-dochub:before{content:"\f394"}.icon-docker:before{content:"\f395"}.icon-dog:before{content:"\f6d3"}.icon-dollar-sign:before{content:"\f155"}.icon-dolly:before{content:"\f472"}.icon-dolly-flatbed:before{content:"\f474"}.icon-donate:before{content:"\f4b9"}.icon-door-closed:before{content:"\f52a"}.icon-door-open:before{content:"\f52b"}.icon-dot-circle:before{content:"\f192"}.icon-dove:before{content:"\f4ba"}.icon-download:before{content:"\f019"}.icon-draft2digital:before{content:"\f396"}.icon-drafting-compass:before{content:"\f568"}.icon-dragon:before{content:"\f6d5"}.icon-draw-polygon:before{content:"\f5ee"}.icon-dribbble:before{content:"\f17d"}.icon-dribbble-square:before{content:"\f397"}.icon-dropbox:before{content:"\f16b"}.icon-drum:before{content:"\f569"}.icon-drum-steelpan:before{content:"\f56a"}.icon-drumstick-bite:before{content:"\f6d7"}.icon-drupal:before{content:"\f1a9"}.icon-dumbbell:before{content:"\f44b"}.icon-dumpster:before{content:"\f793"}.icon-dumpster-fire:before{content:"\f794"}.icon-dungeon:before{content:"\f6d9"}.icon-dyalog:before{content:"\f399"}.icon-earlybirds:before{content:"\f39a"}.icon-ebay:before{content:"\f4f4"}.icon-edge:before{content:"\f282"}.icon-edge-legacy:before{content:"\e078"}.icon-edit:before{content:"\f044"}.icon-egg:before{content:"\f7fb"}.icon-eject:before{content:"\f052"}.icon-elementor:before{content:"\f430"}.icon-ellipsis-h:before{content:"\f141"}.icon-ellipsis-v:before{content:"\f142"}.icon-ello:before{content:"\f5f1"}.icon-ember:before{content:"\f423"}.icon-empire:before{content:"\f1d1"}.icon-envelope:before{content:"\f0e0"}.icon-envelope-open:before{content:"\f2b6"}.icon-envelope-open-text:before{content:"\f658"}.icon-envelope-square:before{content:"\f199"}.icon-envira:before{content:"\f299"}.icon-equals:before{content:"\f52c"}.icon-eraser:before{content:"\f12d"}.icon-erlang:before{content:"\f39d"}.icon-ethereum:before{content:"\f42e"}.icon-ethernet:before{content:"\f796"}.icon-etsy:before{content:"\f2d7"}.icon-euro-sign:before{content:"\f153"}.icon-evernote:before{content:"\f839"}.icon-exchange-alt:before{content:"\f362"}.icon-exclamation:before{content:"\f12a"}.icon-exclamation-circle:before{content:"\f06a"}.icon-exclamation-triangle:before{content:"\f071"}.icon-expand:before{content:"\f065"}.icon-expand-alt:before{content:"\f424"}.icon-expand-arrows-alt:before{content:"\f31e"}.icon-expeditedssl:before{content:"\f23e"}.icon-external-link-alt:before{content:"\f35d"}.icon-external-link-square-alt:before{content:"\f360"}.icon-eye:before{content:"\f06e"}.icon-eye-dropper:before{content:"\f1fb"}.icon-eye-slash:before{content:"\f070"}.icon-facebook:before{content:"\f09a"}.icon-facebook-f:before{content:"\f39e"}.icon-facebook-messenger:before{content:"\f39f"}.icon-facebook-square:before{content:"\f082"}.icon-fan:before{content:"\f863"}.icon-fantasy-flight-games:before{content:"\f6dc"}.icon-fast-backward:before{content:"\f049"}.icon-fast-forward:before{content:"\f050"}.icon-faucet:before{content:"\e005"}.icon-fax:before{content:"\f1ac"}.icon-feather:before{content:"\f52d"}.icon-feather-alt:before{content:"\f56b"}.icon-fedex:before{content:"\f797"}.icon-fedora:before{content:"\f798"}.icon-female:before{content:"\f182"}.icon-fighter-jet:before{content:"\f0fb"}.icon-figma:before{content:"\f799"}.icon-file:before{content:"\f15b"}.icon-file-alt:before{content:"\f15c"}.icon-file-archive:before{content:"\f1c6"}.icon-file-audio:before{content:"\f1c7"}.icon-file-code:before{content:"\f1c9"}.icon-file-contract:before{content:"\f56c"}.icon-file-csv:before{content:"\f6dd"}.icon-file-download:before{content:"\f56d"}.icon-file-excel:before{content:"\f1c3"}.icon-file-export:before{content:"\f56e"}.icon-file-image:before{content:"\f1c5"}.icon-file-import:before{content:"\f56f"}.icon-file-invoice:before{content:"\f570"}.icon-file-invoice-dollar:before{content:"\f571"}.icon-file-medical:before{content:"\f477"}.icon-file-medical-alt:before{content:"\f478"}.icon-file-pdf:before{content:"\f1c1"}.icon-file-powerpoint:before{content:"\f1c4"}.icon-file-prescription:before{content:"\f572"}.icon-file-signature:before{content:"\f573"}.icon-file-upload:before{content:"\f574"}.icon-file-video:before{content:"\f1c8"}.icon-file-word:before{content:"\f1c2"}.icon-fill:before{content:"\f575"}.icon-fill-drip:before{content:"\f576"}.icon-film:before{content:"\f008"}.icon-filter:before{content:"\f0b0"}.icon-fingerprint:before{content:"\f577"}.icon-fire:before{content:"\f06d"}.icon-fire-alt:before{content:"\f7e4"}.icon-fire-extinguisher:before{content:"\f134"}.icon-firefox:before{content:"\f269"}.icon-firefox-browser:before{content:"\e007"}.icon-first-aid:before{content:"\f479"}.icon-first-order:before{content:"\f2b0"}.icon-first-order-alt:before{content:"\f50a"}.icon-firstdraft:before{content:"\f3a1"}.icon-fish:before{content:"\f578"}.icon-fist-raised:before{content:"\f6de"}.icon-flag:before{content:"\f024"}.icon-flag-checkered:before{content:"\f11e"}.icon-flag-usa:before{content:"\f74d"}.icon-flask:before{content:"\f0c3"}.icon-flickr:before{content:"\f16e"}.icon-flipboard:before{content:"\f44d"}.icon-flushed:before{content:"\f579"}.icon-fly:before{content:"\f417"}.icon-folder:before{content:"\f07b"}.icon-folder-minus:before{content:"\f65d"}.icon-folder-open:before{content:"\f07c"}.icon-folder-plus:before{content:"\f65e"}.icon-font:before{content:"\f031"}.icon-font-awesome:before{content:"\f2b4"}.icon-font-awesome-alt:before{content:"\f35c"}.icon-font-awesome-flag:before{content:"\f425"}.icon-font-awesome-logo-full:before{content:"\f4e6"}.icon-fonticons:before{content:"\f280"}.icon-fonticons-fi:before{content:"\f3a2"}.icon-football-ball:before{content:"\f44e"}.icon-fort-awesome:before{content:"\f286"}.icon-fort-awesome-alt:before{content:"\f3a3"}.icon-forumbee:before{content:"\f211"}.icon-forward:before{content:"\f04e"}.icon-foursquare:before{content:"\f180"}.icon-free-code-camp:before{content:"\f2c5"}.icon-freebsd:before{content:"\f3a4"}.icon-frog:before{content:"\f52e"}.icon-frown:before{content:"\f119"}.icon-frown-open:before{content:"\f57a"}.icon-fulcrum:before{content:"\f50b"}.icon-funnel-dollar:before{content:"\f662"}.icon-futbol:before{content:"\f1e3"}.icon-galactic-republic:before{content:"\f50c"}.icon-galactic-senate:before{content:"\f50d"}.icon-gamepad:before{content:"\f11b"}.icon-gas-pump:before{content:"\f52f"}.icon-gavel:before{content:"\f0e3"}.icon-gem:before{content:"\f3a5"}.icon-genderless:before{content:"\f22d"}.icon-get-pocket:before{content:"\f265"}.icon-gg:before{content:"\f260"}.icon-gg-circle:before{content:"\f261"}.icon-ghost:before{content:"\f6e2"}.icon-gift:before{content:"\f06b"}.icon-gifts:before{content:"\f79c"}.icon-git:before{content:"\f1d3"}.icon-git-alt:before{content:"\f841"}.icon-git-square:before{content:"\f1d2"}.icon-github:before{content:"\f09b"}.icon-github-alt:before{content:"\f113"}.icon-github-square:before{content:"\f092"}.icon-gitkraken:before{content:"\f3a6"}.icon-gitlab:before{content:"\f296"}.icon-gitter:before{content:"\f426"}.icon-glass-cheers:before{content:"\f79f"}.icon-glass-martini:before{content:"\f000"}.icon-glass-martini-alt:before{content:"\f57b"}.icon-glass-whiskey:before{content:"\f7a0"}.icon-glasses:before{content:"\f530"}.icon-glide:before{content:"\f2a5"}.icon-glide-g:before{content:"\f2a6"}.icon-globe:before{content:"\f0ac"}.icon-globe-africa:before{content:"\f57c"}.icon-globe-americas:before{content:"\f57d"}.icon-globe-asia:before{content:"\f57e"}.icon-globe-europe:before{content:"\f7a2"}.icon-gofore:before{content:"\f3a7"}.icon-golf-ball:before{content:"\f450"}.icon-goodreads:before{content:"\f3a8"}.icon-goodreads-g:before{content:"\f3a9"}.icon-google:before{content:"\f1a0"}.icon-google-drive:before{content:"\f3aa"}.icon-google-pay:before{content:"\e079"}.icon-google-play:before{content:"\f3ab"}.icon-google-plus:before{content:"\f2b3"}.icon-google-plus-g:before{content:"\f0d5"}.icon-google-plus-square:before{content:"\f0d4"}.icon-google-wallet:before{content:"\f1ee"}.icon-gopuram:before{content:"\f664"}.icon-graduation-cap:before{content:"\f19d"}.icon-gratipay:before{content:"\f184"}.icon-grav:before{content:"\f2d6"}.icon-greater-than:before{content:"\f531"}.icon-greater-than-equal:before{content:"\f532"}.icon-grimace:before{content:"\f57f"}.icon-grin:before{content:"\f580"}.icon-grin-alt:before{content:"\f581"}.icon-grin-beam:before{content:"\f582"}.icon-grin-beam-sweat:before{content:"\f583"}.icon-grin-hearts:before{content:"\f584"}.icon-grin-squint:before{content:"\f585"}.icon-grin-squint-tears:before{content:"\f586"}.icon-grin-stars:before{content:"\f587"}.icon-grin-tears:before{content:"\f588"}.icon-grin-tongue:before{content:"\f589"}.icon-grin-tongue-squint:before{content:"\f58a"}.icon-grin-tongue-wink:before{content:"\f58b"}.icon-grin-wink:before{content:"\f58c"}.icon-grip-horizontal:before{content:"\f58d"}.icon-grip-lines:before{content:"\f7a4"}.icon-grip-lines-vertical:before{content:"\f7a5"}.icon-grip-vertical:before{content:"\f58e"}.icon-gripfire:before{content:"\f3ac"}.icon-grunt:before{content:"\f3ad"}.icon-guilded:before{content:"\e07e"}.icon-guitar:before{content:"\f7a6"}.icon-gulp:before{content:"\f3ae"}.icon-h-square:before{content:"\f0fd"}.icon-hacker-news:before{content:"\f1d4"}.icon-hacker-news-square:before{content:"\f3af"}.icon-hackerrank:before{content:"\f5f7"}.icon-hamburger:before{content:"\f805"}.icon-hammer:before{content:"\f6e3"}.icon-hamsa:before{content:"\f665"}.icon-hand-holding:before{content:"\f4bd"}.icon-hand-holding-heart:before{content:"\f4be"}.icon-hand-holding-medical:before{content:"\e05c"}.icon-hand-holding-usd:before{content:"\f4c0"}.icon-hand-holding-water:before{content:"\f4c1"}.icon-hand-lizard:before{content:"\f258"}.icon-hand-middle-finger:before{content:"\f806"}.icon-hand-paper:before{content:"\f256"}.icon-hand-peace:before{content:"\f25b"}.icon-hand-point-down:before{content:"\f0a7"}.icon-hand-point-left:before{content:"\f0a5"}.icon-hand-point-right:before{content:"\f0a4"}.icon-hand-point-up:before{content:"\f0a6"}.icon-hand-pointer:before{content:"\f25a"}.icon-hand-rock:before{content:"\f255"}.icon-hand-scissors:before{content:"\f257"}.icon-hand-sparkles:before{content:"\e05d"}.icon-hand-spock:before{content:"\f259"}.icon-hands:before{content:"\f4c2"}.icon-hands-helping:before{content:"\f4c4"}.icon-hands-wash:before{content:"\e05e"}.icon-handshake:before{content:"\f2b5"}.icon-handshake-alt-slash:before{content:"\e05f"}.icon-handshake-slash:before{content:"\e060"}.icon-hanukiah:before{content:"\f6e6"}.icon-hard-hat:before{content:"\f807"}.icon-hashtag:before{content:"\f292"}.icon-hat-cowboy:before{content:"\f8c0"}.icon-hat-cowboy-side:before{content:"\f8c1"}.icon-hat-wizard:before{content:"\f6e8"}.icon-hdd:before{content:"\f0a0"}.icon-head-side-cough:before{content:"\e061"}.icon-head-side-cough-slash:before{content:"\e062"}.icon-head-side-mask:before{content:"\e063"}.icon-head-side-virus:before{content:"\e064"}.icon-heading:before{content:"\f1dc"}.icon-headphones:before{content:"\f025"}.icon-headphones-alt:before{content:"\f58f"}.icon-headset:before{content:"\f590"}.icon-heart:before{content:"\f004"}.icon-heart-broken:before{content:"\f7a9"}.icon-heartbeat:before{content:"\f21e"}.icon-helicopter:before{content:"\f533"}.icon-highlighter:before{content:"\f591"}.icon-hiking:before{content:"\f6ec"}.icon-hippo:before{content:"\f6ed"}.icon-hips:before{content:"\f452"}.icon-hire-a-helper:before{content:"\f3b0"}.icon-history:before{content:"\f1da"}.icon-hive:before{content:"\e07f"}.icon-hockey-puck:before{content:"\f453"}.icon-holly-berry:before{content:"\f7aa"}.icon-home:before{content:"\f015"}.icon-hooli:before{content:"\f427"}.icon-hornbill:before{content:"\f592"}.icon-horse:before{content:"\f6f0"}.icon-horse-head:before{content:"\f7ab"}.icon-hospital:before{content:"\f0f8"}.icon-hospital-alt:before{content:"\f47d"}.icon-hospital-symbol:before{content:"\f47e"}.icon-hospital-user:before{content:"\f80d"}.icon-hot-tub:before{content:"\f593"}.icon-hotdog:before{content:"\f80f"}.icon-hotel:before{content:"\f594"}.icon-hotjar:before{content:"\f3b1"}.icon-hourglass:before{content:"\f254"}.icon-hourglass-end:before{content:"\f253"}.icon-hourglass-half:before{content:"\f252"}.icon-hourglass-start:before{content:"\f251"}.icon-house-damage:before{content:"\f6f1"}.icon-house-user:before{content:"\e065"}.icon-houzz:before{content:"\f27c"}.icon-hryvnia:before{content:"\f6f2"}.icon-html5:before{content:"\f13b"}.icon-hubspot:before{content:"\f3b2"}.icon-i-cursor:before{content:"\f246"}.icon-ice-cream:before{content:"\f810"}.icon-icicles:before{content:"\f7ad"}.icon-icons:before{content:"\f86d"}.icon-id-badge:before{content:"\f2c1"}.icon-id-card:before{content:"\f2c2"}.icon-id-card-alt:before{content:"\f47f"}.icon-ideal:before{content:"\e013"}.icon-igloo:before{content:"\f7ae"}.icon-image:before{content:"\f03e"}.icon-images:before{content:"\f302"}.icon-imdb:before{content:"\f2d8"}.icon-inbox:before{content:"\f01c"}.icon-indent:before{content:"\f03c"}.icon-industry:before{content:"\f275"}.icon-infinity:before{content:"\f534"}.icon-info:before{content:"\f129"}.icon-info-circle:before{content:"\f05a"}.icon-innosoft:before{content:"\e080"}.icon-instagram:before{content:"\f16d"}.icon-instagram-square:before{content:"\e055"}.icon-instalod:before{content:"\e081"}.icon-intercom:before{content:"\f7af"}.icon-internet-explorer:before{content:"\f26b"}.icon-invision:before{content:"\f7b0"}.icon-ioxhost:before{content:"\f208"}.icon-italic:before{content:"\f033"}.icon-itch-io:before{content:"\f83a"}.icon-itunes:before{content:"\f3b4"}.icon-itunes-note:before{content:"\f3b5"}.icon-java:before{content:"\f4e4"}.icon-jedi:before{content:"\f669"}.icon-jedi-order:before{content:"\f50e"}.icon-jenkins:before{content:"\f3b6"}.icon-jira:before{content:"\f7b1"}.icon-joget:before{content:"\f3b7"}.icon-joint:before{content:"\f595"}.icon-joomla:before{content:"\f1aa"}.icon-journal-whills:before{content:"\f66a"}.icon-js:before{content:"\f3b8"}.icon-js-square:before{content:"\f3b9"}.icon-jsfiddle:before{content:"\f1cc"}.icon-kaaba:before{content:"\f66b"}.icon-kaggle:before{content:"\f5fa"}.icon-key:before{content:"\f084"}.icon-keybase:before{content:"\f4f5"}.icon-keyboard:before{content:"\f11c"}.icon-keycdn:before{content:"\f3ba"}.icon-khanda:before{content:"\f66d"}.icon-kickstarter:before{content:"\f3bb"}.icon-kickstarter-k:before{content:"\f3bc"}.icon-kiss:before{content:"\f596"}.icon-kiss-beam:before{content:"\f597"}.icon-kiss-wink-heart:before{content:"\f598"}.icon-kiwi-bird:before{content:"\f535"}.icon-korvue:before{content:"\f42f"}.icon-landmark:before{content:"\f66f"}.icon-language:before{content:"\f1ab"}.icon-laptop:before{content:"\f109"}.icon-laptop-code:before{content:"\f5fc"}.icon-laptop-house:before{content:"\e066"}.icon-laptop-medical:before{content:"\f812"}.icon-laravel:before{content:"\f3bd"}.icon-lastfm:before{content:"\f202"}.icon-lastfm-square:before{content:"\f203"}.icon-laugh:before{content:"\f599"}.icon-laugh-beam:before{content:"\f59a"}.icon-laugh-squint:before{content:"\f59b"}.icon-laugh-wink:before{content:"\f59c"}.icon-layer-group:before{content:"\f5fd"}.icon-leaf:before{content:"\f06c"}.icon-leanpub:before{content:"\f212"}.icon-lemon:before{content:"\f094"}.icon-less:before{content:"\f41d"}.icon-less-than:before{content:"\f536"}.icon-less-than-equal:before{content:"\f537"}.icon-level-down-alt:before{content:"\f3be"}.icon-level-up-alt:before{content:"\f3bf"}.icon-life-ring:before{content:"\f1cd"}.icon-lightbulb:before{content:"\f0eb"}.icon-line:before{content:"\f3c0"}.icon-link:before{content:"\f0c1"}.icon-linkedin:before{content:"\f08c"}.icon-linkedin-in:before{content:"\f0e1"}.icon-linode:before{content:"\f2b8"}.icon-linux:before{content:"\f17c"}.icon-lira-sign:before{content:"\f195"}.icon-list:before{content:"\f03a"}.icon-list-alt:before{content:"\f022"}.icon-list-ol:before{content:"\f0cb"}.icon-list-ul:before{content:"\f0ca"}.icon-location-arrow:before{content:"\f124"}.icon-lock:before{content:"\f023"}.icon-lock-open:before{content:"\f3c1"}.icon-long-arrow-alt-down:before{content:"\f309"}.icon-long-arrow-alt-left:before{content:"\f30a"}.icon-long-arrow-alt-right:before{content:"\f30b"}.icon-long-arrow-alt-up:before{content:"\f30c"}.icon-low-vision:before{content:"\f2a8"}.icon-luggage-cart:before{content:"\f59d"}.icon-lungs:before{content:"\f604"}.icon-lungs-virus:before{content:"\e067"}.icon-lyft:before{content:"\f3c3"}.icon-magento:before{content:"\f3c4"}.icon-magic:before{content:"\f0d0"}.icon-magnet:before{content:"\f076"}.icon-mail-bulk:before{content:"\f674"}.icon-mailchimp:before{content:"\f59e"}.icon-male:before{content:"\f183"}.icon-mandalorian:before{content:"\f50f"}.icon-map:before{content:"\f279"}.icon-map-marked:before{content:"\f59f"}.icon-map-marked-alt:before{content:"\f5a0"}.icon-map-marker:before{content:"\f041"}.icon-map-marker-alt:before{content:"\f3c5"}.icon-map-pin:before{content:"\f276"}.icon-map-signs:before{content:"\f277"}.icon-markdown:before{content:"\f60f"}.icon-marker:before{content:"\f5a1"}.icon-mars:before{content:"\f222"}.icon-mars-double:before{content:"\f227"}.icon-mars-stroke:before{content:"\f229"}.icon-mars-stroke-h:before{content:"\f22b"}.icon-mars-stroke-v:before{content:"\f22a"}.icon-mask:before{content:"\f6fa"}.icon-mastodon:before{content:"\f4f6"}.icon-maxcdn:before{content:"\f136"}.icon-mdb:before{content:"\f8ca"}.icon-medal:before{content:"\f5a2"}.icon-medapps:before{content:"\f3c6"}.icon-medium:before{content:"\f23a"}.icon-medium-m:before{content:"\f3c7"}.icon-medkit:before{content:"\f0fa"}.icon-medrt:before{content:"\f3c8"}.icon-meetup:before{content:"\f2e0"}.icon-megaport:before{content:"\f5a3"}.icon-meh:before{content:"\f11a"}.icon-meh-blank:before{content:"\f5a4"}.icon-meh-rolling-eyes:before{content:"\f5a5"}.icon-memory:before{content:"\f538"}.icon-mendeley:before{content:"\f7b3"}.icon-menorah:before{content:"\f676"}.icon-mercury:before{content:"\f223"}.icon-meteor:before{content:"\f753"}.icon-microblog:before{content:"\e01a"}.icon-microchip:before{content:"\f2db"}.icon-microphone:before{content:"\f130"}.icon-microphone-alt:before{content:"\f3c9"}.icon-microphone-alt-slash:before{content:"\f539"}.icon-microphone-slash:before{content:"\f131"}.icon-microscope:before{content:"\f610"}.icon-microsoft:before{content:"\f3ca"}.icon-minus:before{content:"\f068"}.icon-minus-circle:before{content:"\f056"}.icon-minus-square:before{content:"\f146"}.icon-mitten:before{content:"\f7b5"}.icon-mix:before{content:"\f3cb"}.icon-mixcloud:before{content:"\f289"}.icon-mixer:before{content:"\e056"}.icon-mizuni:before{content:"\f3cc"}.icon-mobile:before{content:"\f10b"}.icon-mobile-alt:before{content:"\f3cd"}.icon-modx:before{content:"\f285"}.icon-monero:before{content:"\f3d0"}.icon-money-bill:before{content:"\f0d6"}.icon-money-bill-alt:before{content:"\f3d1"}.icon-money-bill-wave:before{content:"\f53a"}.icon-money-bill-wave-alt:before{content:"\f53b"}.icon-money-check:before{content:"\f53c"}.icon-money-check-alt:before{content:"\f53d"}.icon-monument:before{content:"\f5a6"}.icon-moon:before{content:"\f186"}.icon-mortar-pestle:before{content:"\f5a7"}.icon-mosque:before{content:"\f678"}.icon-motorcycle:before{content:"\f21c"}.icon-mountain:before{content:"\f6fc"}.icon-mouse:before{content:"\f8cc"}.icon-mouse-pointer:before{content:"\f245"}.icon-mug-hot:before{content:"\f7b6"}.icon-music:before{content:"\f001"}.icon-napster:before{content:"\f3d2"}.icon-neos:before{content:"\f612"}.icon-network-wired:before{content:"\f6ff"}.icon-neuter:before{content:"\f22c"}.icon-newspaper:before{content:"\f1ea"}.icon-nimblr:before{content:"\f5a8"}.icon-node:before{content:"\f419"}.icon-node-js:before{content:"\f3d3"}.icon-not-equal:before{content:"\f53e"}.icon-notes-medical:before{content:"\f481"}.icon-npm:before{content:"\f3d4"}.icon-ns8:before{content:"\f3d5"}.icon-nutritionix:before{content:"\f3d6"}.icon-object-group:before{content:"\f247"}.icon-object-ungroup:before{content:"\f248"}.icon-octopus-deploy:before{content:"\e082"}.icon-odnoklassniki:before{content:"\f263"}.icon-odnoklassniki-square:before{content:"\f264"}.icon-oil-can:before{content:"\f613"}.icon-old-republic:before{content:"\f510"}.icon-om:before{content:"\f679"}.icon-opencart:before{content:"\f23d"}.icon-openid:before{content:"\f19b"}.icon-opera:before{content:"\f26a"}.icon-optin-monster:before{content:"\f23c"}.icon-orcid:before{content:"\f8d2"}.icon-osi:before{content:"\f41a"}.icon-otter:before{content:"\f700"}.icon-outdent:before{content:"\f03b"}.icon-page4:before{content:"\f3d7"}.icon-pagelines:before{content:"\f18c"}.icon-pager:before{content:"\f815"}.icon-paint-brush:before{content:"\f1fc"}.icon-paint-roller:before{content:"\f5aa"}.icon-palette:before{content:"\f53f"}.icon-palfed:before{content:"\f3d8"}.icon-pallet:before{content:"\f482"}.icon-paper-plane:before{content:"\f1d8"}.icon-paperclip:before{content:"\f0c6"}.icon-parachute-box:before{content:"\f4cd"}.icon-paragraph:before{content:"\f1dd"}.icon-parking:before{content:"\f540"}.icon-passport:before{content:"\f5ab"}.icon-pastafarianism:before{content:"\f67b"}.icon-paste:before{content:"\f0ea"}.icon-patreon:before{content:"\f3d9"}.icon-pause:before{content:"\f04c"}.icon-pause-circle:before{content:"\f28b"}.icon-paw:before{content:"\f1b0"}.icon-paypal:before{content:"\f1ed"}.icon-peace:before{content:"\f67c"}.icon-pen:before{content:"\f304"}.icon-pen-alt:before{content:"\f305"}.icon-pen-fancy:before{content:"\f5ac"}.icon-pen-nib:before{content:"\f5ad"}.icon-pen-square:before{content:"\f14b"}.icon-pencil-alt:before{content:"\f303"}.icon-pencil-ruler:before{content:"\f5ae"}.icon-penny-arcade:before{content:"\f704"}.icon-people-arrows:before{content:"\e068"}.icon-people-carry:before{content:"\f4ce"}.icon-pepper-hot:before{content:"\f816"}.icon-perbyte:before{content:"\e083"}.icon-percent:before{content:"\f295"}.icon-percentage:before{content:"\f541"}.icon-periscope:before{content:"\f3da"}.icon-person-booth:before{content:"\f756"}.icon-phabricator:before{content:"\f3db"}.icon-phoenix-framework:before{content:"\f3dc"}.icon-phoenix-squadron:before{content:"\f511"}.icon-phone:before{content:"\f095"}.icon-phone-alt:before{content:"\f879"}.icon-phone-slash:before{content:"\f3dd"}.icon-phone-square:before{content:"\f098"}.icon-phone-square-alt:before{content:"\f87b"}.icon-phone-volume:before{content:"\f2a0"}.icon-photo-video:before{content:"\f87c"}.icon-php:before{content:"\f457"}.icon-pied-piper:before{content:"\f2ae"}.icon-pied-piper-alt:before{content:"\f1a8"}.icon-pied-piper-hat:before{content:"\f4e5"}.icon-pied-piper-pp:before{content:"\f1a7"}.icon-pied-piper-square:before{content:"\e01e"}.icon-piggy-bank:before{content:"\f4d3"}.icon-pills:before{content:"\f484"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-p:before{content:"\f231"}.icon-pinterest-square:before{content:"\f0d3"}.icon-pizza-slice:before{content:"\f818"}.icon-place-of-worship:before{content:"\f67f"}.icon-plane:before{content:"\f072"}.icon-plane-arrival:before{content:"\f5af"}.icon-plane-departure:before{content:"\f5b0"}.icon-plane-slash:before{content:"\e069"}.icon-play:before{content:"\f04b"}.icon-play-circle:before{content:"\f144"}.icon-playstation:before{content:"\f3df"}.icon-plug:before{content:"\f1e6"}.icon-plus:before{content:"\f067"}.icon-plus-circle:before{content:"\f055"}.icon-plus-square:before{content:"\f0fe"}.icon-podcast:before{content:"\f2ce"}.icon-poll:before{content:"\f681"}.icon-poll-h:before{content:"\f682"}.icon-poo:before{content:"\f2fe"}.icon-poo-storm:before{content:"\f75a"}.icon-poop:before{content:"\f619"}.icon-portrait:before{content:"\f3e0"}.icon-pound-sign:before{content:"\f154"}.icon-power-off:before{content:"\f011"}.icon-pray:before{content:"\f683"}.icon-praying-hands:before{content:"\f684"}.icon-prescription:before{content:"\f5b1"}.icon-prescription-bottle:before{content:"\f485"}.icon-prescription-bottle-alt:before{content:"\f486"}.icon-print:before{content:"\f02f"}.icon-procedures:before{content:"\f487"}.icon-product-hunt:before{content:"\f288"}.icon-project-diagram:before{content:"\f542"}.icon-pump-medical:before{content:"\e06a"}.icon-pump-soap:before{content:"\e06b"}.icon-pushed:before{content:"\f3e1"}.icon-puzzle-piece:before{content:"\f12e"}.icon-python:before{content:"\f3e2"}.icon-qq:before{content:"\f1d6"}.icon-qrcode:before{content:"\f029"}.icon-question:before{content:"\f128"}.icon-question-circle:before{content:"\f059"}.icon-quidditch:before{content:"\f458"}.icon-quinscape:before{content:"\f459"}.icon-quora:before{content:"\f2c4"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-quran:before{content:"\f687"}.icon-r-project:before{content:"\f4f7"}.icon-radiation:before{content:"\f7b9"}.icon-radiation-alt:before{content:"\f7ba"}.icon-rainbow:before{content:"\f75b"}.icon-random:before{content:"\f074"}.icon-raspberry-pi:before{content:"\f7bb"}.icon-ravelry:before{content:"\f2d9"}.icon-react:before{content:"\f41b"}.icon-reacteurope:before{content:"\f75d"}.icon-readme:before{content:"\f4d5"}.icon-rebel:before{content:"\f1d0"}.icon-receipt:before{content:"\f543"}.icon-record-vinyl:before{content:"\f8d9"}.icon-recycle:before{content:"\f1b8"}.icon-red-river:before{content:"\f3e3"}.icon-reddit:before{content:"\f1a1"}.icon-reddit-alien:before{content:"\f281"}.icon-reddit-square:before{content:"\f1a2"}.icon-redhat:before{content:"\f7bc"}.icon-redo:before{content:"\f01e"}.icon-redo-alt:before{content:"\f2f9"}.icon-registered:before{content:"\f25d"}.icon-remove-format:before{content:"\f87d"}.icon-renren:before{content:"\f18b"}.icon-reply:before{content:"\f3e5"}.icon-reply-all:before{content:"\f122"}.icon-replyd:before{content:"\f3e6"}.icon-republican:before{content:"\f75e"}.icon-researchgate:before{content:"\f4f8"}.icon-resolving:before{content:"\f3e7"}.icon-restroom:before{content:"\f7bd"}.icon-retweet:before{content:"\f079"}.icon-rev:before{content:"\f5b2"}.icon-ribbon:before{content:"\f4d6"}.icon-ring:before{content:"\f70b"}.icon-road:before{content:"\f018"}.icon-robot:before{content:"\f544"}.icon-rocket:before{content:"\f135"}.icon-rocketchat:before{content:"\f3e8"}.icon-rockrms:before{content:"\f3e9"}.icon-route:before{content:"\f4d7"}.icon-rss:before{content:"\f09e"}.icon-rss-square:before{content:"\f143"}.icon-ruble-sign:before{content:"\f158"}.icon-ruler:before{content:"\f545"}.icon-ruler-combined:before{content:"\f546"}.icon-ruler-horizontal:before{content:"\f547"}.icon-ruler-vertical:before{content:"\f548"}.icon-running:before{content:"\f70c"}.icon-rupee-sign:before{content:"\f156"}.icon-rust:before{content:"\e07a"}.icon-sad-cry:before{content:"\f5b3"}.icon-sad-tear:before{content:"\f5b4"}.icon-safari:before{content:"\f267"}.icon-salesforce:before{content:"\f83b"}.icon-sass:before{content:"\f41e"}.icon-satellite:before{content:"\f7bf"}.icon-satellite-dish:before{content:"\f7c0"}.icon-save:before{content:"\f0c7"}.icon-schlix:before{content:"\f3ea"}.icon-school:before{content:"\f549"}.icon-screwdriver:before{content:"\f54a"}.icon-scribd:before{content:"\f28a"}.icon-scroll:before{content:"\f70e"}.icon-sd-card:before{content:"\f7c2"}.icon-search:before{content:"\f002"}.icon-search-dollar:before{content:"\f688"}.icon-search-location:before{content:"\f689"}.icon-search-minus:before{content:"\f010"}.icon-search-plus:before{content:"\f00e"}.icon-searchengin:before{content:"\f3eb"}.icon-seedling:before{content:"\f4d8"}.icon-sellcast:before{content:"\f2da"}.icon-sellsy:before{content:"\f213"}.icon-server:before{content:"\f233"}.icon-servicestack:before{content:"\f3ec"}.icon-shapes:before{content:"\f61f"}.icon-share:before{content:"\f064"}.icon-share-alt:before{content:"\f1e0"}.icon-share-alt-square:before{content:"\f1e1"}.icon-share-square:before{content:"\f14d"}.icon-shekel-sign:before{content:"\f20b"}.icon-shield-alt:before{content:"\f3ed"}.icon-shield-virus:before{content:"\e06c"}.icon-ship:before{content:"\f21a"}.icon-shipping-fast:before{content:"\f48b"}.icon-shirtsinbulk:before{content:"\f214"}.icon-shoe-prints:before{content:"\f54b"}.icon-shopify:before{content:"\e057"}.icon-shopping-bag:before{content:"\f290"}.icon-shopping-basket:before{content:"\f291"}.icon-shopping-cart:before{content:"\f07a"}.icon-shopware:before{content:"\f5b5"}.icon-shower:before{content:"\f2cc"}.icon-shuttle-van:before{content:"\f5b6"}.icon-sign:before{content:"\f4d9"}.icon-sign-in-alt:before{content:"\f2f6"}.icon-sign-language:before{content:"\f2a7"}.icon-sign-out-alt:before{content:"\f2f5"}.icon-signal:before{content:"\f012"}.icon-signature:before{content:"\f5b7"}.icon-sim-card:before{content:"\f7c4"}.icon-simplybuilt:before{content:"\f215"}.icon-sink:before{content:"\e06d"}.icon-sistrix:before{content:"\f3ee"}.icon-sitemap:before{content:"\f0e8"}.icon-sith:before{content:"\f512"}.icon-skating:before{content:"\f7c5"}.icon-sketch:before{content:"\f7c6"}.icon-skiing:before{content:"\f7c9"}.icon-skiing-nordic:before{content:"\f7ca"}.icon-skull:before{content:"\f54c"}.icon-skull-crossbones:before{content:"\f714"}.icon-skyatlas:before{content:"\f216"}.icon-skype:before{content:"\f17e"}.icon-slack:before{content:"\f198"}.icon-slack-hash:before{content:"\f3ef"}.icon-slash:before{content:"\f715"}.icon-sleigh:before{content:"\f7cc"}.icon-sliders-h:before{content:"\f1de"}.icon-slideshare:before{content:"\f1e7"}.icon-smile:before{content:"\f118"}.icon-smile-beam:before{content:"\f5b8"}.icon-smile-wink:before{content:"\f4da"}.icon-smog:before{content:"\f75f"}.icon-smoking:before{content:"\f48d"}.icon-smoking-ban:before{content:"\f54d"}.icon-sms:before{content:"\f7cd"}.icon-snapchat:before{content:"\f2ab"}.icon-snapchat-ghost:before{content:"\f2ac"}.icon-snapchat-square:before{content:"\f2ad"}.icon-snowboarding:before{content:"\f7ce"}.icon-snowflake:before{content:"\f2dc"}.icon-snowman:before{content:"\f7d0"}.icon-snowplow:before{content:"\f7d2"}.icon-soap:before{content:"\e06e"}.icon-socks:before{content:"\f696"}.icon-solar-panel:before{content:"\f5ba"}.icon-sort:before{content:"\f0dc"}.icon-sort-alpha-down:before{content:"\f15d"}.icon-sort-alpha-down-alt:before{content:"\f881"}.icon-sort-alpha-up:before{content:"\f15e"}.icon-sort-alpha-up-alt:before{content:"\f882"}.icon-sort-amount-down:before{content:"\f160"}.icon-sort-amount-down-alt:before{content:"\f884"}.icon-sort-amount-up:before{content:"\f161"}.icon-sort-amount-up-alt:before{content:"\f885"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-numeric-down:before{content:"\f162"}.icon-sort-numeric-down-alt:before{content:"\f886"}.icon-sort-numeric-up:before{content:"\f163"}.icon-sort-numeric-up-alt:before{content:"\f887"}.icon-sort-up:before{content:"\f0de"}.icon-soundcloud:before{content:"\f1be"}.icon-sourcetree:before{content:"\f7d3"}.icon-spa:before{content:"\f5bb"}.icon-space-shuttle:before{content:"\f197"}.icon-speakap:before{content:"\f3f3"}.icon-speaker-deck:before{content:"\f83c"}.icon-spell-check:before{content:"\f891"}.icon-spider:before{content:"\f717"}.icon-spinner:before{content:"\f110"}.icon-splotch:before{content:"\f5bc"}.icon-spotify:before{content:"\f1bc"}.icon-spray-can:before{content:"\f5bd"}.icon-square:before{content:"\f0c8"}.icon-square-full:before{content:"\f45c"}.icon-square-root-alt:before{content:"\f698"}.icon-squarespace:before{content:"\f5be"}.icon-stack-exchange:before{content:"\f18d"}.icon-stack-overflow:before{content:"\f16c"}.icon-stackpath:before{content:"\f842"}.icon-stamp:before{content:"\f5bf"}.icon-star:before{content:"\f005"}.icon-star-and-crescent:before{content:"\f699"}.icon-star-half:before{content:"\f089"}.icon-star-half-alt:before{content:"\f5c0"}.icon-star-of-david:before{content:"\f69a"}.icon-star-of-life:before{content:"\f621"}.icon-staylinked:before{content:"\f3f5"}.icon-steam:before{content:"\f1b6"}.icon-steam-square:before{content:"\f1b7"}.icon-steam-symbol:before{content:"\f3f6"}.icon-step-backward:before{content:"\f048"}.icon-step-forward:before{content:"\f051"}.icon-stethoscope:before{content:"\f0f1"}.icon-sticker-mule:before{content:"\f3f7"}.icon-sticky-note:before{content:"\f249"}.icon-stop:before{content:"\f04d"}.icon-stop-circle:before{content:"\f28d"}.icon-stopwatch:before{content:"\f2f2"}.icon-stopwatch-20:before{content:"\e06f"}.icon-store:before{content:"\f54e"}.icon-store-alt:before{content:"\f54f"}.icon-store-alt-slash:before{content:"\e070"}.icon-store-slash:before{content:"\e071"}.icon-strava:before{content:"\f428"}.icon-stream:before{content:"\f550"}.icon-street-view:before{content:"\f21d"}.icon-strikethrough:before{content:"\f0cc"}.icon-stripe:before{content:"\f429"}.icon-stripe-s:before{content:"\f42a"}.icon-stroopwafel:before{content:"\f551"}.icon-studiovinari:before{content:"\f3f8"}.icon-stumbleupon:before{content:"\f1a4"}.icon-stumbleupon-circle:before{content:"\f1a3"}.icon-subscript:before{content:"\f12c"}.icon-subway:before{content:"\f239"}.icon-suitcase:before{content:"\f0f2"}.icon-suitcase-rolling:before{content:"\f5c1"}.icon-sun:before{content:"\f185"}.icon-superpowers:before{content:"\f2dd"}.icon-superscript:before{content:"\f12b"}.icon-supple:before{content:"\f3f9"}.icon-surprise:before{content:"\f5c2"}.icon-suse:before{content:"\f7d6"}.icon-swatchbook:before{content:"\f5c3"}.icon-swift:before{content:"\f8e1"}.icon-swimmer:before{content:"\f5c4"}.icon-swimming-pool:before{content:"\f5c5"}.icon-symfony:before{content:"\f83d"}.icon-synagogue:before{content:"\f69b"}.icon-sync:before{content:"\f021"}.icon-sync-alt:before{content:"\f2f1"}.icon-syringe:before{content:"\f48e"}.icon-table:before{content:"\f0ce"}.icon-table-tennis:before{content:"\f45d"}.icon-tablet:before{content:"\f10a"}.icon-tablet-alt:before{content:"\f3fa"}.icon-tablets:before{content:"\f490"}.icon-tachometer-alt:before{content:"\f3fd"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-tape:before{content:"\f4db"}.icon-tasks:before{content:"\f0ae"}.icon-taxi:before{content:"\f1ba"}.icon-teamspeak:before{content:"\f4f9"}.icon-teeth:before{content:"\f62e"}.icon-teeth-open:before{content:"\f62f"}.icon-telegram:before{content:"\f2c6"}.icon-telegram-plane:before{content:"\f3fe"}.icon-temperature-high:before{content:"\f769"}.icon-temperature-low:before{content:"\f76b"}.icon-tencent-weibo:before{content:"\f1d5"}.icon-tenge:before{content:"\f7d7"}.icon-terminal:before{content:"\f120"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-th:before{content:"\f00a"}.icon-th-large:before{content:"\f009"}.icon-th-list:before{content:"\f00b"}.icon-the-red-yeti:before{content:"\f69d"}.icon-theater-masks:before{content:"\f630"}.icon-themeco:before{content:"\f5c6"}.icon-themeisle:before{content:"\f2b2"}.icon-thermometer:before{content:"\f491"}.icon-thermometer-empty:before{content:"\f2cb"}.icon-thermometer-full:before{content:"\f2c7"}.icon-thermometer-half:before{content:"\f2c9"}.icon-thermometer-quarter:before{content:"\f2ca"}.icon-thermometer-three-quarters:before{content:"\f2c8"}.icon-think-peaks:before{content:"\f731"}.icon-thumbs-down:before{content:"\f165"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbtack:before{content:"\f08d"}.icon-ticket-alt:before{content:"\f3ff"}.icon-tiktok:before{content:"\e07b"}.icon-times:before{content:"\f00d"}.icon-times-circle:before{content:"\f057"}.icon-tint:before{content:"\f043"}.icon-tint-slash:before{content:"\f5c7"}.icon-tired:before{content:"\f5c8"}.icon-toggle-off:before{content:"\f204"}.icon-toggle-on:before{content:"\f205"}.icon-toilet:before{content:"\f7d8"}.icon-toilet-paper:before{content:"\f71e"}.icon-toilet-paper-slash:before{content:"\e072"}.icon-toolbox:before{content:"\f552"}.icon-tools:before{content:"\f7d9"}.icon-tooth:before{content:"\f5c9"}.icon-torah:before{content:"\f6a0"}.icon-torii-gate:before{content:"\f6a1"}.icon-tractor:before{content:"\f722"}.icon-trade-federation:before{content:"\f513"}.icon-trademark:before{content:"\f25c"}.icon-traffic-light:before{content:"\f637"}.icon-trailer:before{content:"\e041"}.icon-train:before{content:"\f238"}.icon-tram:before{content:"\f7da"}.icon-transgender:before{content:"\f224"}.icon-transgender-alt:before{content:"\f225"}.icon-trash:before{content:"\f1f8"}.icon-trash-alt:before{content:"\f2ed"}.icon-trash-restore:before{content:"\f829"}.icon-trash-restore-alt:before{content:"\f82a"}.icon-tree:before{content:"\f1bb"}.icon-trello:before{content:"\f181"}.icon-tripadvisor:before{content:"\f262"}.icon-trophy:before{content:"\f091"}.icon-truck:before{content:"\f0d1"}.icon-truck-loading:before{content:"\f4de"}.icon-truck-monster:before{content:"\f63b"}.icon-truck-moving:before{content:"\f4df"}.icon-truck-pickup:before{content:"\f63c"}.icon-tshirt:before{content:"\f553"}.icon-tty:before{content:"\f1e4"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-square:before{content:"\f174"}.icon-tv:before{content:"\f26c"}.icon-twitch:before{content:"\f1e8"}.icon-twitter:before{content:"\f099"}.icon-twitter-square:before{content:"\f081"}.icon-typo3:before{content:"\f42b"}.icon-uber:before{content:"\f402"}.icon-ubuntu:before{content:"\f7df"}.icon-uikit:before{content:"\f403"}.icon-umbraco:before{content:"\f8e8"}.icon-umbrella:before{content:"\f0e9"}.icon-umbrella-beach:before{content:"\f5ca"}.icon-uncharted:before{content:"\e084"}.icon-underline:before{content:"\f0cd"}.icon-undo:before{content:"\f0e2"}.icon-undo-alt:before{content:"\f2ea"}.icon-uniregistry:before{content:"\f404"}.icon-unity:before{content:"\e049"}.icon-universal-access:before{content:"\f29a"}.icon-university:before{content:"\f19c"}.icon-unlink:before{content:"\f127"}.icon-unlock:before{content:"\f09c"}.icon-unlock-alt:before{content:"\f13e"}.icon-unsplash:before{content:"\e07c"}.icon-untappd:before{content:"\f405"}.icon-upload:before{content:"\f093"}.icon-ups:before{content:"\f7e0"}.icon-usb:before{content:"\f287"}.icon-user:before{content:"\f007"}.icon-user-alt:before{content:"\f406"}.icon-user-alt-slash:before{content:"\f4fa"}.icon-user-astronaut:before{content:"\f4fb"}.icon-user-check:before{content:"\f4fc"}.icon-user-circle:before{content:"\f2bd"}.icon-user-clock:before{content:"\f4fd"}.icon-user-cog:before{content:"\f4fe"}.icon-user-edit:before{content:"\f4ff"}.icon-user-friends:before{content:"\f500"}.icon-user-graduate:before{content:"\f501"}.icon-user-injured:before{content:"\f728"}.icon-user-lock:before{content:"\f502"}.icon-user-md:before{content:"\f0f0"}.icon-user-minus:before{content:"\f503"}.icon-user-ninja:before{content:"\f504"}.icon-user-nurse:before{content:"\f82f"}.icon-user-plus:before{content:"\f234"}.icon-user-secret:before{content:"\f21b"}.icon-user-shield:before{content:"\f505"}.icon-user-slash:before{content:"\f506"}.icon-user-tag:before{content:"\f507"}.icon-user-tie:before{content:"\f508"}.icon-user-times:before{content:"\f235"}.icon-users:before{content:"\f0c0"}.icon-users-cog:before{content:"\f509"}.icon-users-slash:before{content:"\e073"}.icon-usps:before{content:"\f7e1"}.icon-ussunnah:before{content:"\f407"}.icon-utensil-spoon:before{content:"\f2e5"}.icon-utensils:before{content:"\f2e7"}.icon-vaadin:before{content:"\f408"}.icon-vector-square:before{content:"\f5cb"}.icon-venus:before{content:"\f221"}.icon-venus-double:before{content:"\f226"}.icon-venus-mars:before{content:"\f228"}.icon-vest:before{content:"\e085"}.icon-vest-patches:before{content:"\e086"}.icon-viacoin:before{content:"\f237"}.icon-viadeo:before{content:"\f2a9"}.icon-viadeo-square:before{content:"\f2aa"}.icon-vial:before{content:"\f492"}.icon-vials:before{content:"\f493"}.icon-viber:before{content:"\f409"}.icon-video:before{content:"\f03d"}.icon-video-slash:before{content:"\f4e2"}.icon-vihara:before{content:"\f6a7"}.icon-vimeo:before{content:"\f40a"}.icon-vimeo-square:before{content:"\f194"}.icon-vimeo-v:before{content:"\f27d"}.icon-vine:before{content:"\f1ca"}.icon-virus:before{content:"\e074"}.icon-virus-slash:before{content:"\e075"}.icon-viruses:before{content:"\e076"}.icon-vk:before{content:"\f189"}.icon-vnv:before{content:"\f40b"}.icon-voicemail:before{content:"\f897"}.icon-volleyball-ball:before{content:"\f45f"}.icon-volume-down:before{content:"\f027"}.icon-volume-mute:before{content:"\f6a9"}.icon-volume-off:before{content:"\f026"}.icon-volume-up:before{content:"\f028"}.icon-vote-yea:before{content:"\f772"}.icon-vr-cardboard:before{content:"\f729"}.icon-vuejs:before{content:"\f41f"}.icon-walking:before{content:"\f554"}.icon-wallet:before{content:"\f555"}.icon-warehouse:before{content:"\f494"}.icon-watchman-monitoring:before{content:"\e087"}.icon-water:before{content:"\f773"}.icon-wave-square:before{content:"\f83e"}.icon-waze:before{content:"\f83f"}.icon-weebly:before{content:"\f5cc"}.icon-weibo:before{content:"\f18a"}.icon-weight:before{content:"\f496"}.icon-weight-hanging:before{content:"\f5cd"}.icon-weixin:before{content:"\f1d7"}.icon-whatsapp:before{content:"\f232"}.icon-whatsapp-square:before{content:"\f40c"}.icon-wheelchair:before{content:"\f193"}.icon-whmcs:before{content:"\f40d"}.icon-wifi:before{content:"\f1eb"}.icon-wikipedia-w:before{content:"\f266"}.icon-wind:before{content:"\f72e"}.icon-window-close:before{content:"\f410"}.icon-window-maximize:before{content:"\f2d0"}.icon-window-minimize:before{content:"\f2d1"}.icon-window-restore:before{content:"\f2d2"}.icon-windows:before{content:"\f17a"}.icon-wine-bottle:before{content:"\f72f"}.icon-wine-glass:before{content:"\f4e3"}.icon-wine-glass-alt:before{content:"\f5ce"}.icon-wix:before{content:"\f5cf"}.icon-wizards-of-the-coast:before{content:"\f730"}.icon-wodu:before{content:"\e088"}.icon-wolf-pack-battalion:before{content:"\f514"}.icon-won-sign:before{content:"\f159"}.icon-wordpress:before{content:"\f19a"}.icon-wordpress-simple:before{content:"\f411"}.icon-wpbeginner:before{content:"\f297"}.icon-wpexplorer:before{content:"\f2de"}.icon-wpforms:before{content:"\f298"}.icon-wpressr:before{content:"\f3e4"}.icon-wrench:before{content:"\f0ad"}.icon-x-ray:before{content:"\f497"}.icon-xbox:before{content:"\f412"}.icon-xing:before{content:"\f168"}.icon-xing-square:before{content:"\f169"}.icon-y-combinator:before{content:"\f23b"}.icon-yahoo:before{content:"\f19e"}.icon-yammer:before{content:"\f840"}.icon-yandex:before{content:"\f413"}.icon-yandex-international:before{content:"\f414"}.icon-yarn:before{content:"\f7e3"}.icon-yelp:before{content:"\f1e9"}.icon-yen-sign:before{content:"\f157"}.icon-yin-yang:before{content:"\f6ad"}.icon-yoast:before{content:"\f2b1"}.icon-youtube:before{content:"\f167"}.icon-youtube-square:before{content:"\f431"}.icon-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.modx-installer-steps li.active span.icon::after,[type=checkbox]:checked+label:before,[type=checkbox]:not(:checked)+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:900}*,::after,::before{box-sizing:border-box}body,html{height:100%}body{color:#343434;font:normal 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;background:#f4f4f4;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}body a{color:#4a90e2;text-decoration:none;transition:all .2s ease-in}body a:hover{color:#2275d7}.button{display:inline-block;-ms-flex:0 0 auto;flex:0 0 auto;margin-right:0;margin-left:0;border:0;border-radius:3px;cursor:pointer;line-height:1;font-size:18px;padding:15px 30px;width:170px;transition:background-color .2s ease-out;background:#6cb24a;box-shadow:0 0 0 1px #e4e4e4}.custom-select{font-size:16px;width:50%;padding:9px 0 9px 20px;border:1px solid #e4e4e4!important;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url("data:image/svg+xml;utf8,") no-repeat;background-size:12px;background-position:calc(100% - 20px) 60%;background-repeat:no-repeat;background-color:#fbfbfb;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.select_lang .toggle{color:#515151;width:25%;float:right;top:-3rem;position:relative;font-size:18px;text-align:center}.select_lang .toggle span{cursor:pointer;border-bottom:1px dotted}.select_lang .toggle.pop{display:none}.languages{display:-ms-flexbox;display:flex;-ms-flex-flow:wrap;flex-flow:wrap}.languages .language{max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%;cursor:pointer;position:relative}.languages .language.other{display:none}.languages .language .radio{position:absolute;z-index:-1}.languages .language .wrap{display:block;padding:.5rem .7rem;border:1px solid #dcdcdc;margin:5px;background-color:#fbfbfb;border-radius:3px;color:#515151}.languages .language .wrap>span{display:block}.languages .language .native{font-weight:700;font-size:1rem}.languages .language .name strong{text-transform:uppercase}.languages .language:focus input~.wrap,.languages .language:hover input~.wrap{border-color:#4a90e2}.languages .language input:checked~.wrap,.languages .language input:focus~.wrap{border-color:#4a90e2;background-color:#f1f6fd}[type=checkbox]:checked,[type=checkbox]:not(:checked){position:absolute;left:-9999px}[type=checkbox]:checked+label,[type=checkbox]:not(:checked)+label{position:relative;padding-left:1.95em;cursor:pointer;margin:0 auto}[type=checkbox]:disabled+label:before{opacity:.5}.cleanup [type=checkbox]:checked+label,.cleanup [type=checkbox]:not(:checked)+label{padding-left:0}[type=checkbox]:checked+label:before,[type=checkbox]:not(:checked)+label:before{position:absolute;left:0;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:30px;width:30px;height:30px;line-height:30px}[type=checkbox]:not(:checked)+label:before{content:"\f0c8";color:#dcdcdc}[type=checkbox]:checked+label:before{content:"\f14a";color:#4a90e2}#modx-next{background-color:#6cb24a;color:#fff}#modx-next:hover{background:#61a043}#modx-back{background:#fff;color:#515151;background-repeat:no-repeat;border:0;border-radius:3px;cursor:pointer;display:inline-block;position:relative;text-decoration:none;transition:background-color .2s ease-out;zoom:1}#modx-back:hover{background-color:#e4e4e4;box-shadow:#dcdcdc;color:#515151}.steps-outer{width:100%;max-width:750px;margin:0 auto}.modx-installer-steps{list-style:none;text-align:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.modx-installer-steps li{display:inline-block;width:calc(100% / 7);position:relative;z-index:2}.modx-installer-steps li:first-child::before,.modx-installer-steps li:last-child::after{display:none}.modx-installer-steps li::after,.modx-installer-steps li::before{content:"";height:2px;background-color:#dcdcdc;position:absolute;top:13px;z-index:-1;transition:all .3s}.modx-installer-steps li::after{left:50%;right:0}.modx-installer-steps li::before{right:50%;left:0}.modx-installer-steps li span.icon{display:block;position:relative;width:25px;height:25px;background:#e4e4e4;border-radius:50%;border:2px solid #dcdcdc;margin:1px auto 10px;z-index:4;box-sizing:border-box;font-size:15px;line-height:21px;transition:all .3s}.modx-installer-steps li.active::after,.modx-installer-steps li.active::before{background-color:#6cb24a}.modx-installer-steps li.active span.icon{background-color:#6cb24a;border-color:#6cb24a}.modx-installer-steps li.active span.icon::after{content:"\f00c";color:#fff;position:relative;line-height:1}.modx-installer-steps li.current::before{background-color:#6cb24a}.modx-installer-steps li.current span.icon{background-color:#6cb24a;border-color:#fff;border-width:7px;box-shadow:0 0 5px rgba(0,0,0,.1)}input[type=email],input[type=password],input[type=text]{background-color:#fbfbfb;border:1px solid #e4e4e4;border-radius:3px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:10px 20px}input[type=button],input[type=submit]{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;font-family:'Font Awesome 5 Free',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.wrapper{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;max-width:1140px}header{margin-top:10px}header .wrapper_logo .logo{background:url(../images/modx-logo-color.svg) no-repeat center transparent;width:220px;height:85px;background-size:contain;display:block;position:relative;text-indent:-9999px;margin:0 auto}header .wrapper_version{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:16px;padding:5px 0}#content{-ms-flex-positive:1;flex-grow:1}#content .content-inside{padding:20px}#content .content-inside .wrapper{background:#fff;padding:30px;border-radius:5px;max-width:890px;height:auto;min-height:400px}#content .content-inside .wrapper .content_header{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#content .content-inside .wrapper .content_header_title{width:100%;font:600 30px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:#343434;padding-bottom:15px;border-bottom:1px solid #dcdcdc}#content .content-inside .wrapper form{margin-top:25px;display:block}#content .content-inside .wrapper form .content-wrap{min-height:calc(430px - 80px)}#content .content-inside .wrapper form .content-wrap h2{font-weight:500;font-size:22px}#content .content-inside .wrapper form .content-wrap p{font-size:16px}#content .content-inside .wrapper form .content-wrap .title{font-weight:500}#content .content-inside .wrapper .setup_navbar{width:100%;display:inline-block;padding-top:25px}#content .content-inside .wrapper .setup_navbar #modx-back{float:left}#content .content-inside .wrapper .setup_navbar #modx-next{float:right}#content .content-inside .wrapper .content_footer{padding-top:25px;padding-bottom:30px}.options-wrap{margin:0}.options-wrap .option-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:25px 40px 25px 0;cursor:pointer;min-height:120px;margin-bottom:10px;position:relative}.options-wrap .option-item-note{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:25px 40px;min-height:140px;margin-bottom:10px;border-left:.2rem solid #4a90e2;background-color:rgba(74,144,226,.3);border-color:#4a90e2;color:#061527}.options-wrap .option-item-input{-ms-flex-preferred-size:130px;flex-basis:130px;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.options-wrap .option-item-input input{margin:0 auto;display:block}.options-wrap .option-item-input input[type=text]{font-size:14px;padding:8px 15px;text-align:center}.options-wrap .option-item-desc{-ms-flex:1 1 0;flex:1 1 0;letter-spacing:0}.options-wrap .option-item-desc .label{font-size:20px;color:#343434;font-weight:500}.options-wrap .option-item-desc .desc{font-size:16px;line-height:25px;color:#606060}.options-wrap .option-item .fa{color:#dfdfdf}.options-wrap .option-item input:checked~.fa{color:#4a90e2}.options-wrap .option-item span{display:block;border:1px solid #dfdfdf;padding:20px;position:absolute;top:0;left:0;right:0;bottom:0}.options-wrap .option-item input:checked~span{border-color:#4a90e2}.advanced_options .option-item{padding:10px 40px 10px 0;border:1px solid #dfdfdf;min-height:70px}.advanced_options .option-item-input{-ms-flex-preferred-size:130px;flex-basis:130px;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.advanced_options .option-item-desc{-ms-flex:1 1 0;flex:1 1 0;letter-spacing:0}.advanced_options .option-item-desc .label{font-size:16px;color:#343434;font-weight:500}.advanced_options .option-item-desc .desc{font-size:14px;line-height:1.6;color:#606060}.hide{display:none!important}.fa{color:#4a90e2;font-size:3em;margin:0 auto}#welcome input#config_key{font-size:16px;padding:10px 20px;margin-left:10px}#cck-div{font-size:16px}#cck-div p{margin-bottom:0}#cck-div pre{display:inline-block;font-size:16px;margin:0}.flex-center{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.flex-center #modx-testcoll,.flex-center #modx-testconn{background:#fff;border:1px solid #515151;color:#515151;margin-top:10px;text-align:center;width:auto}.flex-center #modx-testcoll:hover,.flex-center #modx-testconn:hover{box-shadow:0 0 15px 5px rgba(154,158,156,.2);transition:all .4s cubic-bezier(.23,1,.135,2.284)}#install h2.title{font-size:20px;color:#343434;letter-spacing:0}#install p{font-size:16px;color:#606060;letter-spacing:0;line-height:22px}#install ul.checklist{list-style:none;margin:15px 0;padding:0}#install ul.checklist li{border-left:.2rem solid;background-color:rgba(74,144,226,.2);border-color:#4a90e2;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:15px 10px}#install ul.checklist li p{color:#333;font-size:14px;line-height:14px;margin:0}#install ul.checklist li .notok,#install ul.checklist li .ok{font-weight:700}#install ul.checklist li .ok{color:#355825}#install ul.checklist li .notok{color:#590710}#install ul.checklist .testWarn,#install ul.checklist .warning{background-color:rgba(240,180,41,.2);border-color:#f0b429}#install ul.checklist .success,#install ul.checklist .testPassed{background-color:rgba(108,178,74,.2);border-color:#6cb24a}#install ul.checklist .failed,#install ul.checklist .testFailed{background-color:rgba(207,17,36,.2);border-color:#cf1124}#install .labelHolder{margin-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}#install .labelHolder .col{line-height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#install .labelHolder .col:first-child{-ms-flex-preferred-size:40%;flex-basis:40%}#install .labelHolder .col:last-child{-ms-flex-preferred-size:60%;flex-basis:60%}#install .labelHolder .col label{color:#606060;font-size:16px;letter-spacing:0}#install .labelHolder .col input[type=email],#install .labelHolder .col input[type=password],#install .labelHolder .col input[type=text]{font-size:16px;padding:10px 20px;width:260px}#install .labelHolder .col select{width:260px}#install .labelHolder .col .field_error{color:#cf1124!important;font-size:14px;margin-left:10px}#install .labelHolder .col-1,#install .labelHolder .col-2,#install .labelHolder .col-3{line-height:30px}#install .labelHolder .col-1 label,#install .labelHolder .col-2 label,#install .labelHolder .col-3 label{color:#606060;font-size:16px;letter-spacing:0}#install .labelHolder .col-1 input[type=email],#install .labelHolder .col-1 input[type=password],#install .labelHolder .col-1 input[type=text],#install .labelHolder .col-2 input[type=email],#install .labelHolder .col-2 input[type=password],#install .labelHolder .col-2 input[type=text],#install .labelHolder .col-3 input[type=email],#install .labelHolder .col-3 input[type=password],#install .labelHolder .col-3 input[type=text]{font-size:16px;padding:10px 20px;width:100%}#install .labelHolder .col-1{-ms-flex-preferred-size:35%;flex-basis:35%}#install .labelHolder .col-2{-ms-flex-preferred-size:60%;flex-basis:60%}#install .labelHolder .col-3{-ms-flex-preferred-size:5%;flex-basis:5%;margin:0 auto;text-align:center}#install .labelHolder .col-3 input[type=checkbox]{width:auto}#install #modx-db-step1-msg,#install #modx-db-step2-msg{margin-bottom:10px;border-bottom:2px solid #dfdfdf;padding-bottom:22px}#install #modx-db-step1-msg .title,#install #modx-db-step2-msg .title{color:#343434;font-size:16px;font-weight:500;display:block;margin-bottom:10px}#install #modx-db-step1-msg span.connect-msg,#install #modx-db-step1-msg span.result,#install #modx-db-step2-msg span.connect-msg,#install #modx-db-step2-msg span.result{background-color:#effcf6;border-left:.2rem solid;border-color:#6cb24a;color:#355825;display:block;font-size:16px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;padding:10px}#install #modx-db-step1-msg span.connect-msg p,#install #modx-db-step1-msg span.result p,#install #modx-db-step2-msg span.connect-msg p,#install #modx-db-step2-msg span.result p{font-size:14px}#install #modx-db-step1-msg span.connect-msg p:first-child,#install #modx-db-step1-msg span.result p:first-child,#install #modx-db-step2-msg span.connect-msg p:first-child,#install #modx-db-step2-msg span.result p:first-child{-webkit-margin-before:0;margin-block-start:0}#install #modx-db-step1-msg span.connect-msg p:last-child,#install #modx-db-step1-msg span.result p:last-child,#install #modx-db-step2-msg span.connect-msg p:last-child,#install #modx-db-step2-msg span.result p:last-child{-webkit-margin-after:0;margin-block-end:0}#install #modx-db-step1-msg.error span.connect-msg,#install #modx-db-step1-msg.error span.result,#install #modx-db-step2-msg.error span.connect-msg,#install #modx-db-step2-msg.error span.result{background-color:rgba(207,17,36,.2);border-color:#cf1124}#install #modx-db-step1-msg.error span.connect-msg p,#install #modx-db-step1-msg.error span.result p,#install #modx-db-step2-msg.error span.connect-msg p,#install #modx-db-step2-msg.error span.result p{color:#590710}#install #modx-db-info span{display:block;margin-bottom:5px;font-weight:500}#install #modx-db-info #modx-db-client-version,#install #modx-db-info #modx-db-server-version{color:#606060;font-weight:400}#install #modx-db-info #modx-db-client-version.success,#install #modx-db-info #modx-db-server-version.success{color:#6cb24a}#install #modx-db-info #modx-db-client-version.warning,#install #modx-db-info #modx-db-server-version.warning{color:#cf1124}#install #modx-db-step2 .result{font-weight:500}#install #modx-db-step2.success span.result{color:#6cb24a}.setup_body{box-sizing:border-box;min-height:calc(430px - 80px);padding-bottom:90px}.cleanup [type=checkbox]:checked+label:before,.cleanup [type=checkbox]:not(:checked)+label:before{position:relative;margin:10px 10px 0 0;float:left}footer{background:#fff;padding:15px 0}@media (max-width:575.98px){.modx-installer-steps li span.title{display:none}.button{font-size:14px;padding:15px 10px;width:140px}#content .content-inside .wrapper{padding:20px}#content .content-inside .wrapper form .content-wrap h2{font-size:20px}#content .content-inside .wrapper form .content-wrap p{font-size:14px}#content .content-inside .wrapper .content_header_title{font-size:24px}#cck-div,#install p,.custom-select,pre{font-size:14px}#welcome input#config_key{font-size:14px;margin-left:0;margin-top:5px}#install .labelHolder{-ms-flex-direction:column;flex-direction:column}#install .labelHolder .col-1,#install .labelHolder .col-2,#install .labelHolder .col-3{-ms-flex-preferred-size:100%;flex-basis:100%;width:100%}#install .labelHolder .col-1 input[type=text],#install .labelHolder .col-2 input[type=text],#install .labelHolder .col-3 input[type=text]{font-size:14px}#install .labelHolder .col-3{margin-top:10px}#install .labelHolder .col-3 [type=checkbox]:checked+label:before,#install .labelHolder .col-3 [type=checkbox]:not(:checked)+label:before{width:1.5em;height:1.5em}#install .labelHolder .col-3 [type=checkbox]:checked+label:after,#install .labelHolder .col-3 [type=checkbox]:not(:checked)+label:after{font-size:1.4em}#install #modx-db-step1-msg .title{margin-top:10px}#install #modx-db-step1-msg.error span.connect-msg p{font-size:13px;word-break:break-all}#install #modx-db-info #modx-db-client-version.success{word-break:break-all}#install h2.title{font-size:20px}#install h3{text-align:center}small{font-size:100%}#install ul.checklist{word-break:break-all}.setup_navbar.complete{display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.setup_navbar.complete span.cleanup{display:-ms-flexbox;display:flex}.cleanup [type=checkbox]:checked+label:before,.cleanup [type=checkbox]:not(:checked)+label:before{top:5px!important}.cleanup [type=checkbox]:checked+label:after,.cleanup [type=checkbox]:not(:checked)+label:after{top:8px!important}footer{font-size:12px;padding:0}.select_lang .toggle{width:100%;float:initial;top:.5rem;display:block}.languages .language{max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}} /*# sourceMappingURL=installer-min.css.map */ \ No newline at end of file diff --git a/setup/assets/css/installer.css b/setup/assets/css/installer.css index ad18d17e63e..5230fdfbed0 100644 --- a/setup/assets/css/installer.css +++ b/setup/assets/css/installer.css @@ -426,10 +426,15 @@ template { /* Font stacks */ /* Responsive breakpoints */ /* Path for background-images */ +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ .fa, .fas, .far, .fal, +.fad, .fab { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; @@ -626,9 +631,6 @@ readers do not read off random characters that represent icons */ .fa-adn:before { content: "\f170"; } -.fa-adobe:before { - content: "\f778"; } - .fa-adversal:before { content: "\f36a"; } @@ -638,6 +640,9 @@ readers do not read off random characters that represent icons */ .fa-air-freshener:before { content: "\f5d0"; } +.fa-airbnb:before { + content: "\f834"; } + .fa-algolia:before { content: "\f36c"; } @@ -848,9 +853,24 @@ readers do not read off random characters that represent icons */ .fa-bacon:before { content: "\f7e5"; } +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + +.fa-bahai:before { + content: "\f666"; } + .fa-balance-scale:before { content: "\f24e"; } +.fa-balance-scale-left:before { + content: "\f515"; } + +.fa-balance-scale-right:before { + content: "\f516"; } + .fa-ban:before { content: "\f05e"; } @@ -890,6 +910,9 @@ readers do not read off random characters that represent icons */ .fa-battery-three-quarters:before { content: "\f241"; } +.fa-battle-net:before { + content: "\f835"; } + .fa-bed:before { content: "\f236"; } @@ -917,6 +940,9 @@ readers do not read off random characters that represent icons */ .fa-bicycle:before { content: "\f206"; } +.fa-biking:before { + content: "\f84a"; } + .fa-bimobject:before { content: "\f378"; } @@ -1001,6 +1027,18 @@ readers do not read off random characters that represent icons */ .fa-bookmark:before { content: "\f02e"; } +.fa-bootstrap:before { + content: "\f836"; } + +.fa-border-all:before { + content: "\f84c"; } + +.fa-border-none:before { + content: "\f850"; } + +.fa-border-style:before { + content: "\f853"; } + .fa-bowling-ball:before { content: "\f436"; } @@ -1010,6 +1048,9 @@ readers do not read off random characters that represent icons */ .fa-box-open:before { content: "\f49e"; } +.fa-box-tissue:before { + content: "\e05b"; } + .fa-boxes:before { content: "\f468"; } @@ -1040,6 +1081,9 @@ readers do not read off random characters that represent icons */ .fa-btc:before { content: "\f15a"; } +.fa-buffer:before { + content: "\f837"; } + .fa-bug:before { content: "\f188"; } @@ -1067,6 +1111,9 @@ readers do not read off random characters that represent icons */ .fa-business-time:before { content: "\f64a"; } +.fa-buy-n-large:before { + content: "\f8a6"; } + .fa-buysellads:before { content: "\f20d"; } @@ -1133,6 +1180,9 @@ readers do not read off random characters that represent icons */ .fa-car-side:before { content: "\f5e4"; } +.fa-caravan:before { + content: "\f8ff"; } + .fa-caret-down:before { content: "\f0d7"; } @@ -1304,6 +1354,9 @@ readers do not read off random characters that represent icons */ .fa-chrome:before { content: "\f268"; } +.fa-chromecast:before { + content: "\f838"; } + .fa-church:before { content: "\f51d"; } @@ -1367,6 +1420,9 @@ readers do not read off random characters that represent icons */ .fa-cloud-upload-alt:before { content: "\f382"; } +.fa-cloudflare:before { + content: "\e07d"; } + .fa-cloudscale:before { content: "\f383"; } @@ -1439,6 +1495,9 @@ readers do not read off random characters that represent icons */ .fa-compress:before { content: "\f066"; } +.fa-compress-alt:before { + content: "\f422"; } + .fa-compress-arrows-alt:before { content: "\f78c"; } @@ -1466,6 +1525,9 @@ readers do not read off random characters that represent icons */ .fa-copyright:before { content: "\f1f9"; } +.fa-cotton-bureau:before { + content: "\f89e"; } + .fa-couch:before { content: "\f4b8"; } @@ -1565,6 +1627,9 @@ readers do not read off random characters that represent icons */ .fa-d-and-d-beyond:before { content: "\f6ca"; } +.fa-dailymotion:before { + content: "\e052"; } + .fa-dashcube:before { content: "\f210"; } @@ -1574,6 +1639,9 @@ readers do not read off random characters that represent icons */ .fa-deaf:before { content: "\f2a4"; } +.fa-deezer:before { + content: "\e077"; } + .fa-delicious:before { content: "\f1a5"; } @@ -1652,6 +1720,9 @@ readers do not read off random characters that represent icons */ .fa-discourse:before { content: "\f393"; } +.fa-disease:before { + content: "\f7fa"; } + .fa-divide:before { content: "\f529"; } @@ -1754,6 +1825,9 @@ readers do not read off random characters that represent icons */ .fa-edge:before { content: "\f282"; } +.fa-edge-legacy:before { + content: "\e078"; } + .fa-edit:before { content: "\f044"; } @@ -1817,6 +1891,9 @@ readers do not read off random characters that represent icons */ .fa-euro-sign:before { content: "\f153"; } +.fa-evernote:before { + content: "\f839"; } + .fa-exchange-alt:before { content: "\f362"; } @@ -1832,6 +1909,9 @@ readers do not read off random characters that represent icons */ .fa-expand:before { content: "\f065"; } +.fa-expand-alt:before { + content: "\f424"; } + .fa-expand-arrows-alt:before { content: "\f31e"; } @@ -1865,6 +1945,9 @@ readers do not read off random characters that represent icons */ .fa-facebook-square:before { content: "\f082"; } +.fa-fan:before { + content: "\f863"; } + .fa-fantasy-flight-games:before { content: "\f6dc"; } @@ -1874,6 +1957,9 @@ readers do not read off random characters that represent icons */ .fa-fast-forward:before { content: "\f050"; } +.fa-faucet:before { + content: "\e005"; } + .fa-fax:before { content: "\f1ac"; } @@ -1994,6 +2080,9 @@ readers do not read off random characters that represent icons */ .fa-firefox:before { content: "\f269"; } +.fa-firefox-browser:before { + content: "\e007"; } + .fa-first-aid:before { content: "\f479"; } @@ -2153,6 +2242,9 @@ readers do not read off random characters that represent icons */ .fa-git:before { content: "\f1d3"; } +.fa-git-alt:before { + content: "\f841"; } + .fa-git-square:before { content: "\f1d2"; } @@ -2228,6 +2320,9 @@ readers do not read off random characters that represent icons */ .fa-google-drive:before { content: "\f3aa"; } +.fa-google-pay:before { + content: "\e079"; } + .fa-google-play:before { content: "\f3ab"; } @@ -2321,6 +2416,9 @@ readers do not read off random characters that represent icons */ .fa-grunt:before { content: "\f3ad"; } +.fa-guilded:before { + content: "\e07e"; } + .fa-guitar:before { content: "\f7a6"; } @@ -2354,9 +2452,15 @@ readers do not read off random characters that represent icons */ .fa-hand-holding-heart:before { content: "\f4be"; } +.fa-hand-holding-medical:before { + content: "\e05c"; } + .fa-hand-holding-usd:before { content: "\f4c0"; } +.fa-hand-holding-water:before { + content: "\f4c1"; } + .fa-hand-lizard:before { content: "\f258"; } @@ -2390,6 +2494,9 @@ readers do not read off random characters that represent icons */ .fa-hand-scissors:before { content: "\f257"; } +.fa-hand-sparkles:before { + content: "\e05d"; } + .fa-hand-spock:before { content: "\f259"; } @@ -2399,9 +2506,18 @@ readers do not read off random characters that represent icons */ .fa-hands-helping:before { content: "\f4c4"; } +.fa-hands-wash:before { + content: "\e05e"; } + .fa-handshake:before { content: "\f2b5"; } +.fa-handshake-alt-slash:before { + content: "\e05f"; } + +.fa-handshake-slash:before { + content: "\e060"; } + .fa-hanukiah:before { content: "\f6e6"; } @@ -2411,15 +2527,30 @@ readers do not read off random characters that represent icons */ .fa-hashtag:before { content: "\f292"; } +.fa-hat-cowboy:before { + content: "\f8c0"; } + +.fa-hat-cowboy-side:before { + content: "\f8c1"; } + .fa-hat-wizard:before { content: "\f6e8"; } -.fa-haykal:before { - content: "\f666"; } - .fa-hdd:before { content: "\f0a0"; } +.fa-head-side-cough:before { + content: "\e061"; } + +.fa-head-side-cough-slash:before { + content: "\e062"; } + +.fa-head-side-mask:before { + content: "\e063"; } + +.fa-head-side-virus:before { + content: "\e064"; } + .fa-heading:before { content: "\f1dc"; } @@ -2462,6 +2593,9 @@ readers do not read off random characters that represent icons */ .fa-history:before { content: "\f1da"; } +.fa-hive:before { + content: "\e07f"; } + .fa-hockey-puck:before { content: "\f453"; } @@ -2492,6 +2626,9 @@ readers do not read off random characters that represent icons */ .fa-hospital-symbol:before { content: "\f47e"; } +.fa-hospital-user:before { + content: "\f80d"; } + .fa-hot-tub:before { content: "\f593"; } @@ -2519,6 +2656,9 @@ readers do not read off random characters that represent icons */ .fa-house-damage:before { content: "\f6f1"; } +.fa-house-user:before { + content: "\e065"; } + .fa-houzz:before { content: "\f27c"; } @@ -2540,6 +2680,9 @@ readers do not read off random characters that represent icons */ .fa-icicles:before { content: "\f7ad"; } +.fa-icons:before { + content: "\f86d"; } + .fa-id-badge:before { content: "\f2c1"; } @@ -2549,6 +2692,9 @@ readers do not read off random characters that represent icons */ .fa-id-card-alt:before { content: "\f47f"; } +.fa-ideal:before { + content: "\e013"; } + .fa-igloo:before { content: "\f7ae"; } @@ -2579,9 +2725,18 @@ readers do not read off random characters that represent icons */ .fa-info-circle:before { content: "\f05a"; } +.fa-innosoft:before { + content: "\e080"; } + .fa-instagram:before { content: "\f16d"; } +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + .fa-intercom:before { content: "\f7af"; } @@ -2597,6 +2752,9 @@ readers do not read off random characters that represent icons */ .fa-italic:before { content: "\f033"; } +.fa-itch-io:before { + content: "\f83a"; } + .fa-itunes:before { content: "\f3b4"; } @@ -2693,6 +2851,9 @@ readers do not read off random characters that represent icons */ .fa-laptop-code:before { content: "\f5fc"; } +.fa-laptop-house:before { + content: "\e066"; } + .fa-laptop-medical:before { content: "\f812"; } @@ -2810,6 +2971,12 @@ readers do not read off random characters that represent icons */ .fa-luggage-cart:before { content: "\f59d"; } +.fa-lungs:before { + content: "\f604"; } + +.fa-lungs-virus:before { + content: "\e067"; } + .fa-lyft:before { content: "\f3c3"; } @@ -2885,6 +3052,9 @@ readers do not read off random characters that represent icons */ .fa-maxcdn:before { content: "\f136"; } +.fa-mdb:before { + content: "\f8ca"; } + .fa-medal:before { content: "\f5a2"; } @@ -2933,6 +3103,9 @@ readers do not read off random characters that represent icons */ .fa-meteor:before { content: "\f753"; } +.fa-microblog:before { + content: "\e01a"; } + .fa-microchip:before { content: "\f2db"; } @@ -2972,6 +3145,9 @@ readers do not read off random characters that represent icons */ .fa-mixcloud:before { content: "\f289"; } +.fa-mixer:before { + content: "\e056"; } + .fa-mizuni:before { content: "\f3cc"; } @@ -3023,6 +3199,9 @@ readers do not read off random characters that represent icons */ .fa-mountain:before { content: "\f6fc"; } +.fa-mouse:before { + content: "\f8cc"; } + .fa-mouse-pointer:before { content: "\f245"; } @@ -3050,9 +3229,6 @@ readers do not read off random characters that represent icons */ .fa-nimblr:before { content: "\f5a8"; } -.fa-nintendo-switch:before { - content: "\f418"; } - .fa-node:before { content: "\f419"; } @@ -3080,6 +3256,9 @@ readers do not read off random characters that represent icons */ .fa-object-ungroup:before { content: "\f248"; } +.fa-octopus-deploy:before { + content: "\e082"; } + .fa-odnoklassniki:before { content: "\f263"; } @@ -3107,6 +3286,9 @@ readers do not read off random characters that represent icons */ .fa-optin-monster:before { content: "\f23c"; } +.fa-orcid:before { + content: "\f8d2"; } + .fa-osi:before { content: "\f41a"; } @@ -3206,12 +3388,18 @@ readers do not read off random characters that represent icons */ .fa-penny-arcade:before { content: "\f704"; } +.fa-people-arrows:before { + content: "\e068"; } + .fa-people-carry:before { content: "\f4ce"; } .fa-pepper-hot:before { content: "\f816"; } +.fa-perbyte:before { + content: "\e083"; } + .fa-percent:before { content: "\f295"; } @@ -3236,15 +3424,24 @@ readers do not read off random characters that represent icons */ .fa-phone:before { content: "\f095"; } +.fa-phone-alt:before { + content: "\f879"; } + .fa-phone-slash:before { content: "\f3dd"; } .fa-phone-square:before { content: "\f098"; } +.fa-phone-square-alt:before { + content: "\f87b"; } + .fa-phone-volume:before { content: "\f2a0"; } +.fa-photo-video:before { + content: "\f87c"; } + .fa-php:before { content: "\f457"; } @@ -3260,6 +3457,9 @@ readers do not read off random characters that represent icons */ .fa-pied-piper-pp:before { content: "\f1a7"; } +.fa-pied-piper-square:before { + content: "\e01e"; } + .fa-piggy-bank:before { content: "\f4d3"; } @@ -3290,6 +3490,9 @@ readers do not read off random characters that represent icons */ .fa-plane-departure:before { content: "\f5b0"; } +.fa-plane-slash:before { + content: "\e069"; } + .fa-play:before { content: "\f04b"; } @@ -3365,6 +3568,12 @@ readers do not read off random characters that represent icons */ .fa-project-diagram:before { content: "\f542"; } +.fa-pump-medical:before { + content: "\e06a"; } + +.fa-pump-soap:before { + content: "\e06b"; } + .fa-pushed:before { content: "\f3e1"; } @@ -3440,6 +3649,9 @@ readers do not read off random characters that represent icons */ .fa-receipt:before { content: "\f543"; } +.fa-record-vinyl:before { + content: "\f8d9"; } + .fa-recycle:before { content: "\f1b8"; } @@ -3467,6 +3679,9 @@ readers do not read off random characters that represent icons */ .fa-registered:before { content: "\f25d"; } +.fa-remove-format:before { + content: "\f87d"; } + .fa-renren:before { content: "\f18b"; } @@ -3548,6 +3763,9 @@ readers do not read off random characters that represent icons */ .fa-rupee-sign:before { content: "\f156"; } +.fa-rust:before { + content: "\e07a"; } + .fa-sad-cry:before { content: "\f5b3"; } @@ -3557,6 +3775,9 @@ readers do not read off random characters that represent icons */ .fa-safari:before { content: "\f267"; } +.fa-salesforce:before { + content: "\f83b"; } + .fa-sass:before { content: "\f41e"; } @@ -3641,6 +3862,9 @@ readers do not read off random characters that represent icons */ .fa-shield-alt:before { content: "\f3ed"; } +.fa-shield-virus:before { + content: "\e06c"; } + .fa-ship:before { content: "\f21a"; } @@ -3653,6 +3877,9 @@ readers do not read off random characters that represent icons */ .fa-shoe-prints:before { content: "\f54b"; } +.fa-shopify:before { + content: "\e057"; } + .fa-shopping-bag:before { content: "\f290"; } @@ -3695,6 +3922,9 @@ readers do not read off random characters that represent icons */ .fa-simplybuilt:before { content: "\f215"; } +.fa-sink:before { + content: "\e06d"; } + .fa-sistrix:before { content: "\f3ee"; } @@ -3788,6 +4018,9 @@ readers do not read off random characters that represent icons */ .fa-snowplow:before { content: "\f7d2"; } +.fa-soap:before { + content: "\e06e"; } + .fa-socks:before { content: "\f696"; } @@ -3800,24 +4033,42 @@ readers do not read off random characters that represent icons */ .fa-sort-alpha-down:before { content: "\f15d"; } +.fa-sort-alpha-down-alt:before { + content: "\f881"; } + .fa-sort-alpha-up:before { content: "\f15e"; } +.fa-sort-alpha-up-alt:before { + content: "\f882"; } + .fa-sort-amount-down:before { content: "\f160"; } +.fa-sort-amount-down-alt:before { + content: "\f884"; } + .fa-sort-amount-up:before { content: "\f161"; } +.fa-sort-amount-up-alt:before { + content: "\f885"; } + .fa-sort-down:before { content: "\f0dd"; } .fa-sort-numeric-down:before { content: "\f162"; } +.fa-sort-numeric-down-alt:before { + content: "\f886"; } + .fa-sort-numeric-up:before { content: "\f163"; } +.fa-sort-numeric-up-alt:before { + content: "\f887"; } + .fa-sort-up:before { content: "\f0de"; } @@ -3836,6 +4087,12 @@ readers do not read off random characters that represent icons */ .fa-speakap:before { content: "\f3f3"; } +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spell-check:before { + content: "\f891"; } + .fa-spider:before { content: "\f717"; } @@ -3869,6 +4126,9 @@ readers do not read off random characters that represent icons */ .fa-stack-overflow:before { content: "\f16c"; } +.fa-stackpath:before { + content: "\f842"; } + .fa-stamp:before { content: "\f5bf"; } @@ -3926,12 +4186,21 @@ readers do not read off random characters that represent icons */ .fa-stopwatch:before { content: "\f2f2"; } +.fa-stopwatch-20:before { + content: "\e06f"; } + .fa-store:before { content: "\f54e"; } .fa-store-alt:before { content: "\f54f"; } +.fa-store-alt-slash:before { + content: "\e070"; } + +.fa-store-slash:before { + content: "\e071"; } + .fa-strava:before { content: "\f428"; } @@ -3995,12 +4264,18 @@ readers do not read off random characters that represent icons */ .fa-swatchbook:before { content: "\f5c3"; } +.fa-swift:before { + content: "\f8e1"; } + .fa-swimmer:before { content: "\f5c4"; } .fa-swimming-pool:before { content: "\f5c5"; } +.fa-symfony:before { + content: "\f83d"; } + .fa-synagogue:before { content: "\f69b"; } @@ -4136,6 +4411,9 @@ readers do not read off random characters that represent icons */ .fa-ticket-alt:before { content: "\f3ff"; } +.fa-tiktok:before { + content: "\e07b"; } + .fa-times:before { content: "\f00d"; } @@ -4163,6 +4441,9 @@ readers do not read off random characters that represent icons */ .fa-toilet-paper:before { content: "\f71e"; } +.fa-toilet-paper-slash:before { + content: "\e072"; } + .fa-toolbox:before { content: "\f552"; } @@ -4190,6 +4471,9 @@ readers do not read off random characters that represent icons */ .fa-traffic-light:before { content: "\f637"; } +.fa-trailer:before { + content: "\e041"; } + .fa-train:before { content: "\f238"; } @@ -4277,12 +4561,18 @@ readers do not read off random characters that represent icons */ .fa-uikit:before { content: "\f403"; } +.fa-umbraco:before { + content: "\f8e8"; } + .fa-umbrella:before { content: "\f0e9"; } .fa-umbrella-beach:before { content: "\f5ca"; } +.fa-uncharted:before { + content: "\e084"; } + .fa-underline:before { content: "\f0cd"; } @@ -4295,6 +4585,9 @@ readers do not read off random characters that represent icons */ .fa-uniregistry:before { content: "\f404"; } +.fa-unity:before { + content: "\e049"; } + .fa-universal-access:before { content: "\f29a"; } @@ -4310,6 +4603,9 @@ readers do not read off random characters that represent icons */ .fa-unlock-alt:before { content: "\f13e"; } +.fa-unsplash:before { + content: "\e07c"; } + .fa-untappd:before { content: "\f405"; } @@ -4400,6 +4696,9 @@ readers do not read off random characters that represent icons */ .fa-users-cog:before { content: "\f509"; } +.fa-users-slash:before { + content: "\e073"; } + .fa-usps:before { content: "\f7e1"; } @@ -4427,6 +4726,12 @@ readers do not read off random characters that represent icons */ .fa-venus-mars:before { content: "\f228"; } +.fa-vest:before { + content: "\e085"; } + +.fa-vest-patches:before { + content: "\e086"; } + .fa-viacoin:before { content: "\f237"; } @@ -4466,12 +4771,24 @@ readers do not read off random characters that represent icons */ .fa-vine:before { content: "\f1ca"; } +.fa-virus:before { + content: "\e074"; } + +.fa-virus-slash:before { + content: "\e075"; } + +.fa-viruses:before { + content: "\e076"; } + .fa-vk:before { content: "\f189"; } .fa-vnv:before { content: "\f40b"; } +.fa-voicemail:before { + content: "\f897"; } + .fa-volleyball-ball:before { content: "\f45f"; } @@ -4505,9 +4822,18 @@ readers do not read off random characters that represent icons */ .fa-warehouse:before { content: "\f494"; } +.fa-watchman-monitoring:before { + content: "\e087"; } + .fa-water:before { content: "\f773"; } +.fa-wave-square:before { + content: "\f83e"; } + +.fa-waze:before { + content: "\f83f"; } + .fa-weebly:before { content: "\f5cc"; } @@ -4574,6 +4900,9 @@ readers do not read off random characters that represent icons */ .fa-wizards-of-the-coast:before { content: "\f730"; } +.fa-wodu:before { + content: "\e088"; } + .fa-wolf-pack-battalion:before { content: "\f514"; } @@ -4619,6 +4948,9 @@ readers do not read off random characters that represent icons */ .fa-yahoo:before { content: "\f19e"; } +.fa-yammer:before { + content: "\f840"; } + .fa-yandex:before { content: "\f413"; } @@ -4667,11 +4999,15 @@ readers do not read off random characters that represent icons */ position: static; width: auto; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../fonts/fa-solid-900.eot"); src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); } @@ -4680,10 +5016,15 @@ readers do not read off random characters that represent icons */ font-family: 'Font Awesome 5 Free'; font-weight: 900; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ .icon, .fas, .far, .fal, +.fad, .fab { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; @@ -4880,9 +5221,6 @@ readers do not read off random characters that represent icons */ .icon-adn:before { content: "\f170"; } -.icon-adobe:before { - content: "\f778"; } - .icon-adversal:before { content: "\f36a"; } @@ -4892,6 +5230,9 @@ readers do not read off random characters that represent icons */ .icon-air-freshener:before { content: "\f5d0"; } +.icon-airbnb:before { + content: "\f834"; } + .icon-algolia:before { content: "\f36c"; } @@ -5102,9 +5443,24 @@ readers do not read off random characters that represent icons */ .icon-bacon:before { content: "\f7e5"; } +.icon-bacteria:before { + content: "\e059"; } + +.icon-bacterium:before { + content: "\e05a"; } + +.icon-bahai:before { + content: "\f666"; } + .icon-balance-scale:before { content: "\f24e"; } +.icon-balance-scale-left:before { + content: "\f515"; } + +.icon-balance-scale-right:before { + content: "\f516"; } + .icon-ban:before { content: "\f05e"; } @@ -5144,6 +5500,9 @@ readers do not read off random characters that represent icons */ .icon-battery-three-quarters:before { content: "\f241"; } +.icon-battle-net:before { + content: "\f835"; } + .icon-bed:before { content: "\f236"; } @@ -5171,6 +5530,9 @@ readers do not read off random characters that represent icons */ .icon-bicycle:before { content: "\f206"; } +.icon-biking:before { + content: "\f84a"; } + .icon-bimobject:before { content: "\f378"; } @@ -5255,6 +5617,18 @@ readers do not read off random characters that represent icons */ .icon-bookmark:before { content: "\f02e"; } +.icon-bootstrap:before { + content: "\f836"; } + +.icon-border-all:before { + content: "\f84c"; } + +.icon-border-none:before { + content: "\f850"; } + +.icon-border-style:before { + content: "\f853"; } + .icon-bowling-ball:before { content: "\f436"; } @@ -5264,6 +5638,9 @@ readers do not read off random characters that represent icons */ .icon-box-open:before { content: "\f49e"; } +.icon-box-tissue:before { + content: "\e05b"; } + .icon-boxes:before { content: "\f468"; } @@ -5294,6 +5671,9 @@ readers do not read off random characters that represent icons */ .icon-btc:before { content: "\f15a"; } +.icon-buffer:before { + content: "\f837"; } + .icon-bug:before { content: "\f188"; } @@ -5321,6 +5701,9 @@ readers do not read off random characters that represent icons */ .icon-business-time:before { content: "\f64a"; } +.icon-buy-n-large:before { + content: "\f8a6"; } + .icon-buysellads:before { content: "\f20d"; } @@ -5387,6 +5770,9 @@ readers do not read off random characters that represent icons */ .icon-car-side:before { content: "\f5e4"; } +.icon-caravan:before { + content: "\f8ff"; } + .icon-caret-down:before { content: "\f0d7"; } @@ -5558,6 +5944,9 @@ readers do not read off random characters that represent icons */ .icon-chrome:before { content: "\f268"; } +.icon-chromecast:before { + content: "\f838"; } + .icon-church:before { content: "\f51d"; } @@ -5621,6 +6010,9 @@ readers do not read off random characters that represent icons */ .icon-cloud-upload-alt:before { content: "\f382"; } +.icon-cloudflare:before { + content: "\e07d"; } + .icon-cloudscale:before { content: "\f383"; } @@ -5693,6 +6085,9 @@ readers do not read off random characters that represent icons */ .icon-compress:before { content: "\f066"; } +.icon-compress-alt:before { + content: "\f422"; } + .icon-compress-arrows-alt:before { content: "\f78c"; } @@ -5720,6 +6115,9 @@ readers do not read off random characters that represent icons */ .icon-copyright:before { content: "\f1f9"; } +.icon-cotton-bureau:before { + content: "\f89e"; } + .icon-couch:before { content: "\f4b8"; } @@ -5819,6 +6217,9 @@ readers do not read off random characters that represent icons */ .icon-d-and-d-beyond:before { content: "\f6ca"; } +.icon-dailymotion:before { + content: "\e052"; } + .icon-dashcube:before { content: "\f210"; } @@ -5828,6 +6229,9 @@ readers do not read off random characters that represent icons */ .icon-deaf:before { content: "\f2a4"; } +.icon-deezer:before { + content: "\e077"; } + .icon-delicious:before { content: "\f1a5"; } @@ -5906,6 +6310,9 @@ readers do not read off random characters that represent icons */ .icon-discourse:before { content: "\f393"; } +.icon-disease:before { + content: "\f7fa"; } + .icon-divide:before { content: "\f529"; } @@ -6008,6 +6415,9 @@ readers do not read off random characters that represent icons */ .icon-edge:before { content: "\f282"; } +.icon-edge-legacy:before { + content: "\e078"; } + .icon-edit:before { content: "\f044"; } @@ -6071,6 +6481,9 @@ readers do not read off random characters that represent icons */ .icon-euro-sign:before { content: "\f153"; } +.icon-evernote:before { + content: "\f839"; } + .icon-exchange-alt:before { content: "\f362"; } @@ -6086,6 +6499,9 @@ readers do not read off random characters that represent icons */ .icon-expand:before { content: "\f065"; } +.icon-expand-alt:before { + content: "\f424"; } + .icon-expand-arrows-alt:before { content: "\f31e"; } @@ -6119,6 +6535,9 @@ readers do not read off random characters that represent icons */ .icon-facebook-square:before { content: "\f082"; } +.icon-fan:before { + content: "\f863"; } + .icon-fantasy-flight-games:before { content: "\f6dc"; } @@ -6128,6 +6547,9 @@ readers do not read off random characters that represent icons */ .icon-fast-forward:before { content: "\f050"; } +.icon-faucet:before { + content: "\e005"; } + .icon-fax:before { content: "\f1ac"; } @@ -6248,6 +6670,9 @@ readers do not read off random characters that represent icons */ .icon-firefox:before { content: "\f269"; } +.icon-firefox-browser:before { + content: "\e007"; } + .icon-first-aid:before { content: "\f479"; } @@ -6407,6 +6832,9 @@ readers do not read off random characters that represent icons */ .icon-git:before { content: "\f1d3"; } +.icon-git-alt:before { + content: "\f841"; } + .icon-git-square:before { content: "\f1d2"; } @@ -6482,6 +6910,9 @@ readers do not read off random characters that represent icons */ .icon-google-drive:before { content: "\f3aa"; } +.icon-google-pay:before { + content: "\e079"; } + .icon-google-play:before { content: "\f3ab"; } @@ -6575,6 +7006,9 @@ readers do not read off random characters that represent icons */ .icon-grunt:before { content: "\f3ad"; } +.icon-guilded:before { + content: "\e07e"; } + .icon-guitar:before { content: "\f7a6"; } @@ -6608,9 +7042,15 @@ readers do not read off random characters that represent icons */ .icon-hand-holding-heart:before { content: "\f4be"; } +.icon-hand-holding-medical:before { + content: "\e05c"; } + .icon-hand-holding-usd:before { content: "\f4c0"; } +.icon-hand-holding-water:before { + content: "\f4c1"; } + .icon-hand-lizard:before { content: "\f258"; } @@ -6644,6 +7084,9 @@ readers do not read off random characters that represent icons */ .icon-hand-scissors:before { content: "\f257"; } +.icon-hand-sparkles:before { + content: "\e05d"; } + .icon-hand-spock:before { content: "\f259"; } @@ -6653,9 +7096,18 @@ readers do not read off random characters that represent icons */ .icon-hands-helping:before { content: "\f4c4"; } +.icon-hands-wash:before { + content: "\e05e"; } + .icon-handshake:before { content: "\f2b5"; } +.icon-handshake-alt-slash:before { + content: "\e05f"; } + +.icon-handshake-slash:before { + content: "\e060"; } + .icon-hanukiah:before { content: "\f6e6"; } @@ -6665,15 +7117,30 @@ readers do not read off random characters that represent icons */ .icon-hashtag:before { content: "\f292"; } +.icon-hat-cowboy:before { + content: "\f8c0"; } + +.icon-hat-cowboy-side:before { + content: "\f8c1"; } + .icon-hat-wizard:before { content: "\f6e8"; } -.icon-haykal:before { - content: "\f666"; } - .icon-hdd:before { content: "\f0a0"; } +.icon-head-side-cough:before { + content: "\e061"; } + +.icon-head-side-cough-slash:before { + content: "\e062"; } + +.icon-head-side-mask:before { + content: "\e063"; } + +.icon-head-side-virus:before { + content: "\e064"; } + .icon-heading:before { content: "\f1dc"; } @@ -6716,6 +7183,9 @@ readers do not read off random characters that represent icons */ .icon-history:before { content: "\f1da"; } +.icon-hive:before { + content: "\e07f"; } + .icon-hockey-puck:before { content: "\f453"; } @@ -6746,6 +7216,9 @@ readers do not read off random characters that represent icons */ .icon-hospital-symbol:before { content: "\f47e"; } +.icon-hospital-user:before { + content: "\f80d"; } + .icon-hot-tub:before { content: "\f593"; } @@ -6773,6 +7246,9 @@ readers do not read off random characters that represent icons */ .icon-house-damage:before { content: "\f6f1"; } +.icon-house-user:before { + content: "\e065"; } + .icon-houzz:before { content: "\f27c"; } @@ -6794,6 +7270,9 @@ readers do not read off random characters that represent icons */ .icon-icicles:before { content: "\f7ad"; } +.icon-icons:before { + content: "\f86d"; } + .icon-id-badge:before { content: "\f2c1"; } @@ -6803,6 +7282,9 @@ readers do not read off random characters that represent icons */ .icon-id-card-alt:before { content: "\f47f"; } +.icon-ideal:before { + content: "\e013"; } + .icon-igloo:before { content: "\f7ae"; } @@ -6833,9 +7315,18 @@ readers do not read off random characters that represent icons */ .icon-info-circle:before { content: "\f05a"; } +.icon-innosoft:before { + content: "\e080"; } + .icon-instagram:before { content: "\f16d"; } +.icon-instagram-square:before { + content: "\e055"; } + +.icon-instalod:before { + content: "\e081"; } + .icon-intercom:before { content: "\f7af"; } @@ -6851,6 +7342,9 @@ readers do not read off random characters that represent icons */ .icon-italic:before { content: "\f033"; } +.icon-itch-io:before { + content: "\f83a"; } + .icon-itunes:before { content: "\f3b4"; } @@ -6947,6 +7441,9 @@ readers do not read off random characters that represent icons */ .icon-laptop-code:before { content: "\f5fc"; } +.icon-laptop-house:before { + content: "\e066"; } + .icon-laptop-medical:before { content: "\f812"; } @@ -7064,6 +7561,12 @@ readers do not read off random characters that represent icons */ .icon-luggage-cart:before { content: "\f59d"; } +.icon-lungs:before { + content: "\f604"; } + +.icon-lungs-virus:before { + content: "\e067"; } + .icon-lyft:before { content: "\f3c3"; } @@ -7139,6 +7642,9 @@ readers do not read off random characters that represent icons */ .icon-maxcdn:before { content: "\f136"; } +.icon-mdb:before { + content: "\f8ca"; } + .icon-medal:before { content: "\f5a2"; } @@ -7187,6 +7693,9 @@ readers do not read off random characters that represent icons */ .icon-meteor:before { content: "\f753"; } +.icon-microblog:before { + content: "\e01a"; } + .icon-microchip:before { content: "\f2db"; } @@ -7226,6 +7735,9 @@ readers do not read off random characters that represent icons */ .icon-mixcloud:before { content: "\f289"; } +.icon-mixer:before { + content: "\e056"; } + .icon-mizuni:before { content: "\f3cc"; } @@ -7277,6 +7789,9 @@ readers do not read off random characters that represent icons */ .icon-mountain:before { content: "\f6fc"; } +.icon-mouse:before { + content: "\f8cc"; } + .icon-mouse-pointer:before { content: "\f245"; } @@ -7304,9 +7819,6 @@ readers do not read off random characters that represent icons */ .icon-nimblr:before { content: "\f5a8"; } -.icon-nintendo-switch:before { - content: "\f418"; } - .icon-node:before { content: "\f419"; } @@ -7334,6 +7846,9 @@ readers do not read off random characters that represent icons */ .icon-object-ungroup:before { content: "\f248"; } +.icon-octopus-deploy:before { + content: "\e082"; } + .icon-odnoklassniki:before { content: "\f263"; } @@ -7361,6 +7876,9 @@ readers do not read off random characters that represent icons */ .icon-optin-monster:before { content: "\f23c"; } +.icon-orcid:before { + content: "\f8d2"; } + .icon-osi:before { content: "\f41a"; } @@ -7460,12 +7978,18 @@ readers do not read off random characters that represent icons */ .icon-penny-arcade:before { content: "\f704"; } +.icon-people-arrows:before { + content: "\e068"; } + .icon-people-carry:before { content: "\f4ce"; } .icon-pepper-hot:before { content: "\f816"; } +.icon-perbyte:before { + content: "\e083"; } + .icon-percent:before { content: "\f295"; } @@ -7490,15 +8014,24 @@ readers do not read off random characters that represent icons */ .icon-phone:before { content: "\f095"; } +.icon-phone-alt:before { + content: "\f879"; } + .icon-phone-slash:before { content: "\f3dd"; } .icon-phone-square:before { content: "\f098"; } +.icon-phone-square-alt:before { + content: "\f87b"; } + .icon-phone-volume:before { content: "\f2a0"; } +.icon-photo-video:before { + content: "\f87c"; } + .icon-php:before { content: "\f457"; } @@ -7514,6 +8047,9 @@ readers do not read off random characters that represent icons */ .icon-pied-piper-pp:before { content: "\f1a7"; } +.icon-pied-piper-square:before { + content: "\e01e"; } + .icon-piggy-bank:before { content: "\f4d3"; } @@ -7544,6 +8080,9 @@ readers do not read off random characters that represent icons */ .icon-plane-departure:before { content: "\f5b0"; } +.icon-plane-slash:before { + content: "\e069"; } + .icon-play:before { content: "\f04b"; } @@ -7619,6 +8158,12 @@ readers do not read off random characters that represent icons */ .icon-project-diagram:before { content: "\f542"; } +.icon-pump-medical:before { + content: "\e06a"; } + +.icon-pump-soap:before { + content: "\e06b"; } + .icon-pushed:before { content: "\f3e1"; } @@ -7694,6 +8239,9 @@ readers do not read off random characters that represent icons */ .icon-receipt:before { content: "\f543"; } +.icon-record-vinyl:before { + content: "\f8d9"; } + .icon-recycle:before { content: "\f1b8"; } @@ -7721,6 +8269,9 @@ readers do not read off random characters that represent icons */ .icon-registered:before { content: "\f25d"; } +.icon-remove-format:before { + content: "\f87d"; } + .icon-renren:before { content: "\f18b"; } @@ -7802,6 +8353,9 @@ readers do not read off random characters that represent icons */ .icon-rupee-sign:before { content: "\f156"; } +.icon-rust:before { + content: "\e07a"; } + .icon-sad-cry:before { content: "\f5b3"; } @@ -7811,6 +8365,9 @@ readers do not read off random characters that represent icons */ .icon-safari:before { content: "\f267"; } +.icon-salesforce:before { + content: "\f83b"; } + .icon-sass:before { content: "\f41e"; } @@ -7895,6 +8452,9 @@ readers do not read off random characters that represent icons */ .icon-shield-alt:before { content: "\f3ed"; } +.icon-shield-virus:before { + content: "\e06c"; } + .icon-ship:before { content: "\f21a"; } @@ -7907,6 +8467,9 @@ readers do not read off random characters that represent icons */ .icon-shoe-prints:before { content: "\f54b"; } +.icon-shopify:before { + content: "\e057"; } + .icon-shopping-bag:before { content: "\f290"; } @@ -7949,6 +8512,9 @@ readers do not read off random characters that represent icons */ .icon-simplybuilt:before { content: "\f215"; } +.icon-sink:before { + content: "\e06d"; } + .icon-sistrix:before { content: "\f3ee"; } @@ -8042,6 +8608,9 @@ readers do not read off random characters that represent icons */ .icon-snowplow:before { content: "\f7d2"; } +.icon-soap:before { + content: "\e06e"; } + .icon-socks:before { content: "\f696"; } @@ -8054,24 +8623,42 @@ readers do not read off random characters that represent icons */ .icon-sort-alpha-down:before { content: "\f15d"; } +.icon-sort-alpha-down-alt:before { + content: "\f881"; } + .icon-sort-alpha-up:before { content: "\f15e"; } +.icon-sort-alpha-up-alt:before { + content: "\f882"; } + .icon-sort-amount-down:before { content: "\f160"; } +.icon-sort-amount-down-alt:before { + content: "\f884"; } + .icon-sort-amount-up:before { content: "\f161"; } +.icon-sort-amount-up-alt:before { + content: "\f885"; } + .icon-sort-down:before { content: "\f0dd"; } .icon-sort-numeric-down:before { content: "\f162"; } +.icon-sort-numeric-down-alt:before { + content: "\f886"; } + .icon-sort-numeric-up:before { content: "\f163"; } +.icon-sort-numeric-up-alt:before { + content: "\f887"; } + .icon-sort-up:before { content: "\f0de"; } @@ -8090,6 +8677,12 @@ readers do not read off random characters that represent icons */ .icon-speakap:before { content: "\f3f3"; } +.icon-speaker-deck:before { + content: "\f83c"; } + +.icon-spell-check:before { + content: "\f891"; } + .icon-spider:before { content: "\f717"; } @@ -8123,6 +8716,9 @@ readers do not read off random characters that represent icons */ .icon-stack-overflow:before { content: "\f16c"; } +.icon-stackpath:before { + content: "\f842"; } + .icon-stamp:before { content: "\f5bf"; } @@ -8180,12 +8776,21 @@ readers do not read off random characters that represent icons */ .icon-stopwatch:before { content: "\f2f2"; } +.icon-stopwatch-20:before { + content: "\e06f"; } + .icon-store:before { content: "\f54e"; } .icon-store-alt:before { content: "\f54f"; } +.icon-store-alt-slash:before { + content: "\e070"; } + +.icon-store-slash:before { + content: "\e071"; } + .icon-strava:before { content: "\f428"; } @@ -8249,12 +8854,18 @@ readers do not read off random characters that represent icons */ .icon-swatchbook:before { content: "\f5c3"; } +.icon-swift:before { + content: "\f8e1"; } + .icon-swimmer:before { content: "\f5c4"; } .icon-swimming-pool:before { content: "\f5c5"; } +.icon-symfony:before { + content: "\f83d"; } + .icon-synagogue:before { content: "\f69b"; } @@ -8390,6 +9001,9 @@ readers do not read off random characters that represent icons */ .icon-ticket-alt:before { content: "\f3ff"; } +.icon-tiktok:before { + content: "\e07b"; } + .icon-times:before { content: "\f00d"; } @@ -8417,6 +9031,9 @@ readers do not read off random characters that represent icons */ .icon-toilet-paper:before { content: "\f71e"; } +.icon-toilet-paper-slash:before { + content: "\e072"; } + .icon-toolbox:before { content: "\f552"; } @@ -8444,6 +9061,9 @@ readers do not read off random characters that represent icons */ .icon-traffic-light:before { content: "\f637"; } +.icon-trailer:before { + content: "\e041"; } + .icon-train:before { content: "\f238"; } @@ -8531,12 +9151,18 @@ readers do not read off random characters that represent icons */ .icon-uikit:before { content: "\f403"; } +.icon-umbraco:before { + content: "\f8e8"; } + .icon-umbrella:before { content: "\f0e9"; } .icon-umbrella-beach:before { content: "\f5ca"; } +.icon-uncharted:before { + content: "\e084"; } + .icon-underline:before { content: "\f0cd"; } @@ -8549,6 +9175,9 @@ readers do not read off random characters that represent icons */ .icon-uniregistry:before { content: "\f404"; } +.icon-unity:before { + content: "\e049"; } + .icon-universal-access:before { content: "\f29a"; } @@ -8564,6 +9193,9 @@ readers do not read off random characters that represent icons */ .icon-unlock-alt:before { content: "\f13e"; } +.icon-unsplash:before { + content: "\e07c"; } + .icon-untappd:before { content: "\f405"; } @@ -8654,6 +9286,9 @@ readers do not read off random characters that represent icons */ .icon-users-cog:before { content: "\f509"; } +.icon-users-slash:before { + content: "\e073"; } + .icon-usps:before { content: "\f7e1"; } @@ -8681,6 +9316,12 @@ readers do not read off random characters that represent icons */ .icon-venus-mars:before { content: "\f228"; } +.icon-vest:before { + content: "\e085"; } + +.icon-vest-patches:before { + content: "\e086"; } + .icon-viacoin:before { content: "\f237"; } @@ -8720,12 +9361,24 @@ readers do not read off random characters that represent icons */ .icon-vine:before { content: "\f1ca"; } +.icon-virus:before { + content: "\e074"; } + +.icon-virus-slash:before { + content: "\e075"; } + +.icon-viruses:before { + content: "\e076"; } + .icon-vk:before { content: "\f189"; } .icon-vnv:before { content: "\f40b"; } +.icon-voicemail:before { + content: "\f897"; } + .icon-volleyball-ball:before { content: "\f45f"; } @@ -8759,9 +9412,18 @@ readers do not read off random characters that represent icons */ .icon-warehouse:before { content: "\f494"; } +.icon-watchman-monitoring:before { + content: "\e087"; } + .icon-water:before { content: "\f773"; } +.icon-wave-square:before { + content: "\f83e"; } + +.icon-waze:before { + content: "\f83f"; } + .icon-weebly:before { content: "\f5cc"; } @@ -8828,6 +9490,9 @@ readers do not read off random characters that represent icons */ .icon-wizards-of-the-coast:before { content: "\f730"; } +.icon-wodu:before { + content: "\e088"; } + .icon-wolf-pack-battalion:before { content: "\f514"; } @@ -8873,6 +9538,9 @@ readers do not read off random characters that represent icons */ .icon-yahoo:before { content: "\f19e"; } +.icon-yammer:before { + content: "\f840"; } + .icon-yandex:before { content: "\f413"; } @@ -8921,11 +9589,15 @@ readers do not read off random characters that represent icons */ position: static; width: auto; } +/*! + * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; font-weight: 900; - font-display: auto; + font-display: block; src: url("../fonts/fa-solid-900.eot"); src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); } @@ -9426,7 +10098,11 @@ header { margin: 15px 0; padding: 0; } #install ul.checklist li { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } + border-left: 0.2rem solid; + background-color: rgba(74, 144, 226, 0.2); + border-color: #4A90E2; + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + padding: 15px 10px; } #install ul.checklist li p { color: #333333; font-size: 14px; @@ -9438,9 +10114,6 @@ header { color: #355825; } #install ul.checklist li .notok { color: #590710; } - #install ul.checklist .warning, #install ul.checklist .testWarn, #install ul.checklist .success, #install ul.checklist .testPassed, #install ul.checklist .failed, #install ul.checklist .testFailed { - padding: 10px; - border-left: 0.2rem solid; } #install ul.checklist .warning, #install ul.checklist .testWarn { background-color: rgba(240, 180, 41, 0.2); border-color: #F0B429; } diff --git a/setup/assets/images/modx-logo-color.svg b/setup/assets/images/modx-logo-color.svg index 24662cc81f6..056dfa94987 100644 --- a/setup/assets/images/modx-logo-color.svg +++ b/setup/assets/images/modx-logo-color.svg @@ -1,53 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/setup/favicon.ico b/setup/favicon.ico index 116474ac2c8..bc6892f3e1c 100644 Binary files a/setup/favicon.ico and b/setup/favicon.ico differ diff --git a/setup/includes/modinstallsettings.class.php b/setup/includes/modinstallsettings.class.php index 69dd05679e7..5ce27e156af 100644 --- a/setup/includes/modinstallsettings.class.php +++ b/setup/includes/modinstallsettings.class.php @@ -97,6 +97,9 @@ public function fromArray($array) { */ public function load() { if (file_exists($this->fileName)) { + if (function_exists('opcache_invalidate')) { + opcache_invalidate($this->fileName); + } $this->settings = include $this->fileName; if (empty($this->settings)) { $this->restart(); diff --git a/setup/includes/modinstallversion.class.php b/setup/includes/modinstallversion.class.php index f744e1d8d4b..4148275a263 100644 --- a/setup/includes/modinstallversion.class.php +++ b/setup/includes/modinstallversion.class.php @@ -14,6 +14,8 @@ * @package setup */ +use MODX\Revolution\modSystemSetting; + /** * Handles version-specific upgrades for Revolution * diff --git a/setup/includes/new.install.php b/setup/includes/new.install.php index 99d658d9f39..ffd523668d0 100644 --- a/setup/includes/new.install.php +++ b/setup/includes/new.install.php @@ -283,18 +283,9 @@ $setting->save(); } -$maxFileSize = ini_get('upload_max_filesize'); -$maxFileSize = trim($maxFileSize); -$last = strtolower($maxFileSize[strlen($maxFileSize)-1]); -switch ($last) { - // The 'G' modifier is available since PHP 5.1.0 - case 'g': - $maxFileSize *= 1024; - case 'm': - $maxFileSize *= 1024; - case 'k': - $maxFileSize *= 1024; -} +$maxFileSize = trim(ini_get('upload_max_filesize')); +$modifier = strtolower(substr($maxFileSize, -1)); +$maxFileSizeInBytes = (int) $maxFileSize * pow(1024, strpos('kmg', $modifier) + 1); $settings_maxFileSize = $modx->getObject(modSystemSetting::class, ['key' => 'upload_maxsize']); if (!$settings_maxFileSize) { @@ -310,7 +301,7 @@ true ); } -$settings_maxFileSize->set('value', $maxFileSize); +$settings_maxFileSize->set('value', $maxFileSizeInBytes); $settings_maxFileSize->save(); return true; diff --git a/setup/includes/tables_create.php b/setup/includes/tables_create.php index 6286c79c621..c30c837ad90 100644 --- a/setup/includes/tables_create.php +++ b/setup/includes/tables_create.php @@ -39,7 +39,6 @@ \MODX\Revolution\modCategory::class, \MODX\Revolution\modCategoryClosure::class, \MODX\Revolution\modChunk::class, - \MODX\Revolution\modClassMap::class, \MODX\Revolution\modContentType::class, \MODX\Revolution\modContext::class, \MODX\Revolution\modContextResource::class, diff --git a/setup/includes/upgrade.install.php b/setup/includes/upgrade.install.php index 6bffc4b7a45..d66e87471b9 100644 --- a/setup/includes/upgrade.install.php +++ b/setup/includes/upgrade.install.php @@ -26,7 +26,6 @@ use MODX\Revolution\modAccessPermission; use MODX\Revolution\modAccessPolicy; use MODX\Revolution\modAccessPolicyTemplate; -use MODX\Revolution\modAction; use MODX\Revolution\modActionDom; use MODX\Revolution\modFormCustomizationProfile; use MODX\Revolution\modFormCustomizationProfileUserGroup; diff --git a/setup/includes/upgrades/common/3.0-cleanup-files.php b/setup/includes/upgrades/common/3.0.0-cleanup-files.php similarity index 91% rename from setup/includes/upgrades/common/3.0-cleanup-files.php rename to setup/includes/upgrades/common/3.0.0-cleanup-files.php index 91ed63fbed6..dc747c170fa 100644 --- a/setup/includes/upgrades/common/3.0-cleanup-files.php +++ b/setup/includes/upgrades/common/3.0.0-cleanup-files.php @@ -2,7 +2,7 @@ /** * Common upgrade script for 3.0 to clean up files removed since 2.x * - * @var modX + * @var $modx modX * * @package setup */ @@ -142,6 +142,16 @@ 'src/Revolution/sqlsrv/modAction.php', 'src/Revolution/sqlsrv/modAccessAction.php', 'src/Revolution/modManagerControllerDeprecated.php', + 'src/Revolution/Processors/Element/TemplateVar/Renders/mgr/input/list-multiple-legacy.class.php', + 'src/Revolution/Processors/Element/TemplateVar/Renders/mgr/inputproperties/list-multiple-legacy.php', + + // remove modClassMap and dependencies + 'src/Revolution/Processors/Element/GetClasses.php', + 'src/Revolution/Processors/System/ClassMap/GetList.php', + 'src/Revolution/modClassMap.php', + 'src/Revolution/mysql/modClassMap.php', + 'src/Revolution/sqlsrv/modClassMap.php', + ], 'manager' => [ 'min/', @@ -149,6 +159,8 @@ 'assets/modext/widgets/security/modx.grid.role.user.js', 'assets/modext/workspace/lexicon/language.grid.js', 'assets/modext/workspace/lexicon/lexicon.topic.grid.js', + 'templates/default/element/tv/renders/input/list-multiple-legacy.tpl', + 'templates/default/element/tv/renders/inputproperties/list-multiple-legacy.tpl', ], ]; diff --git a/setup/includes/upgrades/common/3.0.0-non-index-field-length.php b/setup/includes/upgrades/common/3.0.0-non-index-field-length.php new file mode 100644 index 00000000000..8fcd865cd85 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-non-index-field-length.php @@ -0,0 +1,78 @@ +getManager(); + +$manager->alterField(\MODX\Revolution\modAccessPolicy::class, 'lexicon'); + +$manager->alterField(\MODX\Revolution\modAccessPolicyTemplate::class, 'lexicon'); + +$manager->alterField(\MODX\Revolution\modActionDom::class, 'container'); +$manager->alterField(\MODX\Revolution\modActionDom::class, 'constraint'); + +$manager->alterField(\MODX\Revolution\modActionField::class, 'name'); +$manager->alterField(\MODX\Revolution\modActionField::class, 'form'); +$manager->alterField(\MODX\Revolution\modActionField::class, 'other'); + +$manager->alterField(\MODX\Revolution\modActiveUser::class, 'action'); + +$manager->alterField(\MODX\Revolution\modChunk::class, 'description'); +$manager->alterField(\MODX\Revolution\modChunk::class, 'static_file'); + +$manager->alterField(\MODX\Revolution\modContextSetting::class, 'area'); + +$manager->alterField(\MODX\Revolution\modDashboardWidget::class, 'size'); +$manager->alterField(\MODX\Revolution\modDashboardWidget::class, 'permission'); + +$manager->alterField(\MODX\Revolution\modDashboardWidgetPlacement::class, 'size'); + +$manager->alterField(\MODX\Revolution\modFormCustomizationSet::class, 'constraint'); + +$manager->alterField(\MODX\Revolution\modManagerLog::class, 'item'); + +$manager->alterField(\MODX\Revolution\modMenu::class, 'description'); +$manager->alterField(\MODX\Revolution\modMenu::class, 'icon'); + +$manager->alterField(\MODX\Revolution\modExtensionPackage::class, 'table_prefix'); +$manager->alterField(\MODX\Revolution\modExtensionPackage::class, 'service_class'); +$manager->alterField(\MODX\Revolution\modExtensionPackage::class, 'service_name'); + +$manager->alterField(\MODX\Revolution\modPlugin::class, 'static_file'); +$manager->alterField(\MODX\Revolution\modPlugin::class, 'description'); + +$manager->alterField(\MODX\Revolution\modPropertySet::class, 'description'); + +$manager->alterField(\MODX\Revolution\modResource::class, 'link_attributes'); +$manager->alterField(\MODX\Revolution\modResource::class, 'menutitle'); + +$manager->alterField(\MODX\Revolution\modSnippet::class, 'static_file'); +$manager->alterField(\MODX\Revolution\modSnippet::class, 'description'); + +$manager->alterField(\MODX\Revolution\modSystemSetting::class, 'area'); + +$manager->alterField(\MODX\Revolution\modTemplate::class, 'description'); +$manager->alterField(\MODX\Revolution\modTemplate::class, 'icon'); +$manager->alterField(\MODX\Revolution\modTemplate::class, 'static_file'); + +$manager->alterField(\MODX\Revolution\modTemplateVar::class, 'description'); +$manager->alterField(\MODX\Revolution\modTemplateVar::class, 'static_file'); + +$manager->alterField(\MODX\Revolution\modUserGroupSetting::class, 'area'); + +$manager->alterField(\MODX\Revolution\modUserMessage::class, 'subject'); + +$manager->alterField(\MODX\Revolution\modUserProfile::class, 'country'); +$manager->alterField(\MODX\Revolution\modUserProfile::class, 'city'); +$manager->alterField(\MODX\Revolution\modUserProfile::class, 'photo'); +$manager->alterField(\MODX\Revolution\modUserProfile::class, 'website'); + +$manager->alterField(\MODX\Revolution\modUserSetting::class, 'area'); diff --git a/setup/includes/upgrades/common/3.0.0-policy-description.php b/setup/includes/upgrades/common/3.0.0-policy-description.php new file mode 100644 index 00000000000..45081a9e3d1 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-policy-description.php @@ -0,0 +1,19 @@ +getIterator( + modAccessPolicy::class, + ['name:IN' => modAccessPolicy::getCorePolicies()] +); + +foreach ($policies as $policy) { + $policy->set('description', sprintf( + 'policy_%s_desc', + str_replace([',', ' '], ['', '_'], strtolower($policy->get('name'))) + )); + $policy->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-policy-template-description.php b/setup/includes/upgrades/common/3.0.0-policy-template-description.php new file mode 100644 index 00000000000..744d75af766 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-policy-template-description.php @@ -0,0 +1,19 @@ +getIterator( + modAccessPolicyTemplate::class, + ['name:IN' => modAccessPolicyTemplate::getCoreTemplates()] +); + +foreach ($templates as $template) { + $template->set('description', sprintf( + 'policy_template_%s_desc', + str_replace('template', '', strtolower($template->get('name'))) + )); + $template->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-policy-template-group-description.php b/setup/includes/upgrades/common/3.0.0-policy-template-group-description.php new file mode 100644 index 00000000000..72e1ed84fb5 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-policy-template-group-description.php @@ -0,0 +1,22 @@ +getIterator( + modAccessPolicyTemplateGroup::class, + ['name:IN' => array_merge(modAccessPolicyTemplateGroup::getCoreGroups(), ['Admin'])] +); + +foreach ($groups as $group) { + if ($group->get('name') === 'Admin') { // Renaming of the old Admin group to new one - Administrator + $group->set('name', modAccessPolicyTemplateGroup::GROUP_ADMINISTRATOR); + } + $group->set('description', sprintf( + 'policy_template_group_%s_desc', + strtolower($group->get('name')) + )); + $group->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-update-menu-main.php b/setup/includes/upgrades/common/3.0.0-update-menu-main.php new file mode 100644 index 00000000000..5deffe442d8 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-menu-main.php @@ -0,0 +1,29 @@ + '', + 'media' => '', + 'components' => '', + 'manage' => '', + 'user' => '{$userImage}{$username}', + 'admin' => '', + 'about' => '', +]; + +foreach ($menu as $key => $value) { + /** @var modMenu $menu_item */ + + $menu_item = $modx->getObject(modMenu::class, ['text' => $key]); + $menu_item->set('description', ''); + $menu_item->set('icon', $value); + $menu_item->save(); + +} \ No newline at end of file diff --git a/setup/includes/upgrades/common/3.0.0-update-principal_targets.php b/setup/includes/upgrades/common/3.0.0-update-principal_targets.php new file mode 100644 index 00000000000..19266aefd0e --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-principal_targets.php @@ -0,0 +1,36 @@ +getObject(modSystemSetting::class, ['key' => 'principal_targets']); +if (!$principalTargets) return; + +$values = $principalTargets->value; +$values = explode(',', $values); +$values = array_map('trim', $values); + +$newPrincipalTargets = []; + +foreach ($values as $value) { + if (in_array($value, ['modAccessContext', 'modAccessResourceGroup', 'modAccessCategory', 'modAccessNamespace'])) { + $newPrincipalTargets[] = 'MODX\\Revolution\\' . $value; + continue; + } + + if ($value === 'sources.modAccessMediaSource') { + $newPrincipalTargets[] = 'MODX\\Revolution\\Sources\\modAccessMediaSource'; + continue; + } + + $newPrincipalTargets[] = $value; +} + +$principalTargets->set('value', implode(',', $newPrincipalTargets)); +$principalTargets->save(); diff --git a/setup/includes/upgrades/common/3.0.0-update-sys-setting_base_help_url.php b/setup/includes/upgrades/common/3.0.0-update-sys-setting_base_help_url.php new file mode 100644 index 00000000000..a9cb88c625c --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-sys-setting_base_help_url.php @@ -0,0 +1,19 @@ +getObject(modSystemSetting::class, [ + 'key' => 'base_help_url', + 'value' => '//docs.modx.com/display/revolution20/', +]); + +if ($baseHelpUrl) { + $baseHelpUrl->set('value', '//docs.modx.com/help/'); + $baseHelpUrl->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-update-default-media-source-setting.php b/setup/includes/upgrades/common/3.0.0-update-sys-setting_default_media_source.php similarity index 100% rename from setup/includes/upgrades/common/3.0.0-update-default-media-source-setting.php rename to setup/includes/upgrades/common/3.0.0-update-sys-setting_default_media_source.php diff --git a/setup/includes/upgrades/common/3.0.0-update-upload_files-upload_images.php b/setup/includes/upgrades/common/3.0.0-update-sys-setting_upload_files-upload_images.php similarity index 100% rename from setup/includes/upgrades/common/3.0.0-update-upload_files-upload_images.php rename to setup/includes/upgrades/common/3.0.0-update-sys-setting_upload_files-upload_images.php diff --git a/setup/includes/upgrades/common/3.0.0-update-upload_files-woff2.php b/setup/includes/upgrades/common/3.0.0-update-sys-setting_upload_files-woff2.php similarity index 89% rename from setup/includes/upgrades/common/3.0.0-update-upload_files-woff2.php rename to setup/includes/upgrades/common/3.0.0-update-sys-setting_upload_files-woff2.php index e94c097511c..3cce84469b5 100644 --- a/setup/includes/upgrades/common/3.0.0-update-upload_files-woff2.php +++ b/setup/includes/upgrades/common/3.0.0-update-sys-setting_upload_files-woff2.php @@ -6,6 +6,8 @@ * @package setup */ +use MODX\Revolution\modSystemSetting; + $messageTemplate = '

    %s

    '; $keys = ['upload_files']; @@ -14,7 +16,7 @@ $success = false; /** @var modSystemSetting $setting */ - $setting = $modx->getObject('modSystemSetting', array('key' => $key)); + $setting = $modx->getObject(modSystemSetting::class, array('key' => $key)); if ($setting) { $value = $setting->get('value'); $tmp = explode(',', $value); diff --git a/setup/includes/upgrades/common/3.0.0-update-sys-setting_welcome_screen_url.php b/setup/includes/upgrades/common/3.0.0-update-sys-setting_welcome_screen_url.php new file mode 100644 index 00000000000..a6ca2e788ea --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-sys-setting_welcome_screen_url.php @@ -0,0 +1,15 @@ +getObject(modSystemSetting::class, [ + 'key' => 'welcome_screen_url', + 'value' => '//misc.modx.com/revolution/welcome.27.html', +]); +if ($welcome_screen_url) { + $welcome_screen_url->set('value', '//misc.modx.com/revolution/welcome.30.html'); + $welcome_screen_url->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-update-tvs-list-legacy.php b/setup/includes/upgrades/common/3.0.0-update-tvs-list-legacy.php new file mode 100644 index 00000000000..a47b555a3fa --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-tvs-list-legacy.php @@ -0,0 +1,17 @@ +getCollection(modTemplateVar::class, ['type' => 'list-multiple-legacy']); + +foreach ($legacyMultipleListTVs as $tv) { + $tv->set('type', 'listbox-multiple'); + $tv->save(); +} diff --git a/setup/includes/upgrades/common/3.0.0-update-tvs-output-params.php b/setup/includes/upgrades/common/3.0.0-update-tvs-output-params.php new file mode 100644 index 00000000000..89230f78830 --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-tvs-output-params.php @@ -0,0 +1,32 @@ +getCollection(modTemplateVar::class); + +if ($tvs) { + + foreach ($tvs as $tv) { + $output_properties = $tv->get('output_properties'); + + if (!empty($output_properties['tagid'])) { + $output_properties['id'] = $output_properties['tagid']; + } + if (!empty($output_properties['attrib'])) { + $output_properties['attributes'] = $output_properties['attrib']; + } + unset($output_properties['tagid']); + unset($output_properties['attrib']); + + $tv->set('output_properties', $output_properties); + $tv->save(); + } + +} \ No newline at end of file diff --git a/setup/includes/upgrades/common/3.0.0-update-tvs-params.php b/setup/includes/upgrades/common/3.0.0-update-tvs-params.php new file mode 100644 index 00000000000..0a9a6d128fa --- /dev/null +++ b/setup/includes/upgrades/common/3.0.0-update-tvs-params.php @@ -0,0 +1,28 @@ +getCollection(modTemplateVar::class, ['type' => 'number']); + +if ($tvs_num) { + + foreach ($tvs_num as $tv_num) { + $input_properties = $tv_num->get('input_properties'); + + if ($input_properties['allowNegative'] == 'false') { + $input_properties['minValue'] = '0'; + } + unset($input_properties['allowNegative']); + + $tv_num->set('input_properties', $input_properties); + $tv_num->save(); + } + +} diff --git a/setup/includes/upgrades/mysql/3.0.0-pl.php b/setup/includes/upgrades/mysql/3.0.0-pl.php index 9d09e813132..e44bb9aba00 100644 --- a/setup/includes/upgrades/mysql/3.0.0-pl.php +++ b/setup/includes/upgrades/mysql/3.0.0-pl.php @@ -8,20 +8,26 @@ */ /* run upgrades common to all db platforms */ -include dirname(__DIR__) . '/common/3.0-cleanup-files.php'; +include dirname(__DIR__) . '/common/3.0.0-cleanup-files.php'; include dirname(__DIR__) . '/common/3.0.0-dashboard-widgets.php'; include dirname(__DIR__) . '/common/3.0.0-remove-copy-to-clipboard.php'; include dirname(__DIR__) . '/common/3.0.0-cleanup-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-richtext-editor-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-remove-tv-eval-system-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-remove-upload-flash-system-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-authentication-security-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-lexicon-language-system-settings.php'; include dirname(__DIR__) . '/common/3.0.0-content-type-icon.php'; include dirname(__DIR__) . '/common/3.0.0-update-xtypes-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-update-upload_files-upload_images.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_upload_files-upload_images.php'; include dirname(__DIR__) . '/common/3.0.0-trim-gender-field-size.php'; include dirname(__DIR__) . '/common/3.0.0-update-legacy-class-references.php'; include dirname(__DIR__) . '/common/3.0.0-update-menu-entries.php'; -include dirname(__DIR__) . '/common/3.0.0-update-default-media-source-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-update-upload_files-woff2.php'; +include dirname(__DIR__) . '/common/3.0.0-update-menu-main.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_default_media_source.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_upload_files-woff2.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-params.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-output-params.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-list-legacy.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_base_help_url.php'; +include dirname(__DIR__) . '/common/3.0.0-update-principal_targets.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_welcome_screen_url.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-template-group-description.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-template-description.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-description.php'; +include dirname(__DIR__) . '/common/3.0.0-non-index-field-length.php'; diff --git a/setup/includes/upgrades/sqlsrv/3.0.0-pl.php b/setup/includes/upgrades/sqlsrv/3.0.0-pl.php index 9d09e813132..25e91cca524 100644 --- a/setup/includes/upgrades/sqlsrv/3.0.0-pl.php +++ b/setup/includes/upgrades/sqlsrv/3.0.0-pl.php @@ -8,20 +8,25 @@ */ /* run upgrades common to all db platforms */ -include dirname(__DIR__) . '/common/3.0-cleanup-files.php'; +include dirname(__DIR__) . '/common/3.0.0-cleanup-files.php'; include dirname(__DIR__) . '/common/3.0.0-dashboard-widgets.php'; include dirname(__DIR__) . '/common/3.0.0-remove-copy-to-clipboard.php'; include dirname(__DIR__) . '/common/3.0.0-cleanup-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-richtext-editor-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-remove-tv-eval-system-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-remove-upload-flash-system-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-authentication-security-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-cleanup-lexicon-language-system-settings.php'; include dirname(__DIR__) . '/common/3.0.0-content-type-icon.php'; include dirname(__DIR__) . '/common/3.0.0-update-xtypes-system-settings.php'; -include dirname(__DIR__) . '/common/3.0.0-update-upload_files-upload_images.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_upload_files-upload_images.php'; include dirname(__DIR__) . '/common/3.0.0-trim-gender-field-size.php'; include dirname(__DIR__) . '/common/3.0.0-update-legacy-class-references.php'; include dirname(__DIR__) . '/common/3.0.0-update-menu-entries.php'; -include dirname(__DIR__) . '/common/3.0.0-update-default-media-source-setting.php'; -include dirname(__DIR__) . '/common/3.0.0-update-upload_files-woff2.php'; +include dirname(__DIR__) . '/common/3.0.0-update-menu-main.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_default_media_source.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_upload_files-woff2.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-params.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-output-params.php'; +include dirname(__DIR__) . '/common/3.0.0-update-tvs-list-legacy.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_base_help_url.php'; +include dirname(__DIR__) . '/common/3.0.0-update-principal_targets.php'; +include dirname(__DIR__) . '/common/3.0.0-update-sys-setting_welcome_screen_url.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-template-group-description.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-template-description.php'; +include dirname(__DIR__) . '/common/3.0.0-policy-description.php'; diff --git a/setup/lang/be/default.inc.php b/setup/lang/be/default.inc.php index 9cef02ce1da..58f01775b8b 100644 --- a/setup/lang/be/default.inc.php +++ b/setup/lang/be/default.inc.php @@ -144,8 +144,8 @@ $_lang['license_agree'] = 'Я згодны з умовамі, запісанымі ў гэтай ліцэнзіі.'; $_lang['license_agreement'] = 'Ліцэнзійная дамова'; $_lang['license_agreement_error'] = 'Вы павінны пагадзіцца з ліцэнзіяй, перш чым працягнуць усталёўку.'; -$_lang['locked'] = 'MODX Setup is locked!'; -$_lang['locked_message'] = '

    You will need to remove the setup/.locked/ directory in order to proceed.

    '; +$_lang['locked'] = 'Усталёўка MODX заблакавана!'; +$_lang['locked_message'] = '

    Вам патрэбна выдаліць каталог setup/.locked/, каб працягнуць.

    '; $_lang['login'] = 'Увайсці'; $_lang['modx_class_err_nf'] = 'Не атрымалася знайсці файл класа MODX.'; $_lang['modx_configuration_file'] = 'Канфігурацыйны файл MODX'; diff --git a/setup/lang/cs/default.inc.php b/setup/lang/cs/default.inc.php index 37ef753091a..81142f034dc 100644 --- a/setup/lang/cs/default.inc.php +++ b/setup/lang/cs/default.inc.php @@ -147,8 +147,8 @@ $_lang['license_agree'] = 'Souhlasím s podmínkami stanovenými v této licenci.'; $_lang['license_agreement'] = 'Licenční smlouva'; $_lang['license_agreement_error'] = 'Před pokračováním v instalaci musíte souhlasit s licenčními podmínkami.'; -$_lang['locked'] = 'MODX Setup is locked!'; -$_lang['locked_message'] = '

    You will need to remove the setup/.locked/ directory in order to proceed.

    '; +$_lang['locked'] = 'MODX instalace je zamčena!'; +$_lang['locked_message'] = '

    Abyste mohli pokračovat, musíte odstranit adresář setup/.locked/

    '; $_lang['login'] = 'Přihlásit'; $_lang['modx_class_err_nf'] = 'Nepodařilo se načíst soubor třídy MODX.'; $_lang['modx_configuration_file'] = 'MODX konfigurační soubor'; @@ -202,7 +202,7 @@ $_lang['security_notice'] = 'Bezpečnostní oznámení'; $_lang['select'] = 'Vybrat'; $_lang['settings_handler_err_nf'] = 'MODX nemohl nalézt třídu modInstallSettings v umístění: [[+path]]. Ujistěte se, že na server byly nahrány všechny soubory.'; -$_lang['setup_err_lock'] = 'An error occurred while trying lock setup. Could not create the .locked subdirectory inside the setup directory.'; +$_lang['setup_err_lock'] = 'Nastala chyba při pokusu o uzamčení instalace. Nelze vytvořit podadresář .lock uvnitř instalačního adresáře.'; $_lang['setup_err_remove'] = 'Nastala chyba při odstraňování instalačního adresáře.'; $_lang['setup_err_assets'] = 'Adresář "./assets" nebyl vytvořen v umístění: [[+path]]
    Vytvořte tento adresář ručně a nastavte jej pro zápis (pomocí atributů), aby jste mohli používat Správce balíčků nebo komponenty třetích stran.'; $_lang['setup_err_assets_comp'] = 'Adresář "./assets/components" nebyl vytvořen v umístění: [[+path]]
    Vytvořte tento adresář ručně a nastavte jej pro zápis (pomocí atributů), aby jste mohli používat Správce balíčků nebo komponenty třetích stran.'; diff --git a/setup/lang/de/default.inc.php b/setup/lang/de/default.inc.php index 727f0a225d2..981f91cdcd8 100644 --- a/setup/lang/de/default.inc.php +++ b/setup/lang/de/default.inc.php @@ -148,7 +148,7 @@ $_lang['license_agreement'] = 'Lizenzvereinbarung'; $_lang['license_agreement_error'] = 'Sie müssen der Lizenzvereinbarung zustimmen, bevor Sie mit der Installation fortfahren.'; $_lang['locked'] = 'MODX Setup ist gesperrt!'; -$_lang['locked_message'] = '

    Sie müssen das Verzeichnis \'setup/.locked/\' entfernen, um fortzufahren.

    '; +$_lang['locked_message'] = '

    Sie müssen das Verzeichnis \'setup/.locked/\' löschen, um fortzufahren.

    '; $_lang['login'] = 'Login'; $_lang['modx_class_err_nf'] = 'Konnte die MODX-Klassendatei nicht inkludieren.'; $_lang['modx_configuration_file'] = 'MODX-Konfigurationsdatei'; @@ -203,7 +203,7 @@ $_lang['select'] = 'Auswählen'; $_lang['settings_handler_err_nf'] = 'MODX konnte die Klasse modInstallSettings in [[+path]] nicht finden. Bitte stellen Sie sicher, dass alle Dateien hochgeladen wurden.'; $_lang['setup_err_lock'] = 'Beim Versuch der Sperrung des Setups ist ein Fehler aufgetreten. Das Unterverzeichnis \'.locked\' konnte im Setup-Verzeichnis nicht angelegt werden.'; -$_lang['setup_err_remove'] = 'Beim Versuch, das Setup-Verzeichnis zu löschen, ist ein Fehler aufgetreten.'; +$_lang['setup_err_remove'] = 'Beim Versuch, das Setup-Verzeichnis zu entfernen, ist ein Fehler aufgetreten.'; $_lang['setup_err_assets'] = 'Das Verzeichnis assets/ konnte nicht in [[+path]] angelegt werden.
    Sie müssen dieses Verzeichnis anlegen und dafür sorgen, dass es beschreibbar ist, wenn Sie die Package-Verwaltung oder Komponenten von Drittanbietern verwenden möchten.'; $_lang['setup_err_assets_comp'] = 'Das Verzeichnis assets/components/ konnte nicht in [[+path]] angelegt werden.
    Sie müssen dieses Verzeichnis anlegen und dafür sorgen, dass es beschreibbar ist, wenn Sie die Package-Verwaltung oder Komponenten von Drittanbietern verwenden möchten.'; $_lang['setup_err_core_comp'] = 'Das Verzeichnis core/components/ konnte nicht in [[+path]] angelegt werden.
    Sie müssen dieses Verzeichnis anlegen und dafür sorgen, dass es beschreibbar ist, wenn Sie die Package-Verwaltung oder Komponenten von Drittanbietern verwenden möchten.'; diff --git a/setup/lang/de/upgrades.inc.php b/setup/lang/de/upgrades.inc.php index 0074e02c710..f28771917b9 100644 --- a/setup/lang/de/upgrades.inc.php +++ b/setup/lang/de/upgrades.inc.php @@ -18,12 +18,12 @@ $_lang['alter_usermessage_subject'] = 'modUserMessage: Feld `subject` von VARCHAR(60) in VARCHAR(255) geändert.'; $_lang['change_column'] = 'Feld `[[+old]]` in `[[+new]]` in der Tabelle [[+table]] geändert.'; $_lang['change_default_value'] = 'Standardwert für Spalte `[[+column]]` der Tabelle [[+table]] auf "[[+value]]" geändert.'; -$_lang['connector_acls_removed'] = 'ACLs des Connector-Kontexts gelöscht.'; -$_lang['connector_acls_not_removed'] = 'Konnte ACLs des Connector-Kontexts nicht löschen.'; +$_lang['connector_acls_removed'] = 'ACLs des Connector-Kontexts entfernt.'; +$_lang['connector_acls_not_removed'] = 'Konnte ACLs des Connector-Kontexts nicht entfernen.'; $_lang['connector_ctx_removed'] = ''; -$_lang['connector_ctx_not_removed'] = 'Konnte Connector-Kontext nicht löschen.'; +$_lang['connector_ctx_not_removed'] = 'Konnte Connector-Kontext nicht entfernen.'; $_lang['data_remove_error'] = 'Fehler beim Löschen der Daten für die Klasse `[[+class]]`.'; -$_lang['data_remove_success'] = 'Daten aus der Tabelle für die Klasse `[[+class]]` erfolgreich gelöscht.'; +$_lang['data_remove_success'] = 'Daten aus der Tabelle für die Klasse `[[+class]]` erfolgreich entfernt.'; $_lang['drop_column'] = 'Spalte `[[+column]]` von der Tabelle [[+table]] entfernt.'; $_lang['drop_index'] = 'Index `[[+index]]` von der Tabelle [[+table]] entfernt.'; $_lang['lexiconentry_createdon_null'] = 'modLexiconEntry: Feld `createdon` geändert, um NULL zu erlauben.'; @@ -43,10 +43,10 @@ $_lang['update_table_column_data'] = 'Daten in der Spalte [[+column]] der Tabelle [[+table]] ([[+class]]) aktualisiert.'; $_lang['iso_country_code_converted'] = 'Ländernamen in Benutzer-Profilen erfolgreich in ISO-Codes konvertiert.'; $_lang['legacy_cleanup_complete'] = 'Bereinigung der vorhandenen Dateien abgeschlossen.'; -$_lang['legacy_cleanup_count'] = '[[+files]] Datei(en) and [[+folders]] Verzeichnis(se) gelöscht.'; -$_lang['clipboard_flash_file_unlink_success'] = 'Flash-Datei für die \'In die Zwischenablage kopieren\'-Funktion erfolgreich entfernt.'; +$_lang['legacy_cleanup_count'] = '[[+files]] Datei(en) and [[+folders]] Verzeichnis(se) entfernt.'; +$_lang['clipboard_flash_file_unlink_success'] = 'Die Flash-Datei für die \'In die Zwischenablage kopieren\'-Funktion wurde erfolgreich entfernt.'; $_lang['clipboard_flash_file_unlink_failed'] = 'Fehler beim Löschen der Flash-Datei für die \'In die Zwischenablage kopieren\'-Funktion.'; -$_lang['clipboard_flash_file_missing'] = 'Flash-Datei für die \'In die Zwischenablage kopieren\'-Funktion bereits entfernt.'; +$_lang['clipboard_flash_file_missing'] = 'Die Flash-Datei für die \'In die Zwischenablage kopieren\'-Funktion wurde bereits entfernt.'; $_lang['system_setting_cleanup_success'] = 'System Einstellung `[[+key]]` entfernt.'; $_lang['system_setting_cleanup_failed'] = 'System Einstellung `[[+key]]` konnte nicht entfernt werden.'; $_lang['system_setting_update_xtype_success'] = 'Der xtype für die Systemeinstellung `[[+key]]` wurde erfolgreich von `[[+old_xtype]]` in `[[+new_xtype]]` geändert.'; diff --git a/setup/lang/es/default.inc.php b/setup/lang/es/default.inc.php index 5be52ddb8ee..9666047b24b 100644 --- a/setup/lang/es/default.inc.php +++ b/setup/lang/es/default.inc.php @@ -87,7 +87,7 @@ $_lang['failed'] = '¡Falló!'; $_lang['fatal_error'] = 'ERROR FATAL: el instalador de MODX no puede continuar.'; $_lang['home'] = 'Inicio'; -$_lang['congratulations'] = 'Congratulations!'; +$_lang['congratulations'] = '¡Felicidades!'; $_lang['img_banner'] = 'assets/images/img_banner.gif'; $_lang['img_box'] = 'assets/images/img_box.png'; $_lang['img_splash'] = 'assets/images/img_splash.gif'; @@ -147,8 +147,8 @@ $_lang['license_agree'] = 'Estoy de acuerdo con los términos establecidos en esta licencia.'; $_lang['license_agreement'] = 'Acuerdo de Licencia'; $_lang['license_agreement_error'] = 'Debes estar de acuerdo con la Licencia antes de continuar con la instalación.'; -$_lang['locked'] = 'MODX Setup is locked!'; -$_lang['locked_message'] = '

    You will need to remove the setup/.locked/ directory in order to proceed.

    '; +$_lang['locked'] = '¡El instalador de MODX está bloqueado!'; +$_lang['locked_message'] = '

    Necesitarás eliminar el directorio setup/.locked/ para continuar.

    '; $_lang['login'] = 'Entrar'; $_lang['modx_class_err_nf'] = 'No se pudo incluir el archivo de la clase MODX.'; $_lang['modx_configuration_file'] = 'Archivo de configuración de MODX'; @@ -177,8 +177,8 @@ $_lang['options_new_installation'] = 'Instalación Nueva'; $_lang['options_nocompress'] = 'Desactivar compresión CSS/JS'; $_lang['options_nocompress_note'] = 'Marcar si el panel de administración no funciona con la compresión CSS/JS activada.'; -$_lang['options_send_poweredby_header'] = 'Send X-Powered-By Header'; -$_lang['options_send_poweredby_header_note'] = 'When enabled, MODX will send the "X-Powered-By" header to identify this site as built on MODX. This helps tracking global MODX usage through third party trackers inspecting your site. Because this makes it easier to identify what your site is built with, it might pose a slightly increased security risk if a vulnerability is found in MODX.'; +$_lang['options_send_poweredby_header'] = 'Enviar encabezado X-Powered-By'; +$_lang['options_send_poweredby_header_note'] = 'Cuando está habilitado, MODX enviará la cabecera "X-Powered-By" para identificar este sitio como construido con MODX. Esto ayuda a rastrear el uso global de MODX a través de rastreadores de terceros que inspeccionen tu sitio. Dado que esto hace más fácil identificar con qué se construye tu sitio, podría plantear un riesgo de seguridad ligeramente mayor si se encuentra una vulnerabilidad en MODX.'; $_lang['options_title'] = 'Opciones de Instalación'; $_lang['options_upgrade_advanced'] = 'Actualización Avanzada
    (editar configuración de base de datos)'; $_lang['options_upgrade_advanced_note'] = 'Para administradores avanzados de base de datos o para mover a servidores de base de datos con un conjunto de caractéres diferente. Necesitarás conocer el nombre completo de la base de datos, el usuario, la contraseña y los detalles de conexión y cotejamiento.'; @@ -191,7 +191,7 @@ $_lang['password_err_invchars'] = 'Tu contraseña no puede contener caracteres inválidos, tales como /, \\, ', ", (, ) o {}.'; $_lang['password_err_nomatch'] = 'Las contraseñas no coinciden'; $_lang['password_err_ns'] = 'La contraseña está en blanco'; -$_lang['password_err_short'] = 'Your password must be at least [[+length]] characters long.'; +$_lang['password_err_short'] = 'Tu contraseña debe tener al menos [[+length]] caracteres '; $_lang['please_select_login'] = 'Por favor, pulsa el botón "Iniciar Sesión" para acceder a la interfaz de administración.'; $_lang['preinstall_failure'] = 'Se detectaron algunos problemas. Por favor, revisa las pruebas de pre-instalación que aparecen abajo, corrige los problemas y haz clic en "Probar" de nuevo.'; $_lang['preinstall_success'] = 'Las pruebas de pre-instalación se realizaron con éxito. Haz clic en "Instalar" abajo para continuar.'; @@ -202,7 +202,7 @@ $_lang['security_notice'] = 'Nota de Seguridad'; $_lang['select'] = 'Seleccionar'; $_lang['settings_handler_err_nf'] = 'MODX no pudo encontrar la clase modInstallSettings en: [[+path]]. Por favor, asegúrate de haber subido todos los archivos.'; -$_lang['setup_err_lock'] = 'An error occurred while trying lock setup. Could not create the .locked subdirectory inside the setup directory.'; +$_lang['setup_err_lock'] = 'Ocurrió un error mientras se intentaba bloquear el instalador. No se pudo crear el subdirectorio .locked dentro del directorio setup.'; $_lang['setup_err_remove'] = 'Ocurrió un error mientras se trataba de eliminar el directorio de instalación.'; $_lang['setup_err_assets'] = 'El directorio assets/ no pudo ser creado en: [[+path]]
    Se necesitará crear este directorio y permitir la escritura en el mismo para utilizar el Administrador de Paquetes o Componentes de Terceros.'; $_lang['setup_err_assets_comp'] = 'El directorio assets/components/ no pudo ser creado en: [[+path]]
    Se necesitará crear este directorio y permitir la escritura en el mismo para utilizar el Administrador de Paquetes o Componentes de Terceros.'; diff --git a/setup/lang/fr/default.inc.php b/setup/lang/fr/default.inc.php index e23ec6b1540..da64cb1b13a 100644 --- a/setup/lang/fr/default.inc.php +++ b/setup/lang/fr/default.inc.php @@ -10,13 +10,13 @@ $_lang['all'] = 'Tous'; $_lang['app_description'] = 'CMS et framework applicatif PHP'; $_lang['app_motto'] = 'MODX Créer et faire plus avec moins'; -$_lang['back'] = 'Previous'; +$_lang['back'] = 'Précédent'; $_lang['btn_test'] = 'Test'; $_lang['base_template'] = 'Modèle de base'; $_lang['cache_manager_err'] = 'Le gestionnaire de cache de MODX n\'a pas pu être chargé.'; $_lang['choose_language'] = 'Sélectionnez une langue'; -$_lang['all_languages'] = 'All languages'; -$_lang['only_popular'] = 'Only popular'; +$_lang['all_languages'] = 'Toutes les langues'; +$_lang['only_popular'] = 'Seulement populaire'; $_lang['cleanup_errors_title'] = 'Note importante:'; $_lang['cli_install_failed'] = 'Installation échouée! Erreurs: [[+errors]]'; $_lang['cli_no_config_file'] = 'MODX n\'a pu trouver le fichier de configuration (tel que config.xml) pour votre installation en CLI. Pour installer MODX depuis la ligne de commande, vous devez définir un fichier xml de configuration. Consultez la documentation officielle pour plus d\'information.'; @@ -28,7 +28,7 @@ $_lang['config_file_written'] = 'Fichier de configuration écrit avec succès.'; $_lang['config_key'] = 'Clé de configuration de MODX'; $_lang['config_key_change'] = 'Si vous souhaitez changer la clé de configuration de MODX, veuillez cliquer ici.'; -$_lang['config_key_override'] = 'If you wish to run setup on a configuration key other than the one currently specified in your setup/includes/config.core.php, please specify it below.'; +$_lang['config_key_override'] = 'Si vous souhaitez exécuter le setup sur une autre clé de configuration que celle actuellement spécifiée dans votre setup/includes/config.core.php, veuillez le spécifier ci-dessous.'; $_lang['config_not_writable_err'] = 'Vous avez tenté de modifier un règlage dans setup/includes/config.core.php mais le fichier n\'est pas accessible en écriture. Veuillez rendre le fichier accessible en écriture ou éditer le fichier manuellement.'; $_lang['connection_character_set'] = 'Jeu de caractère de connexion:'; $_lang['connection_collation'] = 'Collation :'; @@ -79,7 +79,7 @@ $_lang['db_test_conn_msg'] = 'Tester la connexion à la base de données et voir les collations.'; $_lang['default_admin_user'] = 'Administrateur par défaut'; $_lang['delete_setup_dir'] = 'Cochez pour SUPPRIMER le répertoire d\'installation.'; -$_lang['dir'] = 'ltr'; +$_lang['dir'] = 'ltr (de gauche à droite)'; $_lang['email_err_ns'] = 'Adresse email invalide'; $_lang['err_occ'] = 'Des erreurs se sont produites!'; $_lang['err_update_table'] = 'Erreur de mise à jour de la table pour la classe [[+class]]'; @@ -152,21 +152,21 @@ $_lang['license_agree'] = 'J\'accepte les termes et conditions de la licence.'; $_lang['license_agreement'] = 'Accord de Licence'; $_lang['license_agreement_error'] = 'Vous devez accepter la licence avant de poursuivre l\'installation.'; -$_lang['locked'] = 'MODX Setup is locked!'; -$_lang['locked_message'] = '

    You will need to remove the setup/.locked/ directory in order to proceed.

    '; +$_lang['locked'] = 'L\'installation de MODX est verrouillée !'; +$_lang['locked_message'] = '

    Vous devrez supprimer le répertoire setup/.locked/ pour continuer.

    '; $_lang['login'] = 'Connexion'; $_lang['modx_class_err_nf'] = 'Impossible d\'inclure la classe de fichier MODX.'; $_lang['modx_configuration_file'] = 'Fichier de configuration de MODX'; $_lang['modx_err_instantiate'] = 'Impossible d\'instancier la classe MODX.'; $_lang['modx_err_instantiate_mgr'] = 'Impossible d\'initialiser le contexte du gestionnaire de MODX.'; -$_lang['modx_footer1'] = '© 2005-[[+current_year]] the MODX Content Management Framework (CMF) project. All rights reserved. MODX is licensed under the GNU GPL.'; +$_lang['modx_footer1'] = '© 2005-[[+current_year]] Le projet de Framework de Gestion de Contenu (CMF) MODX. Tous droits réservés. MODX est licencié sous GNU GPL.'; $_lang['modx_footer2'] = 'MODX est un logiciel libre. Nous vous encourageons à être créatif et utiliser MODX de la façon qui vous convient. Si vous effectuez des changements et décidez de redistribuer votre version modifiée de MODX, faites seulement en sorte de garder le code source libre!'; $_lang['modx_install'] = 'Installation de MODX'; $_lang['modx_install_complete'] = 'Installation de MODX terminée'; $_lang['modx_object_err'] = 'L\'objet MODX n\'a pas pu être chargé.'; $_lang['next'] = 'Suivant'; $_lang['none'] = 'Aucun'; -$_lang['ok'] = 'OK!'; +$_lang['ok'] = 'OK !'; $_lang['options_core_inplace'] = 'Les fichiers sont déjà en place
    (Recommendé pour une installation sur serveur mutualisé.)'; $_lang['options_core_inplace_note'] = 'Cochez ceci si vous avez exporté MODX du dépôt Git ou vous l\'avez extrait de l\'archive complète vers le serveur, avant installation.'; $_lang['options_core_unpacked'] = 'Le paquet du noyau à été dépaqueté manuellement
    (Recommandé pour une installation sur serveur mutualisé.)'; @@ -196,7 +196,7 @@ $_lang['password_err_invchars'] = 'Votre mot de passe ne peut pas contenir de caractères invalides, tels que /, \\, ', ", (, ) ou {}.'; $_lang['password_err_nomatch'] = 'Mot de passe différent'; $_lang['password_err_ns'] = 'Mot de passe vide'; -$_lang['password_err_short'] = 'Your password must be at least [[+length]] characters long.'; +$_lang['password_err_short'] = 'Le mot de passe doit comporter au minimum %length% caractères.'; $_lang['please_select_login'] = 'Veuillez sélectionner le bouton "Connexion" pour accéder à l\'interface de gestion.'; $_lang['preinstall_failure'] = 'Des problèmes sont survenus. Veuillez vérifier les tests de pré-installation ci-dessous, corriger les problèmes comme conseillé et cliquer sur Tester de nouveau.'; $_lang['preinstall_success'] = 'Tests de pré-installation passés avec succès. Cliquez sur Installer pour continuer.'; @@ -207,20 +207,20 @@ $_lang['security_notice'] = 'Notice de sécurité'; $_lang['select'] = 'Sélectionner'; $_lang['settings_handler_err_nf'] = 'MODX ne trouve pas la classe modInstallSettings dans : [[+path]]. Veuillez vérifier que vous avez bien déposé tous les fichiers.'; -$_lang['setup_err_lock'] = 'An error occurred while trying lock setup. Could not create the .locked subdirectory inside the setup directory.'; +$_lang['setup_err_lock'] = 'Une erreur s\'est produite lors de la tentative de verrouillage de l\'installation. Impossible de créer le sous-répertoire .locked dans le répertoire d\'installation.'; $_lang['setup_err_remove'] = 'Une erreur est survenue lors de la suppression du répertoire d\'installation.'; $_lang['setup_err_assets'] = 'Votre répertoire assets/ n\'a pas été créé dans: [[+path]]
    Vous allez devoir créer ce répertoire et le rendre accessible en écriture si vous souahitez utiliser le Gestionnaire de Paquets ou des Composants tierces.'; $_lang['setup_err_assets_comp'] = 'Votre répertoire assets/components/ n\'a pas été créé dans: [[+path]]
    Vous allez devoir créer ce répertoire et le rendre accessible en écriture si vous souahitez utiliser le Gestionnaire de Paquets ou des Composants tierces.'; $_lang['setup_err_core_comp'] = 'Votre répertoire core/components/ n\'a pas été créé dans: [[+path]]
    Vous allez devoir créer ce répertoire et le rendre accessible en écriture si vous souahitez utiliser le Gestionnaire de Paquets ou des Composants tierces.'; $_lang['skip_to_bottom'] = 'Dérouler jusqu\'en bas'; -$_lang['step_welcome'] = 'Welcome'; +$_lang['step_welcome'] = 'Bienvenue'; $_lang['step_options'] = 'Options'; -$_lang['step_connect'] = 'Connect'; +$_lang['step_connect'] = 'Connexion'; $_lang['step_test'] = 'Test'; $_lang['step_contexts'] = 'Contextes'; $_lang['step_install'] = 'Installer'; -$_lang['step_complete'] = 'Complete'; -$_lang['modx_installer'] = 'MODX Installer'; +$_lang['step_complete'] = 'Terminé'; +$_lang['modx_installer'] = 'Installation de MODX'; $_lang['success'] = 'Succès'; $_lang['table_created'] = 'Table créée avec succès pour la classe [[+class]]'; $_lang['table_err_create'] = 'Une erreur est survenue lors de la création de la table pour la classe [[+class]]'; @@ -232,7 +232,7 @@ $_lang['toggle'] = 'Basculer/Afficher'; $_lang['toggle_success'] = 'Afficher les messages de réussite'; $_lang['toggle_warnings'] = 'Afficher les avertissements'; -$_lang['upgrade_version_unsupported'] = 'Upgrading from MODX [[+version]] is not supported by this release. You will need to upgrade to MODX 2.6 or later before upgrading to this release.'; +$_lang['upgrade_version_unsupported'] = 'La mise à jour de MODX [[+version]] n\'est pas prise en charge par cette version. Vous devrez mettre à jour vers MODX 2.6 ou plus avant la mise à jour vers cette version.'; $_lang['username_err_invchars'] = 'Votre nom d\'utilisateur ne peut pas contenir de caractères invalides tels que /, \\, ', ", ou {}.'; $_lang['username_err_ns'] = 'Nom d\'utilisateur invalide'; $_lang['version'] = 'version'; diff --git a/setup/lang/fr/drivers.inc.php b/setup/lang/fr/drivers.inc.php index 2e215a3b39b..f1417c3fde2 100644 --- a/setup/lang/fr/drivers.inc.php +++ b/setup/lang/fr/drivers.inc.php @@ -16,5 +16,5 @@ $_lang['mysql_version_server_start'] = 'Vérification de la version de MySQL server:'; $_lang['mysql_version_success'] = 'OK! Version: [[+version]]'; -$_lang['sqlsrv_version_success'] = 'OK!'; -$_lang['sqlsrv_version_client_success'] = 'OK!'; \ No newline at end of file +$_lang['sqlsrv_version_success'] = 'OK !'; +$_lang['sqlsrv_version_client_success'] = 'OK !'; \ No newline at end of file diff --git a/setup/lang/fr/languages.inc.php b/setup/lang/fr/languages.inc.php index de3f85d41a3..a4f778c4ef2 100644 --- a/setup/lang/fr/languages.inc.php +++ b/setup/lang/fr/languages.inc.php @@ -1,33 +1,33 @@ '; $_lang['license_agree'] = 'Ik ga akkoord met de voorwaarden vermeld in de licentie.'; -$_lang['license_agreement'] = 'Licentie Overeenkomst'; +$_lang['license_agreement'] = 'Licentieovereenkomst'; $_lang['license_agreement_error'] = 'Je moet akkoord gaan met de licentie voordat je verder kunt met de installatie.'; -$_lang['locked'] = 'MODX Setup is locked!'; +$_lang['locked'] = 'MODX Installatie is vergrendeld!'; $_lang['locked_message'] = '

    You will need to remove the setup/.locked/ directory in order to proceed.

    '; $_lang['login'] = 'Aanmelden'; $_lang['modx_class_err_nf'] = 'Kan het MODX class bestand niet inladen.'; @@ -187,8 +187,8 @@ $_lang['package_execute_err_retrieve'] = 'De installatie faalt omdat MODX [[+path]]packages/core.transport.zip niet kan uitpakken. Controleer dat [[+path]]packages/core.transport.zip bestaat en schrijfbaar is en dat je de map [[+path]]packages/ schrijfbaar is.'; $_lang['package_err_install'] = 'Kan pakket [[+package]] niet installeren.'; $_lang['package_err_nf'] = 'Kan de installatie voor pakket [[+package]] niet vinden.'; -$_lang['package_installed'] = 'Pakket [[+package]] succesvol ge�nstalleerd.'; -$_lang['password_err_invchars'] = 'Jouw wachtwoord mag geen ongeldige karakters bevatten, zoals /, \\, \', ", (, ) or {}.'; +$_lang['package_installed'] = 'Pakket [[+package]] succesvol geïnstalleerd.'; +$_lang['password_err_invchars'] = 'Jouw wachtwoord mag geen ongeldige tekens bevatten, zoals /, \\, \', ", (, ) or {}.'; $_lang['password_err_nomatch'] = 'Komt niet overeen met wachtwoord'; $_lang['password_err_ns'] = 'Wachtwoord is leeg'; $_lang['password_err_short'] = 'Je wachtwoord moet ten minste [[+length]] karakters lang zijn.'; @@ -202,7 +202,7 @@ $_lang['security_notice'] = 'Beveiligingsmelding'; $_lang['select'] = 'Selecteer'; $_lang['settings_handler_err_nf'] = 'MODX kon de modInstallSettings class niet vinden in: [[+path]]. Controleer of alle bestanden geupload zijn.'; -$_lang['setup_err_lock'] = 'An error occurred while trying lock setup. Could not create the .locked subdirectory inside the setup directory.'; +$_lang['setup_err_lock'] = 'Er is een fout opgetreden tijdens het vergrendelen van de installatie. Kan de submap .locked niet aanmaken in de setup-map.'; $_lang['setup_err_remove'] = 'Er is een fout opgetreden tijdens het verwijderen van de setup/ map.'; $_lang['setup_err_assets'] = 'Jouw assets/ map was niet gemaakt in: [[+path]]
    Je zult deze map zelf moeten aanmaken en schrijfbaar moeten maken als je de Pakket Manager of componenten van derden wilt gebruiken.'; $_lang['setup_err_assets_comp'] = 'Jouw assets/components/ map was niet gemaakt in: [[+path]]
    Je zult deze map zelf moeten aanmaken en schrijfbaar moeten maken als je de Pakket Manager of componenten van derden wilt gebruiken.'; @@ -217,7 +217,7 @@ $_lang['step_complete'] = 'Complete'; $_lang['modx_installer'] = 'MODX Installer'; $_lang['success'] = 'Succes'; -$_lang['table_created'] = 'Tabel met succes gemaakt voor class [[+class]]'; +$_lang['table_created'] = 'Tabel succesvol aangemaakt voor class [[+class]]'; $_lang['table_err_create'] = 'Fout bij het maken van de tabel voor class [[+class]]'; $_lang['table_updated'] = 'Tabel met succes geupdate voor class [[+class]]'; $_lang['test_class_nf'] = 'Kan de Installatie Test class niet vinden in: [[+path]]
    Controleer of je alle nodige bestanden hebt geupload.'; @@ -228,8 +228,8 @@ $_lang['toggle_success'] = 'Switch succes berichten'; $_lang['toggle_warnings'] = 'Switch fouten'; $_lang['upgrade_version_unsupported'] = 'Upgrading from MODX [[+version]] is not supported by this release. You will need to upgrade to MODX 2.6 or later before upgrading to this release.'; -$_lang['username_err_invchars'] = 'Jouw gebruikersnaam mag geen ongeldige karakters bevatten, zoals /, \\, ', ", or {}.'; -$_lang['username_err_ns'] = 'Gebruikersnaam is ongeldgi'; +$_lang['username_err_invchars'] = 'Jouw gebruikersnaam mag geen ongeldige tekens bevatten, zoals /, \\, \', ", or {}.'; +$_lang['username_err_ns'] = 'Gebruikersnaam is ongeldig'; $_lang['version'] = 'versie'; $_lang['warning'] = 'Fout'; $_lang['welcome'] = 'Welkom in het MODX installatie programma.'; @@ -260,7 +260,7 @@ $_lang['test_directory_writable'] = 'Controleer of [[+dir]] map schrijfbaar is: '; $_lang['test_memory_limit'] = 'Controleer of de memory_limit is ingesteld op 24M: '; $_lang['test_memory_limit_fail'] = 'MODX heeft de memory_limit instelling gevonden maar is lager dan de aanbevolen 24M. MODX heeft geprobeerd de memory_limit naar 24M in te stellen, maar dat was onsuccesvol. Stel de memory_limit op 24M of hoger in, in jouw php.ini bestand voordat je doorgaat.'; -$_lang['test_php_version_fail'] = 'Je gebruikt PHP versie [[+version]], en MODX Revolution eist PHP 4.3.0 of hoger'; +$_lang['test_php_version_fail'] = 'Je gebruikt PHP versie [[+version]], en MODX Revolution vereist PHP 4.3.0 of hoger'; $_lang['test_php_version_sn'] = 'Daar waar MODX zal werken op jouw PHP versie ([[+version]]), gebruik van deze versie is niet aan te raden. Jouw versie van PHP is kwetsbaarder vanwege veiligbeidslekken. Upgrade naar PHP versie 4.3.11 of hoger, welke deze lekken dicht. Het is aan te raden om te upgraden naar deze versie voor de veiligheid van jouw eigen website.'; $_lang['test_php_version_start'] = 'Controle PHP versie:'; $_lang['test_sessions_start'] = 'Controleren of sessies goed geconfigureerd zijn:'; diff --git a/setup/lang/uk/default.inc.php b/setup/lang/uk/default.inc.php index 2feb79fc6ac..ffcdf09e822 100644 --- a/setup/lang/uk/default.inc.php +++ b/setup/lang/uk/default.inc.php @@ -28,7 +28,7 @@ $_lang['config_file_written'] = 'Конфігураційний файл був успішно записаний.'; $_lang['config_key'] = 'MODX конфігурації ключ'; $_lang['config_key_change'] = 'Якщо Ви бажаєте змінити ключ конфігурації MODX, будь ласка, натисніть тут.'; -$_lang['config_key_override'] = 'If you wish to run setup on a configuration key other than the one currently specified in your setup/includes/config.core.php, please specify it below.'; +$_lang['config_key_override'] = 'Якщо Ви хочете запустити установку з ключем конфігурації, відмінним від заданого за замовчуванням у вашому
    setup/includes/config.core.php
    , будь ласка, вкажіть його нижче.'; $_lang['config_not_writable_err'] = 'Здійснено спробу змінити налаштування в setup/includes/config.core.php, але файл не є записуваним. Зробіть файл відкритим для запису або відредагуйте файл вручну перед продовженням.'; $_lang['connection_character_set'] = 'Кодування символів підключення:'; $_lang['connection_collation'] = 'Співставлення:'; @@ -154,7 +154,7 @@ $_lang['modx_configuration_file'] = 'Конфігураційний файл MODX'; $_lang['modx_err_instantiate'] = 'Не вдалося створити об\'єкт класу MODX.'; $_lang['modx_err_instantiate_mgr'] = 'Не вдалося ініціалізувати контекст менеджера MODX.'; -$_lang['modx_footer1'] = '© 2005-[[+current_year]] the MODX Content Management Framework (CMF) project. All rights reserved. MODX is licensed under the GNU GPL.'; +$_lang['modx_footer1'] = '© 2005-[[+current_year]] для MODX Content Management Framework (CMF). Всі права захищені. MODX розповсюджується за ліцензією GNU GPL.'; $_lang['modx_footer2'] = 'MODX is free software. We encourage you to be creative and make use of MODX in any way you see fit. Just make sure that if you do make changes and decide to redistribute your modified MODX, that you keep the source code free!'; $_lang['modx_install'] = 'Встановлення MODX'; $_lang['modx_install_complete'] = 'Встановлення MODX завершено'; @@ -210,7 +210,7 @@ $_lang['skip_to_bottom'] = 'прокрутити вниз'; $_lang['step_welcome'] = 'Ласкаво просимо'; $_lang['step_options'] = 'Опції'; -$_lang['step_connect'] = 'Connect'; +$_lang['step_connect'] = 'Підключення'; $_lang['step_test'] = 'Перевірка'; $_lang['step_contexts'] = 'Контексти'; $_lang['step_install'] = 'Встановити'; diff --git a/setup/lang/uk/drivers.inc.php b/setup/lang/uk/drivers.inc.php index c073132978d..e90ca3ed574 100644 --- a/setup/lang/uk/drivers.inc.php +++ b/setup/lang/uk/drivers.inc.php @@ -6,7 +6,7 @@ * @subpackage lexicon */ $_lang['mysql_err_ext'] = 'MODX потребує розширення mysql для PHP, і, схоже, воно не було завантажено.'; -$_lang['mysql_err_pdo'] = 'MODX requires the pdo_mysql driver when native PDO is being used and it does not appear to be loaded.'; +$_lang['mysql_err_pdo'] = 'MODX вимагає pdo_mysql драйвер, коли використовується PHP з власним PDO, і він не був завантажений. '; $_lang['mysql_version_5051'] = 'MODX матиме проблеми з Вашою версією MySQL ([[+version]]), що зумовлено численними помилками, пов\'язаними з роботою драйвера PDO у цій версії. Будь ласка, оновіть MySQL для вирішення цих проблем. Навіть якщо Ви не будете використовувати MODX, ми рекомендуємо Вам оновити до цієї версії для підвищення стабільності і безпеки Вашого сайту.'; $_lang['mysql_version_client_nf'] = 'MODX не вдалося визначити версію Вашого MySQL-клієнта за допомогою функції mysql_get_client_info(). Будь ласка, перед тим, як продовжити, переконайтеся власноруч, що версія Вашого MySQL-клієнта не нижче 4.1.20.'; $_lang['mysql_version_client_start'] = 'Перевірка версії MySQL-клієнта:'; diff --git a/setup/lang/uk/languages.inc.php b/setup/lang/uk/languages.inc.php index 403ab931b84..a9f5c9e24a7 100644 --- a/setup/lang/uk/languages.inc.php +++ b/setup/lang/uk/languages.inc.php @@ -10,24 +10,24 @@ $_lang['language_en'] = 'Англійська'; $_lang['language_es'] = 'Іспанська'; $_lang['language_et'] = 'Естонська'; -$_lang['language_fa'] = 'Persian'; -$_lang['language_fi'] = 'Finnish'; +$_lang['language_fa'] = 'Перська'; +$_lang['language_fi'] = 'Фінська'; $_lang['language_fr'] = 'Французька'; -$_lang['language_he'] = 'Hebrew'; -$_lang['language_hi'] = 'Hindi'; -$_lang['language_hu'] = 'Hungarian'; -$_lang['language_id'] = 'Indonesian'; -$_lang['language_it'] = 'Italian'; +$_lang['language_he'] = 'Іврит'; +$_lang['language_hi'] = 'Хінді'; +$_lang['language_hu'] = 'Угорська'; +$_lang['language_id'] = 'Індонезійська'; +$_lang['language_it'] = 'Італійська'; $_lang['language_ja'] = 'Японська'; -$_lang['language_nl'] = 'Dutch'; +$_lang['language_nl'] = 'Голандська'; $_lang['language_pl'] = 'Польська'; $_lang['language_pt'] = 'Португальська'; -$_lang['language_pt-br'] = 'Portuguese Brazilian'; -$_lang['language_ro'] = 'Romanian'; -$_lang['language_ru'] = 'Russian'; -$_lang['language_sv'] = 'Swedish'; -$_lang['language_th'] = 'Thai'; -$_lang['language_tr'] = 'Turkish'; +$_lang['language_pt-br'] = 'Португальська (Бразилія)'; +$_lang['language_ro'] = 'Румунська'; +$_lang['language_ru'] = 'Росiйська'; +$_lang['language_sv'] = 'Шведська'; +$_lang['language_th'] = 'Тайська'; +$_lang['language_tr'] = 'Турецька'; $_lang['language_uk'] = 'Українська'; -$_lang['language_yo'] = 'Yoruba'; +$_lang['language_yo'] = 'Йоруба'; $_lang['language_zh'] = 'Китайська спрощений правопис'; diff --git a/setup/lang/uk/preload.inc.php b/setup/lang/uk/preload.inc.php index b7a7a689d9b..465128fbe7b 100644 --- a/setup/lang/uk/preload.inc.php +++ b/setup/lang/uk/preload.inc.php @@ -5,6 +5,6 @@ * @package setup * @subpackage lexicon */ -$_lang['preload_err_cache'] = 'Make sure your [[+path]]cache directory exists and is writable by the PHP process.'; -$_lang['preload_err_core_path'] = 'Make sure you have specified a valid MODX_CORE_PATH in your setup/includes/config.core.php file; this must point to a working MODX core.'; -$_lang['preload_err_pdo'] = 'MODX requires the PDO extension when native PDO is being used, and it does not appear to be loaded.'; +$_lang['preload_err_cache'] = 'Переконайтеся, що [[+path]] cache каталог існує і доступний для запису процесам PHP. '; +$_lang['preload_err_core_path'] = 'Переконайтеся, що у файлі setup/includes/config.core.php правильно визначен MODX_CORE_PATH. Вон повинен вказувати на ядро MODX.'; +$_lang['preload_err_pdo'] = 'MODX вимагає розширення "PDO" при використанні PHP без власного PDO, і воно не було завантажено. '; diff --git a/setup/lang/uk/test.inc.php b/setup/lang/uk/test.inc.php index 0f2773f7e13..2c88a28f692 100644 --- a/setup/lang/uk/test.inc.php +++ b/setup/lang/uk/test.inc.php @@ -10,9 +10,9 @@ $_lang['test_db_check'] = 'Створення підключення до бази даних: '; $_lang['test_db_check_conn'] = 'Перевірте параметри підключення і повторіть спробу.'; $_lang['test_db_failed'] = 'Не вдалося встановити з\'єднання з базою даних!'; -$_lang['test_db_setup_create'] = 'Setup will attempt to create the database.'; +$_lang['test_db_setup_create'] = 'Буде зроблена спроба створити базу даних. '; $_lang['test_dependencies'] = 'Перевірка PHP-розширення zlib: '; -$_lang['test_dependencies_fail_zlib'] = 'Your PHP installation does not have the "zlib" extension installed. This extension is necessary for MODX to run. Please enable it to continue.'; +$_lang['test_dependencies_fail_zlib'] = 'У вашій установці PHP не встановлено розширення "zlib". Це розширення необхідне для роботи MODX. Будь ласка, активуйте його, щоб продовжити.'; $_lang['test_directory_exists'] = 'Перевірка існування каталогу [[+dir]]: '; $_lang['test_directory_writable'] = 'Перевірка можливості запису до каталога [[+dir]] : '; $_lang['test_memory_limit'] = 'Перевірка виділеної пам\'яті (повинно бути не менше 24М): '; @@ -43,9 +43,9 @@ $_lang['test_suhosin_max_length'] = 'Максимальне значення Suhosin GET занадто низьке!'; $_lang['test_suhosin_max_length_err'] = 'Ви використовуєте доповнення PHP Suhosin, і Ваше значення suhosin.get.max_value_length занадто низьке для того, щоб MODX міг правильно стискати JS-файли у менеджері. MODX рекомендує підняти це значення до 4096, а поки що MODX автоматично встановить стиснення JS (параметр compress_js) у 0 для запобігання виникнення помилок.'; $_lang['test_table_prefix'] = 'Перевірка префіксу таблиць `[[+prefix]]`: '; -$_lang['test_table_prefix_inuse'] = 'Table prefix is already in use in this database!'; -$_lang['test_table_prefix_inuse_desc'] = 'Setup couldn\'t install into the selected database, as it already contains tables with the prefix you specified. Please choose a new table_prefix, and run Setup again.'; +$_lang['test_table_prefix_inuse'] = 'У базі даних вже використовується префікс таблиці!'; +$_lang['test_table_prefix_inuse_desc'] = 'Встановлення не вдалося встановити в вибрану базу даних, оскільки вона вже містить таблиці із вказаним префіксом. Будь ласка, виберіть новий table_prefix, і спробуйте виконати інсталяцію.'; $_lang['test_table_prefix_nf'] = 'У базі даних немає такого префіксу!'; -$_lang['test_table_prefix_nf_desc'] = 'Setup couldn\'t install into the selected database, as it does not contain existing tables with the prefix you specified to be upgraded. Please choose an existing table_prefix, and run Setup again.'; +$_lang['test_table_prefix_nf_desc'] = 'Налаштування не вдалося встановити у вибрану базу даних, оскільки вона не містить існуючих таблиць із префіксом, який ви вказали для оновлення. Виберіть існуючий префікс table_prefix і запустіть програму інсталяції ще раз. '; $_lang['test_zip_memory_limit'] = 'Перевірка виділеної пам\'яті для zip-розширень (повинно бути не менше 24М): '; -$_lang['test_zip_memory_limit_fail'] = 'MODX found your memory_limit setting to be below the recommended setting of 24M. MODX attempted to set the memory_limit to 24M, but was unsuccessful. Please set the memory_limit setting in your php.ini file to 24M or higher before proceeding, so that the zip extensions can work properly.'; \ No newline at end of file +$_lang['test_zip_memory_limit_fail'] = 'MODX встановив значення memory_limit нижче рекомендованого встановлення 24M. MODX намагався встановити memory_limit у 24M, але це не вдалося. Будь ласка, встановіть параметр memory_limit у файлі php.ini на 24M або вище перед продовженням, щоб розширення zip працювало належним чином.'; \ No newline at end of file diff --git a/setup/lang/uk/upgrades.inc.php b/setup/lang/uk/upgrades.inc.php index 36f56d7ff7f..fe9cfc4e58a 100644 --- a/setup/lang/uk/upgrades.inc.php +++ b/setup/lang/uk/upgrades.inc.php @@ -5,45 +5,45 @@ * @package setup * @subpackage lexicon */ -$_lang['add_column'] = 'Added new `[[+column]]` column to [[+table]].'; -$_lang['add_index'] = 'Added new index on `[[+index]]` for table [[+table]].'; -$_lang['alter_column'] = 'Modified column `[[+column]]` in table [[+table]].'; -$_lang['add_moduser_classkey'] = 'Added class_key field to support modUser derivatives.'; -$_lang['added_cachepwd'] = 'Added cachepwd field missing in early Revolution releases.'; -$_lang['added_content_ft_idx'] = 'Added new `content_ft_idx` full-text index on the fields `pagetitle`, `longtitle`, `description`, `introtext`, `content`.'; -$_lang['allow_null_properties'] = 'Fixing allow null for `[[+class]]`.`properties`.'; -$_lang['alter_activeuser_action'] = 'Modified modActiveUser `action` field to allow longer action labels.'; -$_lang['alter_usermessage_messageread'] = 'Changed modUserMessage `messageread` field to `read`.'; -$_lang['alter_usermessage_postdate'] = 'Changed modUserMessage `postdate` field from an INT to a DATETIME and to name `date_sent`.'; -$_lang['alter_usermessage_subject'] = 'Changed modUserMessage `subject` field from VARCHAR(60) to VARCHAR(255).'; -$_lang['change_column'] = 'Changed `[[+old]]` field to `[[+new]]` on table [[+table]].'; -$_lang['change_default_value'] = 'Changed default value for column `[[+column]]` to "[[+value]]" on table [[+table]].'; -$_lang['connector_acls_removed'] = 'Removed connector context ACLs.'; -$_lang['connector_acls_not_removed'] = 'Could not remove connector context ACLs.'; +$_lang['add_column'] = 'Додано новий стовпець `[[+column]]` в таблицю `[[+table]]`. '; +$_lang['add_index'] = 'Додано новий індекс `[[+index]]` для таблиці `[[+table]]`. '; +$_lang['alter_column'] = 'Змінено стовпець `[[+column]]` в таблиці `[[+table]]`. '; +$_lang['add_moduser_classkey'] = 'Додано поле `class_key` для підтримки похідних від `modUser` '; +$_lang['added_cachepwd'] = 'Додано поле `cachepwd`, втрачене в попередніх релізах MODX. '; +$_lang['added_content_ft_idx'] = 'Додано новий повнотекстовий індекс `content_ft_idx` в наступні поля: `pagetitle`, `longtitle`,` description`, `introtext`,` content`. '; +$_lang['allow_null_properties'] = 'Виправлено можливе значення NULL у `[[+class]]` .`properties`. '; +$_lang['alter_activeuser_action'] = 'Збільшена можлива довжина значення поля `action` в` modActiveUser`. '; +$_lang['alter_usermessage_messageread'] = 'У таблиці `modUserMessage` поле `messageread` замінено на `read`. '; +$_lang['alter_usermessage_postdate'] = 'У таблиці `modUserMessage` у поля `postdate` змінений тип з INT на DATETIME і перейменовано в `date_sent`. '; +$_lang['alter_usermessage_subject'] = 'У таблиці `modUserMessage` у поля `subject` змінений тип з VARCHAR (60) на VARCHAR (255). '; +$_lang['change_column'] = 'Змінено поле `[[+old]]` на `[[+new]]` в таблиці `[[+table]]`. '; +$_lang['change_default_value'] = 'Змінено значення за замовчуванням в полі `[[+column]]` на «[[+value]]» в таблиці `[[+table]]`. '; +$_lang['connector_acls_removed'] = 'Прибрано списки доступу (ACL) у контекстного коннектора. '; +$_lang['connector_acls_not_removed'] = 'Прибрати списки доступу (ACL) у контекстного коннектора не вдалося. '; $_lang['connector_ctx_removed'] = ''; -$_lang['connector_ctx_not_removed'] = 'Could not remove connector context.'; -$_lang['data_remove_error'] = 'Error removing data for class `[[+class]]`.'; -$_lang['data_remove_success'] = 'Successfully removed data from table for class `[[+class]]`.'; -$_lang['drop_column'] = 'Dropped column `[[+column]]` on table [[+table]].'; -$_lang['drop_index'] = 'Dropped index `[[+index]]` on table [[+table]].'; -$_lang['lexiconentry_createdon_null'] = 'Changed modLexiconEntry `createdon` to allow NULL.'; -$_lang['lexiconentry_focus_alter'] = 'Changed modLexiconEntry `focus` from VARCHAR(100) to INT(10).'; -$_lang['lexiconentry_focus_alter_int'] = 'Updated modLexiconEntry `focus` column data from string to new int foreign key from modLexiconTopic.'; -$_lang['lexiconfocus_add_id'] = 'Added modLexiconFocus `id` column.'; -$_lang['lexiconfocus_add_pk'] = 'Added modLexiconFocus PRIMARY KEY to `id` column.'; -$_lang['lexiconfocus_alter_pk'] = 'Changed modLexiconFocus `name` from PRIMARY KEY to UNIQUE KEY'; -$_lang['lexiconfocus_drop_pk'] = 'Dropped modLexiconFocus PRIMARY KEY.'; -$_lang['modify_column'] = 'Modified column `[[+column]]` from `[[+old]]` to `[[+new]]` on table [[+table]]'; -$_lang['rename_column'] = 'Renamed column `[[+old]]` to `[[+new]]` on table [[+table]].'; -$_lang['rename_table'] = 'Renamed table `[[+old]]` to `[[+new]]`.'; -$_lang['remove_fulltext_index'] = 'Removed full-text index `[[+index]]`.'; -$_lang['systemsetting_xtype_fix'] = 'Successfully fixed xtypes for modSystemSettings.'; -$_lang['transportpackage_manifest_text'] = 'Modified column `manifest` to TEXT from MEDIUMTEXT on `[[+class]]`.'; -$_lang['update_closure_table'] = 'Updating closure table data for class `[[+class]]`.'; -$_lang['update_table_column_data'] = 'Updated data in column [[+column]] of table [[+table]] ( [[+class]] )'; -$_lang['iso_country_code_converted'] = 'Successfully converted user profile country names to ISO codes.'; -$_lang['legacy_cleanup_complete'] = 'Legacy file clean up complete.'; -$_lang['legacy_cleanup_count'] = 'Removed [[+files]] file(s) and [[+folders]] folder(s).'; +$_lang['connector_ctx_not_removed'] = 'Прибрати контекстний коннектор не вдалося.'; +$_lang['data_remove_error'] = 'Помилка видалення даних для класу `[[+class]]`.'; +$_lang['data_remove_success'] = 'Дані для класу `[[+class]]` з таблиці успішно видалені. '; +$_lang['drop_column'] = 'Вилучений стовпець `[[+column]]` в таблиці `[[+table]]`. '; +$_lang['drop_index'] = 'Вилучений індекс `[[+index]]` в таблиці `[[+table]]`. '; +$_lang['lexiconentry_createdon_null'] = 'Додана можливість приймати значення NULL для поля `createdon` в `modLexiconEntry`. '; +$_lang['lexiconentry_focus_alter'] = 'Змінено тип поля `focus` в` modLexiconEntry` з VARCHAR (100) на INT (10). '; +$_lang['lexiconentry_focus_alter_int'] = 'Оновлені дані в поле `focus` в `modLexiconEntry` зі строкових на нове ціле значення ключа з `modLexiconTopic`. '; +$_lang['lexiconfocus_add_id'] = 'Додано поле `id` в `modLexiconFocus`. '; +$_lang['lexiconfocus_add_pk'] = 'Додан PRIMARY KEY до полю `id` в `modLexiconFocus`. '; +$_lang['lexiconfocus_alter_pk'] = 'Ключ поля `name` в таблиці `modLexiconFocus` змінений з PRIMARY KEY на UNIQUE KEY '; +$_lang['lexiconfocus_drop_pk'] = 'Вилучений PRIMARY KEY у таблиці `modLexiconFocus`. '; +$_lang['modify_column'] = 'Змінено стовпець `[[+column]]` з `[[+old]]` на `[[+new]]` в таблиці `[[+table]]` '; +$_lang['rename_column'] = 'Перейменований стовпець `[[+old]]` на `[[+new]]` в таблиці `[[+table]]`.'; +$_lang['rename_table'] = 'Таблиця `[[+old]]` перейменована в `[[+new]]`. '; +$_lang['remove_fulltext_index'] = 'Вилучений повнотекстовий індекс `[[+index]]`. '; +$_lang['systemsetting_xtype_fix'] = 'Успішно виправлені xtype в `modSystemSettings`.'; +$_lang['transportpackage_manifest_text'] = 'Змінено стовпець `manifest` на TEXT з MEDIUMTEXT в` [[+class]] `. '; +$_lang['update_closure_table'] = 'Оновлення закритою таблиці даних для класу `[[+class]]`.'; +$_lang['update_table_column_data'] = 'Оновлені дані в стовпці `[[+column]]` в таблиці `[[+table]]` (`[[+class]]`)'; +$_lang['iso_country_code_converted'] = 'Назви країн в профілі користувача успішно перетворені в коди ISO. '; +$_lang['legacy_cleanup_complete'] = 'Очищення застарілих файлів завершена.'; +$_lang['legacy_cleanup_count'] = 'Вилучені [[+files]] файл(и) і [[+folders]] каталог(і). '; $_lang['clipboard_flash_file_unlink_success'] = 'Успішно видалена копія в флеш-файлі в буфері обміну.'; $_lang['clipboard_flash_file_unlink_failed'] = 'Помилка видалення копії в флеш-файлі буфера обміну.'; $_lang['clipboard_flash_file_missing'] = 'Флеш-файл буфера обміну вже видалений.'; diff --git a/setup/provisioner/bootstrap.php b/setup/provisioner/bootstrap.php index a824d96b823..d8d20f47541 100644 --- a/setup/provisioner/bootstrap.php +++ b/setup/provisioner/bootstrap.php @@ -9,24 +9,27 @@ */ define('MODX_SETUP_INTERFACE_IS_CLI', (PHP_SAPI === 'cli')); -define('MODX_SETUP_PHP_VERSION', phpversion()); -$setupPath= strtr(realpath(dirname(dirname(__FILE__))), '\\', '/') . '/'; +$setupPath = str_replace('\\', '/', realpath(dirname(__FILE__, 2))) . '/'; define('MODX_SETUP_PATH', $setupPath); -$installPath= strtr(realpath(dirname(dirname(__DIR__))), '\\', '/') . '/'; +$installPath = str_replace('\\', '/', realpath(dirname(__DIR__, 2))) . '/'; define('MODX_INSTALL_PATH', $installPath); if (!MODX_SETUP_INTERFACE_IS_CLI) { - $https = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : false; - $installBaseUrl= (!$https || strtolower($https) != 'on') ? 'http://' : 'https://'; + $https = $_SERVER['HTTP_X_FORWARDED_PROTO'] ?? $_SERVER['HTTPS'] ?? 'off'; + $https = in_array(strtolower((string)$https), ['https', 'on', 'ssl', '1'], true); + + $installBaseUrl = $https ? 'https://' : 'http://'; $installBaseUrl .= $_SERVER['HTTP_HOST']; - if (isset($_SERVER['SERVER_PORT']) && (string)$_SERVER['SERVER_PORT'] != '' && $_SERVER['SERVER_PORT'] != 80) $installBaseUrl= str_replace(':' . $_SERVER['SERVER_PORT'], '', $installBaseUrl); - $installBaseUrl .= ($_SERVER['SERVER_PORT'] == 80 || ($https !== false || strtolower($https) == 'on')) ? '' : ':' . $_SERVER['SERVER_PORT']; + if (isset($_SERVER['SERVER_PORT']) && (string)$_SERVER['SERVER_PORT'] !== '' && $_SERVER['SERVER_PORT'] !== 80) { + $installBaseUrl = str_replace(':' . $_SERVER['SERVER_PORT'], '', $installBaseUrl); + } + $installBaseUrl .= ($_SERVER['SERVER_PORT'] === 80 || ($https !== false || strtolower($https) === 'on')) ? '' : ':' . $_SERVER['SERVER_PORT']; $installBaseUrl .= $_SERVER['SCRIPT_NAME']; $installBaseUrl = htmlspecialchars($installBaseUrl, ENT_QUOTES, 'utf-8'); define('MODX_SETUP_URL', $installBaseUrl); } else { - define('MODX_SETUP_URL','/'); + define('MODX_SETUP_URL', '/'); } /* @@ -35,13 +38,13 @@ $unsatisfiedRequirementsErrors = []; /* Load and check PHP and installed extensions */ -require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'requirements.php'; +require_once __DIR__ . DIRECTORY_SEPARATOR . 'requirements.php'; -$phpVersionSatisfiesRequirement = version_compare(MODX_SETUP_PHP_VERSION, MODX_MINIMUM_REQUIRED_PHP_VERSION, '>='); +$phpVersionSatisfiesRequirement = version_compare(PHP_VERSION, MODX_MINIMUM_REQUIRED_PHP_VERSION, '>='); if (!$phpVersionSatisfiesRequirement) { $unsatisfiedRequirementsErrors[] = [ 'title' => 'Wrong PHP Version!', - 'description' => sprintf('You\'re using PHP version %s, and MODX requires version %s or higher.', MODX_SETUP_PHP_VERSION, MODX_MINIMUM_REQUIRED_PHP_VERSION), + 'description' => sprintf('You\'re using PHP version %s, and MODX requires version %s or higher.', PHP_VERSION, MODX_MINIMUM_REQUIRED_PHP_VERSION), ]; } @@ -54,7 +57,7 @@ foreach ($unsatisfiedExtensionRequirements as $unsatisfiedExtensionRequirement) { $unsatisfiedRequirementsErrors[] = [ 'title' => sprintf('MODX requires the PHP %s extension', $unsatisfiedExtensionRequirement), - 'description' => sprintf('You\'re PHP configuration at version %s does not appear to have this extension enabled.', MODX_SETUP_PHP_VERSION), + 'description' => sprintf('You\'re PHP configuration at version %s does not appear to have this extension enabled.', PHP_VERSION), ]; } } diff --git a/setup/templates/contexts.tpl b/setup/templates/contexts.tpl index c7a66bf7676..3f523ee1444 100644 --- a/setup/templates/contexts.tpl +++ b/setup/templates/contexts.tpl @@ -1,5 +1,5 @@ - - + {/if} - +

    {$_lang.connection_connection_and_login_information}

    @@ -125,7 +125,7 @@
    - + {$error_cmsadminemail|default}
    @@ -134,7 +134,7 @@
    - + {$error_cmsadmin|default}
    @@ -143,7 +143,7 @@
    - + {$error_cmspassword|default}
    @@ -152,7 +152,7 @@
    - + {$error_cmspasswordconfirm|default}
    diff --git a/setup/templates/findcore.php b/setup/templates/findcore.php index bab0d84514c..3b047a2337d 100644 --- a/setup/templates/findcore.php +++ b/setup/templates/findcore.php @@ -45,8 +45,8 @@ - - + + diff --git a/setup/templates/index.tpl b/setup/templates/index.tpl index d7675df3b56..5889d11a7c3 100644 --- a/setup/templates/index.tpl +++ b/setup/templates/index.tpl @@ -1,5 +1,5 @@ - - + + <?php echo $moduleName; ?> » Install diff --git a/setup/templates/summary.tpl b/setup/templates/summary.tpl index 0d3d7d1d59d..52056abe12d 100644 --- a/setup/templates/summary.tpl +++ b/setup/templates/summary.tpl @@ -1,15 +1,19 @@ - +

    {$_lang.install_summary}

    + {if $failed}

    {$_lang.preinstall_failure}

    {else}

    {$_lang.preinstall_success}

    {/if} +
      - {foreach from=$test item=result} -
    • {$result.msg|default}
    • - {/foreach} + {foreach $test as $result} + {if $result.msg|default} +
    • {$result.msg}
    • + {/if} + {/foreach}