From d3965a9f0ae6d6c648d772a9518ca85aeed9c13b Mon Sep 17 00:00:00 2001 From: Devin Carlen Date: Wed, 12 Jan 2011 13:43:31 -0800 Subject: [PATCH] Initial commit --- LICENSE | 176 +++ dashboard/__init__.py | 0 dashboard/manage.py | 11 + dashboard/settings.py | 88 ++ dashboard/templates/403.html | 35 + dashboard/templates/404.html | 34 + dashboard/templates/500.html | 34 + dashboard/templates/admin/index.html | 96 ++ dashboard/templates/base-root.html | 63 + dashboard/templates/base-sidebar.html | 15 + dashboard/templates/base.html | 5 + dashboard/templates/index.html | 56 + dashboard/templates/permission_denied.html | 11 + .../templates/registration/activate.html | 34 + .../registration/activation_email.txt | 21 + .../registration/activation_email_subject.txt | 1 + dashboard/templates/registration/login.html | 36 + dashboard/templates/registration/logout.html | 14 + .../registration/password_change_done.html | 18 + .../registration/password_change_form.html | 23 + .../registration/password_reset_complete.html | 19 + .../registration/password_reset_confirm.html | 26 + .../registration/password_reset_done.html | 17 + .../registration/password_reset_email.html | 13 + .../registration/password_reset_form.html | 23 + .../registration/registration_complete.html | 22 + .../registration/registration_form.html | 29 + dashboard/urls.py | 57 + dashboard/views.py | 39 + dashboard/wsgi/django.wsgi | 29 + local/__init__.py | 0 local/local_settings.py.example | 22 + .../ui-bg_diagonals-thick_90_eeeeee_40x40.png | Bin 0 -> 251 bytes .../images/ui-bg_flat_15_cd0a0a_40x100.png | Bin 0 -> 181 bytes .../images/ui-bg_glass_100_e4f1fb_1x400.png | Bin 0 -> 158 bytes .../images/ui-bg_glass_50_3baae3_1x400.png | Bin 0 -> 131 bytes .../images/ui-bg_glass_80_d7ebf9_1x400.png | Bin 0 -> 124 bytes .../ui-bg_highlight-hard_100_f2f5f7_1x100.png | Bin 0 -> 103 bytes .../ui-bg_highlight-hard_70_000000_1x100.png | Bin 0 -> 118 bytes .../ui-bg_highlight-soft_100_deedf7_1x100.png | Bin 0 -> 104 bytes .../ui-bg_highlight-soft_25_ffef8f_1x100.png | Bin 0 -> 119 bytes .../images/ui-icons_2694e8_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_3d80b3_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_72a7cf_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes .../css/cupertino/jquery-ui-1.7.2.custom.css | 406 ++++++ media/dashboard/css/dashboard.css | 749 +++++++++++ media/dashboard/css/dashboard_sub.css | 217 ++++ media/dashboard/css/django-admin-widgets.css | 541 ++++++++ media/dashboard/css/global.css | 18 + media/dashboard/css/home.css | 745 +++++++++++ media/dashboard/css/ie7.css | 85 ++ media/dashboard/css/jquery.tooltip.css | 9 + media/dashboard/css/new_dash.css | 1145 +++++++++++++++++ media/dashboard/css/openstack.css | 63 + media/dashboard/css/reset.css | 50 + media/dashboard/img/body_bg.gif | Bin 0 -> 12957 bytes media/dashboard/img/body_bg.png | Bin 0 -> 2217 bytes media/dashboard/img/book_icon.png | Bin 0 -> 741 bytes media/dashboard/img/bread_crumb.gif | Bin 0 -> 2027 bytes media/dashboard/img/btn_bg.png | Bin 0 -> 1043 bytes media/dashboard/img/chat_icon.png | Bin 0 -> 847 bytes media/dashboard/img/content_bg.gif | Bin 0 -> 105 bytes media/dashboard/img/content_shadow.png | Bin 0 -> 2836 bytes media/dashboard/img/dashboard_nav_bg.png | Bin 0 -> 255 bytes media/dashboard/img/foot_back.png | Bin 0 -> 2524 bytes media/dashboard/img/gears.png | Bin 0 -> 4701 bytes media/dashboard/img/header_bg.png | Bin 0 -> 966 bytes media/dashboard/img/home_head_back.png | Bin 0 -> 4459 bytes media/dashboard/img/image_detail.png | Bin 0 -> 47257 bytes media/dashboard/img/logged_in_box_bg.gif | Bin 0 -> 1100 bytes media/dashboard/img/login_bg.png | Bin 0 -> 476 bytes media/dashboard/img/login_btn.png | Bin 0 -> 282 bytes media/dashboard/img/logo.gif | Bin 0 -> 3098 bytes media/dashboard/img/nav_arrow.png | Bin 0 -> 471 bytes media/dashboard/img/nav_bg.png | Bin 0 -> 1554 bytes media/dashboard/img/nav_highlight.png | Bin 0 -> 598 bytes media/dashboard/img/page_header.png | Bin 0 -> 782 bytes media/dashboard/img/projects_bg.png | Bin 0 -> 408 bytes media/dashboard/img/server_icon.png | Bin 0 -> 433 bytes media/dashboard/img/spinner.gif | Bin 0 -> 2545 bytes media/dashboard/img/sub-head-back.png | Bin 0 -> 426 bytes media/dashboard/img/sub_head_back.png | Bin 0 -> 3104 bytes media/dashboard/img/table_header_bg.png | Bin 0 -> 157 bytes media/dashboard/img/table_heading_bg.png | Bin 0 -> 968 bytes .../dashboard/img/title-blank-short-foot.png | Bin 0 -> 435 bytes media/dashboard/js/dashboard.js | 4 + .../dashboard/js/django-admin.multiselect.js | 564 ++++++++ media/dashboard/js/jquery-ui.min.js | 9 + media/dashboard/js/jquery.form.js | 675 ++++++++++ media/dashboard/js/jquery.min.js | 154 +++ tools/install_venv.py | 139 ++ tools/pip-requires | 6 + tools/with_venv.sh | 5 + 95 files changed, 6651 insertions(+) create mode 100644 LICENSE create mode 100644 dashboard/__init__.py create mode 100755 dashboard/manage.py create mode 100644 dashboard/settings.py create mode 100644 dashboard/templates/403.html create mode 100644 dashboard/templates/404.html create mode 100644 dashboard/templates/500.html create mode 100644 dashboard/templates/admin/index.html create mode 100644 dashboard/templates/base-root.html create mode 100644 dashboard/templates/base-sidebar.html create mode 100644 dashboard/templates/base.html create mode 100644 dashboard/templates/index.html create mode 100644 dashboard/templates/permission_denied.html create mode 100644 dashboard/templates/registration/activate.html create mode 100644 dashboard/templates/registration/activation_email.txt create mode 100644 dashboard/templates/registration/activation_email_subject.txt create mode 100644 dashboard/templates/registration/login.html create mode 100644 dashboard/templates/registration/logout.html create mode 100644 dashboard/templates/registration/password_change_done.html create mode 100644 dashboard/templates/registration/password_change_form.html create mode 100644 dashboard/templates/registration/password_reset_complete.html create mode 100644 dashboard/templates/registration/password_reset_confirm.html create mode 100644 dashboard/templates/registration/password_reset_done.html create mode 100644 dashboard/templates/registration/password_reset_email.html create mode 100644 dashboard/templates/registration/password_reset_form.html create mode 100644 dashboard/templates/registration/registration_complete.html create mode 100644 dashboard/templates/registration/registration_form.html create mode 100644 dashboard/urls.py create mode 100644 dashboard/views.py create mode 100644 dashboard/wsgi/django.wsgi create mode 100644 local/__init__.py create mode 100644 local/local_settings.py.example create mode 100644 media/dashboard/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png create mode 100644 media/dashboard/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png create mode 100644 media/dashboard/css/cupertino/images/ui-icons_2694e8_256x240.png create mode 100644 media/dashboard/css/cupertino/images/ui-icons_2e83ff_256x240.png create mode 100644 media/dashboard/css/cupertino/images/ui-icons_3d80b3_256x240.png create mode 100644 media/dashboard/css/cupertino/images/ui-icons_72a7cf_256x240.png create mode 100644 media/dashboard/css/cupertino/images/ui-icons_ffffff_256x240.png create mode 100644 media/dashboard/css/cupertino/jquery-ui-1.7.2.custom.css create mode 100755 media/dashboard/css/dashboard.css create mode 100755 media/dashboard/css/dashboard_sub.css create mode 100644 media/dashboard/css/django-admin-widgets.css create mode 100644 media/dashboard/css/global.css create mode 100644 media/dashboard/css/home.css create mode 100755 media/dashboard/css/ie7.css create mode 100644 media/dashboard/css/jquery.tooltip.css create mode 100644 media/dashboard/css/new_dash.css create mode 100644 media/dashboard/css/openstack.css create mode 100644 media/dashboard/css/reset.css create mode 100644 media/dashboard/img/body_bg.gif create mode 100755 media/dashboard/img/body_bg.png create mode 100644 media/dashboard/img/book_icon.png create mode 100644 media/dashboard/img/bread_crumb.gif create mode 100644 media/dashboard/img/btn_bg.png create mode 100644 media/dashboard/img/chat_icon.png create mode 100644 media/dashboard/img/content_bg.gif create mode 100644 media/dashboard/img/content_shadow.png create mode 100644 media/dashboard/img/dashboard_nav_bg.png create mode 100644 media/dashboard/img/foot_back.png create mode 100644 media/dashboard/img/gears.png create mode 100755 media/dashboard/img/header_bg.png create mode 100644 media/dashboard/img/home_head_back.png create mode 100644 media/dashboard/img/image_detail.png create mode 100644 media/dashboard/img/logged_in_box_bg.gif create mode 100644 media/dashboard/img/login_bg.png create mode 100644 media/dashboard/img/login_btn.png create mode 100644 media/dashboard/img/logo.gif create mode 100644 media/dashboard/img/nav_arrow.png create mode 100644 media/dashboard/img/nav_bg.png create mode 100755 media/dashboard/img/nav_highlight.png create mode 100644 media/dashboard/img/page_header.png create mode 100644 media/dashboard/img/projects_bg.png create mode 100644 media/dashboard/img/server_icon.png create mode 100644 media/dashboard/img/spinner.gif create mode 100644 media/dashboard/img/sub-head-back.png create mode 100644 media/dashboard/img/sub_head_back.png create mode 100644 media/dashboard/img/table_header_bg.png create mode 100644 media/dashboard/img/table_heading_bg.png create mode 100644 media/dashboard/img/title-blank-short-foot.png create mode 100644 media/dashboard/js/dashboard.js create mode 100644 media/dashboard/js/django-admin.multiselect.js create mode 100755 media/dashboard/js/jquery-ui.min.js create mode 100644 media/dashboard/js/jquery.form.js create mode 100644 media/dashboard/js/jquery.min.js create mode 100644 tools/install_venv.py create mode 100644 tools/pip-requires create mode 100644 tools/with_venv.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..68c771a09 --- /dev/null +++ b/LICENSE @@ -0,0 +1,176 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + diff --git a/dashboard/__init__.py b/dashboard/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/dashboard/manage.py b/dashboard/manage.py new file mode 100755 index 000000000..5e78ea979 --- /dev/null +++ b/dashboard/manage.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +from django.core.management import execute_manager +try: + import settings # Assumed to be in the same directory. +except ImportError: + import sys + sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) + sys.exit(1) + +if __name__ == "__main__": + execute_manager(settings) diff --git a/dashboard/settings.py b/dashboard/settings.py new file mode 100644 index 000000000..0d5c213c3 --- /dev/null +++ b/dashboard/settings.py @@ -0,0 +1,88 @@ +import datetime +import logging +import os +import sys + +ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) + +sys.path.append(ROOT_PATH) + +DEBUG = False +TEMPLATE_DEBUG = DEBUG + +SITE_ID = 1 +SITE_NAME = 'openstack-dashboard' + +LOGIN_URL = '/accounts/login' +LOGIN_REDIRECT_URL = '/' + +MEDIA_ROOT = os.path.join(ROOT_PATH, '..', 'media') +MEDIA_URL = '/media/' +ADMIN_MEDIA_PREFIX = '/media/admin/' + +CREDENTIAL_AUTHORIZATION_DAYS = '5' + +ROOT_URLCONF = 'dashboard.urls' + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.middleware.doc.XViewMiddleware', +) + +TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.core.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.request', + 'django.core.context_processors.media', + 'django.contrib.messages.context_processors.messages', +) + +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.load_template_source', + 'django.template.loaders.app_directories.load_template_source', +) + +TEMPLATE_DIRS = ( + os.path.join(ROOT_PATH, 'templates'), +) + +INSTALLED_APPS = ( + 'dashboard', + 'django.contrib.auth', + 'django.contrib.admin', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.comments', + 'django.contrib.sites', + 'django.contrib.markup', + 'django.contrib.syndication', + 'django_nose', + 'django_nova', + 'registration', +) + +TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' + +AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',) +MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' + +SESSION_EXPIRE_AT_BROWSER_CLOSE = True +TIME_ZONE = 'PST+08PDT,M3.2.0,M11.1.0' +LANGUAGE_CODE = 'en-us' +USE_I18N = False + +ACCOUNT_ACTIVATION_DAYS = 7 + +try: + from local.local_settings import * +except Exception, e: + logging.exception(e) + +if DEBUG: + logging.basicConfig(level=logging.DEBUG) diff --git a/dashboard/templates/403.html b/dashboard/templates/403.html new file mode 100644 index 000000000..f57bcb94c --- /dev/null +++ b/dashboard/templates/403.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} + +{% block title %} - Forbidden{% endblock %} + +{% block content %} +
+ +
+{% endblock %} + +{% block sidebar %} + +{% endblock %} diff --git a/dashboard/templates/404.html b/dashboard/templates/404.html new file mode 100644 index 000000000..4ab04b347 --- /dev/null +++ b/dashboard/templates/404.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} + +{% block title %} - Page Not Found{% endblock %} + +{% block content %} +
+ +
+{% endblock %} + +{% block sidebar %} + +{% endblock %} diff --git a/dashboard/templates/500.html b/dashboard/templates/500.html new file mode 100644 index 000000000..51cde48fd --- /dev/null +++ b/dashboard/templates/500.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} + +{% block title %} - Internal Server Error{% endblock %} + +{% block content %} +
+ +
+{% endblock %} + +{% block sidebar %} + +{% endblock %} diff --git a/dashboard/templates/admin/index.html b/dashboard/templates/admin/index.html new file mode 100644 index 000000000..7a7ee87da --- /dev/null +++ b/dashboard/templates/admin/index.html @@ -0,0 +1,96 @@ +{% extends "admin/base_site.html" %} +{% load i18n %} + +{% block extrastyle %}{{ block.super }}{% endblock %} + +{% block coltype %}colMS{% endblock %} + +{% block bodyclass %}dashboard{% endblock %} + +{% block breadcrumbs %}{% endblock %} + +{% block content %} +
+{% if app_list %} + +
+ + + + + + + + + + + +
OpenStack
ProjectsAdd
Global Roles
+
+ + {% for app in app_list %} +
+ + + {% for model in app.models %} + + {% if model.perms.change %} + + {% else %} + + {% endif %} + + {% if model.perms.add %} + + {% else %} + + {% endif %} + + {% if model.perms.change %} + + {% else %} + + {% endif %} + + {% endfor %} +
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{{ model.name }}{{ model.name }}{% trans 'Add' %} {% trans 'Change' %} 
+
+ {% endfor %} +{% else %} +

{% trans "You don't have permission to edit anything." %}

+{% endif %} +
+{% endblock %} + +{% block sidebar %} + +{% endblock %} + diff --git a/dashboard/templates/base-root.html b/dashboard/templates/base-root.html new file mode 100644 index 000000000..86a58dd8d --- /dev/null +++ b/dashboard/templates/base-root.html @@ -0,0 +1,63 @@ + + + + + + OpenStack Dashboard{% block title %}{% endblock %}{% block subtitle %}{% endblock %} + + + + {% block headercss %}{% endblock %} + + + + + + + {% block headerjs %}{% endblock %} + + +
+ + +
+ {% block sidebar %}{% endblock %} + {% block region %}{% endblock %} + {% block forum_breadcrumbs %}{% endblock %} +
+ {% block rootcontent %}{% endblock %} +
+
+ + + + diff --git a/dashboard/templates/base-sidebar.html b/dashboard/templates/base-sidebar.html new file mode 100644 index 000000000..c6e1ba14d --- /dev/null +++ b/dashboard/templates/base-sidebar.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} + +{% block sidebar %} + +{% endblock %} diff --git a/dashboard/templates/base.html b/dashboard/templates/base.html new file mode 100644 index 000000000..cf37c0e46 --- /dev/null +++ b/dashboard/templates/base.html @@ -0,0 +1,5 @@ +{% extends "base-root.html" %} + +{% block rootcontent %} +{% block content %}{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/dashboard/templates/index.html b/dashboard/templates/index.html new file mode 100644 index 000000000..bc3e86ba6 --- /dev/null +++ b/dashboard/templates/index.html @@ -0,0 +1,56 @@ +{% extends "base.html" %} + +{% block headercss %} +{% endblock %} +{% block pageclass %}home{% endblock %} + +{% block title %} - Cloud Computing{% endblock %} + +{% block content %} + + + {% if request.user.is_authenticated %} +
+

Your Projects

+ +
+ {% else %} +
+

Sign In

+
+ {% csrf_token %} +
+ {% if form.errors %} +

Your username and password didn't match. Please try again.

+ {% endif %} + + + +
+ + or Forgot Password? +
+
+
+
+ {% endif %} +{% endblock %} + diff --git a/dashboard/templates/permission_denied.html b/dashboard/templates/permission_denied.html new file mode 100644 index 000000000..96b02dccb --- /dev/null +++ b/dashboard/templates/permission_denied.html @@ -0,0 +1,11 @@ +{% extends "dashboard/base.html" %} + +{% block title %} - Permission Denied{% endblock %} +{% block pageclass %}denied{% endblock %} + +{% block content %} + +{% endblock %} diff --git a/dashboard/templates/registration/activate.html b/dashboard/templates/registration/activate.html new file mode 100644 index 000000000..e6ffdc9e0 --- /dev/null +++ b/dashboard/templates/registration/activate.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Account Activation{% endblock %} + +{% block content %} +{% if account %} + + +
+ +

+ + Your account has been successfully activated. +

+
+

+ You may now log in to your account. +

+{% else %} + + +

+ We are unable to activate your account at this time. It is possible that the activation + period for your account has expired. Please register your account again, or contact the + site administrator for help resolving this issue. +

+{% endif %} +{% endblock %} + diff --git a/dashboard/templates/registration/activation_email.txt b/dashboard/templates/registration/activation_email.txt new file mode 100644 index 000000000..1ab414ca5 --- /dev/null +++ b/dashboard/templates/registration/activation_email.txt @@ -0,0 +1,21 @@ +{% autoescape off %} +Welcome to the NASA Nebula Dashboard! + + +This message contains information about how to activate your NASA Nebula Dashboard account. + + +The NASA Nebula Dashboard is a web based management system that enables to easily manage your Nebula projects and instances. + + +PLEASE NOTE: Before you can access your Dashboard account, you must first be connected to your Nebula OpenVPN account. You should receive another message soon with instructions on how to connect to your VPN. + + +When you're ready, connect to your Nebula OpenVPN and visit the following link to activate your account: + + http://{{ site.domain }}/accounts/activate/{{ activation_key }} + +Please note that this invitation will expire in {{ expiration_days }} days. After that time, you will need to contact your Nebula account manager for another invitation. + +The Nebula Team +{% endautoescape %} diff --git a/dashboard/templates/registration/activation_email_subject.txt b/dashboard/templates/registration/activation_email_subject.txt new file mode 100644 index 000000000..0b195d46a --- /dev/null +++ b/dashboard/templates/registration/activation_email_subject.txt @@ -0,0 +1 @@ +Welcome to the NASA Nebula Dashboard! diff --git a/dashboard/templates/registration/login.html b/dashboard/templates/registration/login.html new file mode 100644 index 000000000..324358a58 --- /dev/null +++ b/dashboard/templates/registration/login.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block headerjs %} +{% endblock %} + +{% block sidebar %} +{% endblock %} + +{% block pageclass %}login{% endblock %} + +{% block content %} + + +
+

Sign In

+ +
+ {% csrf_token %} +
+ {% if form.errors %} +

Your username and password didn't match. Please try again.

+ {% endif %} + + {{ form.username.label_tag }}{{ form.username }} + {{ form.password.label_tag }}{{ form.password }} +
+ + or Forgot Password? +
+
+
+
+{% endblock %} diff --git a/dashboard/templates/registration/logout.html b/dashboard/templates/registration/logout.html new file mode 100644 index 000000000..a97e38599 --- /dev/null +++ b/dashboard/templates/registration/logout.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Signed Out{% endblock %} + +{% block content %} + + +

+ You have successfully signed out of your account. +

+{% endblock %} diff --git a/dashboard/templates/registration/password_change_done.html b/dashboard/templates/registration/password_change_done.html new file mode 100644 index 000000000..852ea5268 --- /dev/null +++ b/dashboard/templates/registration/password_change_done.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Change Password{% endblock %} + +{% block content %} + + +
+ +

+ + Your password has been successfully changed. +

+
+{% endblock %} diff --git a/dashboard/templates/registration/password_change_form.html b/dashboard/templates/registration/password_change_form.html new file mode 100644 index 000000000..70bf79c28 --- /dev/null +++ b/dashboard/templates/registration/password_change_form.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Change Password{% endblock %} + +{% block content %} + + + +
+

Change Password

+
+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+
+{% endblock %} diff --git a/dashboard/templates/registration/password_reset_complete.html b/dashboard/templates/registration/password_reset_complete.html new file mode 100644 index 000000000..dc972451f --- /dev/null +++ b/dashboard/templates/registration/password_reset_complete.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Reset Password{% endblock %} + +{% block content %} + + +
+ +

+ + Your password has been reset. You can now login. +

+
+ +{% endblock %} diff --git a/dashboard/templates/registration/password_reset_confirm.html b/dashboard/templates/registration/password_reset_confirm.html new file mode 100644 index 000000000..acd9af6e5 --- /dev/null +++ b/dashboard/templates/registration/password_reset_confirm.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Reset Password{% endblock %} + +{% block content %} + + +
+

Reset Password

+
+
+ {% csrf_token %} + {{ form.new_password1.errors }} + {{form.new_password1 }} + + {{ form.new_password2.errors }} + {{ form.new_password2 }} + +
+
+
+{% endblock %} diff --git a/dashboard/templates/registration/password_reset_done.html b/dashboard/templates/registration/password_reset_done.html new file mode 100644 index 000000000..9aed573ab --- /dev/null +++ b/dashboard/templates/registration/password_reset_done.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Password Reset{% endblock %} + +{% block content %} + +
+ +

+ + We've emailed you instructions for resetting your password. +

+
+{% endblock %} diff --git a/dashboard/templates/registration/password_reset_email.html b/dashboard/templates/registration/password_reset_email.html new file mode 100644 index 000000000..5f2b1bdcb --- /dev/null +++ b/dashboard/templates/registration/password_reset_email.html @@ -0,0 +1,13 @@ +{% load i18n %}{% autoescape off %} +You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}. + +Please sign in to your Nebula VPN and go to the following page and choose a new password: +{% block reset_link %} +{{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid token=token %} +{% endblock %} +Your user name, in case you've forgotten: {{ user.username }} + +Thanks for using our site! + +The Nebula Team +{% endautoescape %} diff --git a/dashboard/templates/registration/password_reset_form.html b/dashboard/templates/registration/password_reset_form.html new file mode 100644 index 000000000..06461f1f5 --- /dev/null +++ b/dashboard/templates/registration/password_reset_form.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Reset Password{% endblock %} + +{% block content %} + + + +
+

Reset Password

+
+
+ {% csrf_token %} + {{ form.email.errors }} +

{{ form.email }}

+
+
+
+{% endblock %} diff --git a/dashboard/templates/registration/registration_complete.html b/dashboard/templates/registration/registration_complete.html new file mode 100644 index 000000000..c5c0e97f7 --- /dev/null +++ b/dashboard/templates/registration/registration_complete.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Registration Complete{% endblock %} + +{% block content %} + + +
+ +

+ + Your account has been created. +

+
+

+ Soon you will receive instructions for activating your account in your inbox. + Please follow the activation link provided in the message to complete your registration. +

+{% endblock %} diff --git a/dashboard/templates/registration/registration_form.html b/dashboard/templates/registration/registration_form.html new file mode 100644 index 000000000..747d86844 --- /dev/null +++ b/dashboard/templates/registration/registration_form.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} +{% block region %}{% endblock %} + +{% block title %}Register{% endblock %} + +{% block content %} + + +
+

Register

+
+
+ {% csrf_token %} + {{ form.username.errors }} + {{ form.username }} + {{ form.email.errors }} + {{ form.email }} + {{ form.password1.errors }} + {{ form.password1 }} + {{ form.password2.errors }} + {{ form.password2 }} + +
+
+
+{% endblock %} diff --git a/dashboard/urls.py b/dashboard/urls.py new file mode 100644 index 000000000..a953a173c --- /dev/null +++ b/dashboard/urls.py @@ -0,0 +1,57 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +URL patterns for the OpenStack Dashboard. +""" + +from django.conf.urls.defaults import * +from django.conf import settings +from django.contrib import admin +from registration import forms as reg_forms + + +admin.autodiscover() + +urlpatterns = patterns('', + url(r'^$', 'dashboard.views.index', name='index'), + url(r'^accounts/register/$', + 'registration.views.register', + { 'form_class': reg_forms.RegistrationFormUniqueEmail }, + name='registration_register'), + url(r'^accounts/', include('registration.urls')), + url(r'^project/', include('django_nova.urls.project')), + url(r'^region/', include('django_nova.urls.region')), + url(r'^admin/project/', include('django_nova.urls.admin_project')), + url(r'^admin/roles/', include('django_nova.urls.admin_roles')), + url(r'^admin/', include(admin.site.urls)), +) + +urlpatterns += patterns('django.views.generic.simple', + url(r'^denied/$', + 'direct_to_template', + {'template': 'permission_denied.html'}, + name='dashboard_permission_denied'), +) + +urlpatterns += patterns('', + (r'^%s(?P.*)$' % settings.MEDIA_URL[1:], + 'django.views.static.serve', + {'document_root': settings.MEDIA_ROOT, + 'show_indexes': True}), + ) diff --git a/dashboard/views.py b/dashboard/views.py new file mode 100644 index 000000000..9420188d5 --- /dev/null +++ b/dashboard/views.py @@ -0,0 +1,39 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Views for home page. +""" + +from django import template +from django.shortcuts import render_to_response +from django.views.decorators.vary import vary_on_cookie +from django_nova.shortcuts import get_projects + + +@vary_on_cookie +def index(request): + projects = None + page_type = "home" + if request.user.is_authenticated(): + projects = get_projects(user=request.user) + + return render_to_response('index.html', { + 'projects': projects, + 'page_type': page_type, + }, context_instance = template.RequestContext(request)) diff --git a/dashboard/wsgi/django.wsgi b/dashboard/wsgi/django.wsgi new file mode 100644 index 000000000..9c821ecbe --- /dev/null +++ b/dashboard/wsgi/django.wsgi @@ -0,0 +1,29 @@ +import logging +import os +import sys +import django.core.handlers.wsgi +from django.conf import settings + +os.environ['DJANGO_SETTINGS_MODULE'] = 'dashboard.settings' +sys.stdout = sys.stderr + +DEBUG = False + +class WSGIRequest(django.core.handlers.wsgi.WSGIRequest): + def is_secure(self): + value = self.META.get('wsgi.url_scheme', '').lower() + if value == 'https': + return True + return False + +class WSGIHandler(django.core.handlers.wsgi.WSGIHandler): + request_class = WSGIRequest + +_application = WSGIHandler() + +def application(environ, start_response): + environ['PATH_INFO'] = environ['SCRIPT_NAME'] + environ['PATH_INFO'] + environ['wsgi.url_scheme'] = environ.get('HTTP_X_URL_SCHEME', 'http') + + return _application(environ, start_response) + diff --git a/local/__init__.py b/local/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/local/local_settings.py.example b/local/local_settings.py.example new file mode 100644 index 000000000..61bf0ca9e --- /dev/null +++ b/local/local_settings.py.example @@ -0,0 +1,22 @@ +import os + +DEBUG = True +TEMPLATE_DEBUG = DEBUG +PROD = False +USE_SSL = False + +LOCAL_PATH = os.path.dirname(os.path.abspath(__file__)) +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(LOCAL_PATH, 'dashboard_openstack'), + }, +} + +CACHE_BACKEND = 'dummy://' + +NOVA_DEFAULT_ENDPOINT = 'http://localhoat:8773/services/Cloud' +NOVA_DEFAULT_REGION = 'nova' +NOVA_ACCESS_KEY = 'admin' +NOVA_SECRET_KEY = 'admin' + diff --git a/media/dashboard/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/media/dashboard/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..6348115e6be09c044cd20ead0202c3ab5b2f9c19 GIT binary patch literal 251 zcmVaF75Mac}}vaR5#k2ZfJhrR<4^Z31`Wpz#J3a8LoN;Gh6h!a)X9!$AU6#K8$v z#Q`{F91Q%ZXUd*<*dgG~N1x91EQ4=6AkFgVs( zAAQ+GrQnN%`yz$&yRVt+nf>RR!x7drH9<9kle(1jzSB%AGQwhbfbL-MboFyt=akR{ E099={B>(^b literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png b/media/dashboard/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae77ce6788bafd368879013f1a44630b964374d GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1yVg-978O6-(E4~YIWdgd03wo zEC1;4`plh5zdCv=n9W zZJENk`&n&ve7~Oh@zL!4)3+VJs_%N}=pE%7LSf&({j8WIyncz?-Z!2z{{byz@O1Ta JS?83{1OPvRKAivn literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png b/media/dashboard/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..baabca6baaff94ade4ecd5ddad28e35f52ea3af7 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq`W*`978O6-=1H{+u$H^^ufM+ zvdx>+CU0QuV-!dbkTBu=d3O3OBmLW&4uK;3Q}6PdBzSM&77W)>Ku`PSi#4qjXP8{lS YyPtFZh>C0s1RBTS>FVdQ&MBb@0KGXW`v3p{ literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/media/dashboard/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..28b566c2c29cc0f849995be62c10d7c292697803 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%A)HV~E7myQentGAQsIIS~9U zUP5CYm&Of+-c)b1XI_rZEUK1mr%ne<%>I8zSo#mI$dWz<>o-8144$rjF6*2UngI7o B9l-zq literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png b/media/dashboard/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..d58829780430e138704e956a850c2913039fd4d9 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&z)bCBa S8D#`Ch{4m<&t;ucLK6U&At$5& literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/media/dashboard/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..2289d3c7d7b8e0892f5921de1af87a44b7059eb2 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m+!V`FPm zbot}H;osq%|NlEjau{m7wqGXUWVoyE{|q&Lb0!9pSk(^U8R0L0S{XcD{an^LB{Ts5 DibWrf literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/media/dashboard/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0de3275beabe5ac461e277724f9821c0e2ce084b GIT binary patch literal 119 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 literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-icons_2e83ff_256x240.png b/media/dashboard/css/cupertino/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..45e8928e5284adacea3f9ec07b9b50667d2ac65f GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-icons_3d80b3_256x240.png b/media/dashboard/css/cupertino/images/ui-icons_3d80b3_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..76a020d93fbabac3c61c74bdc45e0350095333d4 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-icons_72a7cf_256x240.png b/media/dashboard/css/cupertino/images/ui-icons_72a7cf_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8f4d9dfc5dcae74090d38ca7e00237568a7bdc GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/images/ui-icons_ffffff_256x240.png b/media/dashboard/css/cupertino/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..bef5178a9054c16582876bac57017f783272e750 GIT binary patch literal 4369 zcmd^?`8yPD_s3@pGj_w+*U6H7%U0QjR77J*QjsAo%D!YBW@O1;scbQ1jjT!5jATuS zWGpjA6KRZ{!Pve&pXdAh70>I3`<(O3xvulR&VAkQJHZBdk&9iF9RL7uS(uyI0RX_` z6tKz)Iz9;&mv)cCl8u%9`J?|OmP*JO$AcpS?T}Xh!q8L9tTyeBv(%*ReGzw2qI};t z;Rb@H=9eUIoYb&WiPetBc0TAE>N#yD-qsXR@u4{7ZRLA~1Dxy%JD4f0(CuYGwdYLk z1tagsXZP=qm>&QDJh2vLCiWq(mz-1FrW$y`edgtJG0#=QJ!m&9&)(a3?)h-syE0q# z?P#FI_!jBN4~${;{MO;g}UQ zG3d+lNqVdW?d;i5#SBg*2mQ!Rn>(amT&5v4d`jyu6+_vuxMGMIKj9N32D$`#BPsq4 z&H!{>s%@KE0gW_Hv;f*;8lr>_pIAQ@fn70`iX)lM~b;0%IthmkCNRW;1#Bl3u4aW zZ~`YcG08^(#=g-XUjMP$u{=5}{br3p0j{%8ct}0%c5dfz|9@!Qi!6tI!`h+yA7E)Z zJn+pl(M`4lJ2yy^I6~pY>FjC#sdMh}^se$@VnMaaG{PQ>@Mt|4=5=FE@b}Yj#d>l( zp4jAXfV^PTNaR=hCeZIRtFSH37;3xmUxT-X7qRQqRDSDzcRwf+uMpKCYAcj@3xTC< zXz@=PF2DIJC>`r|^jk;L@f^Px;*!*}+|Y8=w%lx^Lb1jkv=)(P{W_K(F~@F=ROKDZ>ObgXV=mn;e*Wv}!4hQs zrZ<8{umiRhWI1l~TX=zzh)D{-gb%X?7vTMf7sj=#h8iTkd{*Bet7n<|_atRUW)ZrB zA7eI!*kdd~5R_>D0mx{$y#+vl@{K^-vOyaIe((yk@a6=@v1a!}7`F@zfM zQG%>GcJ=D5&7V-ti$ajzvp|RpDi@Xi9F7T!erF$O`Ic9l6iF8EO6t6kPu$fJw{LAv zko)2mUjktP!+r)G=#*``Y>=s1k2>FwDKC$IziTEBlvM`7O^fX_t^h^yKlqX|CG2Bh|SzC!9 zu((_57v*9wG?@4)`5#(R)?dx^GP%aTCb>zIRu$psmmUq5l`+lI zxjUr27D$!vE~|Fn-1Ro7x-W)9FxAyDUu$%kMvL{Cdug%i)#LPZS~3)6Wa-araSodDkF`W;re(7n$aoPt{f05OTqjG_6JJD?_?-WBj342T{x!u z!1T_qm`%Z@#d)$x-@+guJbmlvUZ;FzsO|+=&8EfVPMP z_vq>mTPZbRE#{)T2 z)0FYd19#sOXwPcF(WXx^=S<+#78l)kf~V1H!O_3 z4Gj?Y0M{R60`^9EQTirk_@;@y{b{e$-e)^*-{qb(;X?%IHFxl>vPj}Gt)!^i&1nD< zT>M5pSY1sG-%_@Uq253J!{?B%#@`qy#5Kv)C5-H$oJn5OGF{*s5sUP3A&`LbC_F3R z7ZBzX6@yv!wN}mi%5|2h5n_K)aG9S?#7atkvqw)frHAN@qD@M{m}*R)V}8hCzUCO! zEGq>w+t;@(`(73Y;ND7V@R$?9V(62BoF(fYmj`cYKKUtc?YH3%lE)+m_)ujFAMdI^rB5-61b< zPq(0NcBIZO3dQ*GeJ^{k0ZBNCo}!zwU7ZsV&Qe(SH`w&+#X5xg53~52C@HlQ3Dre+D993b|o>mpw^$+9QG*SqJ#{ zZQCVXW0lZ(%J#Sct~wBgk=|?<)xEpq$Z=a*SqaC9eCoN0L+huQP=HD}JC-RF z$$IcPJ?{+f7Dy&UdrVyWGghqj%z{k*5=-m5p~D$+);05~v^d&`JxUSbH`%)~AK-(8VFJ%N;5 zR)7fAQuSKvhmq&aRw4}^IkCy9Z0<45WUB*XvvHliJDohM5_W%hNl}qt^;`If=|0c4 zSTS#33RmucUSOYCT28lyD7Om?+}KvZt1;FiTIdPW260HH;26D&F5n}2!Gc>EkA^_s z@_6YwwOca*Zc?wrzZv_-(s#+gkOFVoepysi#JD+0b zLkdC1u~QZECT5wR%E_Q0g~QSDb~@(-B!JE3B55Yft)~Kl8arZL+tL7JQPzO#p;|3} z3?I1O@rkln)Wb!tZ&j*^7WfK)Jx##GnZd_z*in4exkHLHU^?5aYNNcN%VB@nhUv=M z%-te?`b-_&)lxezhaG->^zF$a=+lSMq1A>8n{oH3(+M!&cSi=g##MyV1Ss+u1bUzp zvPE4O6IW{iebSvw(Y*-R#z#_;hn+kZWH~6X4 zdJ5;T3^rphFs?edA=gw9z$3BgO=ohGNahw}^@o>c)(%ja2%_Rfv;e<54?-7oSEur~ zSd;RM5HmqK8bH29UcAj@z|nLU5UUei1kyC@UgR?@h4>!4fh%D@TRMPWii}iDN2iQY zFht4@vE{ZbQc9#s8)ho>XX2<$ ztO^NV39<9eVN*`4A!+P)-%rq`oqcM?<%9T!e^-3S4NQC(j(?nKP%th1D$d(=xG>n0;ZiL*Ut)#`zN!g4C`?*bQ@jOo`&d)HtE&|qf; zHoW^HK(+NCnX{yy(hnW6r&{|w6x1JoBTVC*Xh3as3feJc*CFqPht-F+GMxZqSTcpw zvA(I}{rHE)i)L&hrT~1jQ+RbGGP!2Zi^U4BfP(p`pYUEkf)v$w@i-=8RF6m71El6| z18;ufz`)&mg0Y5pZwlt$>%W(>6W|^!F&8DUAC~&lo2oFkE{V3T3QgsYto**gNnv=A zf$Ty#t1HHiS4sLRwtb@EVY>xwsiE_Z5ToJp}Xh$8t;XGSfDO7s4uy|-Z>>OAg zbTFzq69;R~BlaTZu%TRZ?bgc4ppA?}&XiJ=!&EvX7z(6Ud{30wJ_xfx*k*DejZUc_ z9fX%S`6#B+UjPVyP;9axa^^ST&$zm{x0UlfRJsaQuQRM*`NL2GUNMy z%X`DKo+4T5MNU_5eP|1slik?>O6>z*M|in)E;@L>8kt-V&gFD+Xq%IY*o`OA1;$XgSWr@q5g&Teiy|FXrjdeNr)s4DMzCuwdva=cNXz)u)+| zOdqiKXJa6fgYEEhhe#cQ z#X3Dy-tw!2F}kh^eD+L&*G%`%wv;NR(%L1&T_WPa)iWtx@pX%FBNhE3|ADt2+nLfA z&O<)}jjl_`0)8Glw^^^OcVYH4D;?KucQeFNcHJn09tQU8ehd1~s;Q?2n`ZABDD{3%msO zg2N05dRqc7SG=Wc&g}SiUwe48w1y2b%zs;56H!5P83%c{9W0Vq!f5U9(Fi8e;S>dA l!Q;r%?Y*7ztoF~2ao>D^xRgPV&GAM literal 0 HcmV?d00001 diff --git a/media/dashboard/css/cupertino/jquery-ui-1.7.2.custom.css b/media/dashboard/css/cupertino/jquery-ui-1.7.2.custom.css new file mode 100644 index 000000000..6b3ee7a81 --- /dev/null +++ b/media/dashboard/css/cupertino/jquery-ui-1.7.2.custom.css @@ -0,0 +1,406 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; } +.ui-widget-content a { color: #362b36; } +.ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; outline: none; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; outline: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; outline: none; } +.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; outline: none; } +.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; outline: none; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; outline: none; text-decoration: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #f9dd34; background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; } +.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; } +.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; } +.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; } +.ui-corner-right { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; } +.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; } +.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; } + +/* Overlays */ +.ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); } +.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Dialog +----------------------------------*/ +.ui-dialog { position: relative; padding: .2em; width: 300px; } +.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { padding: .2em; zoom: 1; } +.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } +.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/media/dashboard/css/dashboard.css b/media/dashboard/css/dashboard.css new file mode 100755 index 000000000..d37e39a43 --- /dev/null +++ b/media/dashboard/css/dashboard.css @@ -0,0 +1,749 @@ +#head{height:115px;margin-top:5px}.logo{background:url(/media/dashboard/img/home_head_logo.png) no-repeat left;float:left;height:85px;width:550px}.nav{float:right}.sub_nav {background:url(/media/dashboard/img/nav_highlight.png) no-repeat 6px bottom;float:right;height:30px;}.sub_nav a {display:block;float:left;height:20px;margin-top:4px;} +.nav { + padding-top:1px; +} +.nav a { + background:url(/media/dashboard/img/home-head-nav.png) no-repeat 0 0; + display:block; + float:left; + height:84px; + width:78px +} +.account a, .nav a { + color:#fff;font-weight:normal; +} +.account { + float:right;height:62px;width:390px; +} +.account a { + display:block;float:right;font-size:.9em;margin:12px 0;padding:8px; +} +#content { + padding:15px 0 10px; +} +.page_title { + padding-bottom:5px; +} + +table { + width: 100%; margin-bottom: 25px +} +th { + background: #333; color: white; padding: 4px 8px; font-size: 1.2em; +} +td { + padding: 4px 8px; +} +.odd { + background: #adf; +} +.section { + background: #333; color: white; padding: 4px 8px; font-size: 1.5em +} + +/* __ */ + +#bread_crumbs { + background: #2d2d2d; + float: left; + width: 920px; + color: #989898; + border-top: 1px solid #000; + margin-left: 10px; + padding: 0 5px 0 15px; +} + +#bread_crumbs ul { + float: left; + margin: 0; + padding: 0; +} +#bread_crumbs ul li { + float: left; + margin-right: 10px; + list-style: none; +} + +#bread_crumbs ul li a { + background: url(/media/dashboard/img/bread_crumb.gif) top right no-repeat; + display: block; + color: #ccc; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 25px; +} + +#bread_crumbs ul li a:hover { + color: #fff; +} + +ul#links { + list-style: none; + margin: 0; + float: left; +} + +#home_login { + width: 445px; +} + +#home_login fieldset { + margin: 0; +} + +#home_login #error { + color: #fff; + font-size: 14px; + background: rgba(255,0,0,0.51); + padding: 5px; + display: block; + text-align: center; + border-top: 1px solid rgba(255,0,0,0.47); + border-bottom: 1px solid rgba(255,0,0,0.47); +} + + +#home_login label { + display: block; + float: none; + padding: 0; + margin: 0 0 5px; + width: auto; + text-align: left; +} + +#home_login fieldset { + background: 0; + padding: 20px; +} + +#home_login input { + height: 25px; + font-size: 20px; + margin-bottom: 20px; + width: 100%; +} +#home_login input[type="submit"] { + height: 31px; + background: url(/media/dashboard/img/login_btn.png) top left repeat-x; + border: 1px solid #206cb5; + float: left; + margin: 0 10px 0 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -border-radius: 3px; + color: #fff; + font-weight: bold; + width: 121px; + font-size: 18px; + text-shadow: #06416e -1px -1px 2px; + cursor: pointer; + clear: both; +} + +#home_login input[type="submit"]:hover { + background-position: center left; +} + +#home_login input[type="submit"]:active { + background-position: bottom left; +} + +#home_login div { + float: right; + width: 125px; + margin-right: 0; + margin-left: 0; + margin-bottom: 0; +} + +#home_login div a { + margin: 0; + padding: 0; + color: rgba(255,0,4,0.75) !important; + display: inline; +} +#home_login div a:hover { + color: rgba(255,0,4,1) !important; + +} + +#tab_content { + float: left; + margin-left: 25px; + width: 538px; +} + +.block { + float: left; + width: 254px; + margin-right: 30px; + background-color: #dff2ff; + border: 1px solid #b1e7ff; +} + +#last.block { + margin-right: 0; +} + +.block ul { + list-style: none; + padding: 0; + margin: 0; +} + +.block ul li.odd { + background: #d2edff; +} +.block ul li { + border-bottom: 1px solid #ccc; +} + +.block ul li.last { + border: navajowhite; +} + +.block a { + font-size: 12px; + display: block; + padding-bottom: 10px; + padding-top: 10px; + padding-left: 10px; + color: #0a4a7a !important; +} + +#tab_content.home { + margin-left: 0; + width: 888px; + float: left; +} +#projects { + float: left; + margin: 0 20px 0 0; + width: 456px; + +} +#projects li { + border-bottom: 1px solid #bce3ff; +} + +#projects a { + display: block; + background: url(/media/dashboard/img/server_icon.png) no-repeat 13px 9px; + font-size: 14px; + padding-left: 58px; + height: 35px; + padding-top: 5px; + padding-bottom: 5px; + z-index: 100; + text-shadow: #000000 0 0 0; +} + +#projects a:hover { + color: #fff; + background-color: #b8e1ff; + text-decoration: none; +} + +#projects a:active { + background-color: #30a9ff; +} + +span.data { + color: #0d66a9; + font-size: 11px; + display: block; +} + +#dashboard_nav { + float: left; + list-style: none; + margin: 0; + width: 154px; + height: 400px; +} + +#dashboard_nav a { + background: url(/media/dashboard/img/nav_bg.png) top left repeat-x; + display: block; + height: 16px; + color: #666; + padding: 7px; + width: 140px; + margin-bottom: 0; +} + +#dashboard_nav li.active { + width: 155px; +} + +#dashboard_nav li.active a { + background: #f2f5f7; + width: 141px; + border-bottom: 1px solid #333; +} + +#dashboard_nav a:hover{ + background-position: bottom left; +} + +#right_content { + float: left; + width: 743px; + padding: 20px; +} + +#welcome { + float: left; + width: 350px; + margin-right: 20px; +} + +ul#content_nav { + margin: 0 0 20px; + list-style: none; + float: left; +} + +ul#content_nav li { + background: #444 ; + float: left; + margin-right: 10px; + -webkit-border-radius: 5px; + -moz-border-radius: 3px; + -border-radius: 3px; + margin-bottom: 15px; + width: 847px; + padding: 1px 20px 0; +} + +ul#content_nav li:hover { + opacity: 0.9; +} + +ul#content_nav a { + font-weight: normal; + height: 50px; +} + +ul#content_nav a:hover { + color: #fff; +} + +ul#content_nav li a span { + font-size: 24px; + font-weight: bold; + display: block; +} + +a#lnk_board { + background: url(/media/dashboard/img/chat_icon.png) no-repeat 0 12px; + display: block; + height: 18px; + color: #e5e5e5; + text-shadow: #595959 0 1px 2px; + padding: 7px 7px 7px 51px; + text-decoration: none; + float: left; + width: 809px; +} + +a#lnk_wiki { + background: url(/media/dashboard/img/book_icon.png) no-repeat 0 12px; + display: block; + height: 18px; + width: 809px; + color: #e5e5e5; + padding: 7px 7px 7px 50px; + text-decoration: none; + text-shadow: #595959 0 1px 2px; + float: left; + +} + +#home_resources { + float: left; + width: 408px; + margin: 0; +} + +#right_content form { + float: left; +} + +#right_content .block { + width: 341px; +} + +#right_content label { + text-align: left; + margin: 10px 0 5px; + font-size: 14px; + text-shadow: #fff 0 1px 2px; +} + +#right_content fieldset { + padding: 20px; + margin: 0; +} + +#right_content .block h2 { + margin: 0 0 5px; +} + +#right_content form input { + width: 90%; + padding: 7px; + height: 15px; + margin-bottom: 10px; +} + + +.block.last { + margin-right: 0; +} + +.ui-widget-content{ + background-image: none !important; +} + +.dash-wrap { + background: url(/media/dashboard/img/content_bg.gif) repeat-y 0 0 !important; +} + +#right_content th, #radar th, fieldset h3, .block h3 { + background: #1b1b1b url(/media/dashboard/img/table_header_bg.png) repeat-x top left; + border: 1px solid #6e6e6e; + text-shadow: #4f4f4f 0 1px 2px; + color: #ebebeb; + font-size: 14px; + height: 22px; +} + +#tab_content.home .block h3 { + margin: 0; + height: 22px; +} + +.block h3 { + margin: 0; + padding-left: 10px; + padding-top: 5px; +} + +.block fieldset h3 { + padding-top: 5px; + padding-left: 10px; + margin: -20px -20px 10px; + height: 17px; +} + +fieldset h3 { + margin-top: -20px; + margin-left: -20px; + padding: 7px 0 5px 8px; + height: 17px; + margin-right: -20px; +} + + +#right_content tr.odd, #radar tr.odd { + background: #dff2ff; +} + +#right_content tr.even, #radar tr.even { + background: #f1f9ff; +} + +#right_content tr.even td.odd, #radar tr.even td.odd { + background: #e9f5ff; +} + +#right_content tr.odd td.odd, #radar tr.odd td.odd { + background: #cceaff; +} + +#right_content table form#instances { + margin-right: -27px; +} + +#right_content table form.volume { + margin-right: -50px; +} + +#right_content table form { + margin-right: -18px; +} + +#right_content input[type="submit"], a.ui-state-default { + height: 35px; + width: auto; + float: right; + cursor: pointer; + margin: 0 4px 0 0; +} + +#right_content input[type="submit"]:hover, a.ui-state-default:hover { + background: url(/media/dashboard/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png); + text-decoration: none; +} + +#right_content input[type="submit"]:active, a.ui-state-default:active { + background-color: #c2ecff; +} + +#right_content fieldset input { + margin-bottom: 10px; + margin-right: 0; + width: 279px; +} + +a.ui-state-default { + padding: 8px; + height: 18px; + margin-left: -23px; +} + +#page_head h2, .page_title h2{ + background: url(/media/dashboard/img/page_header.png) repeat-x top left; + color: #fff; + font-size: 24px; + padding: 8px 20px; + text-shadow: #00294d -1px 0 2px; + margin-top: -10px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -border-radius: 5px; +} + +#page_head p{ + color: #636363; +} + +.home #page_head h2{ + margin-top: 0px !important; +} + +#spinner { + background: url(/media/dashboard/img/spinner.gif) no-repeat; + float: right; + width: 24px; + height: 24px; + margin-top: 1px; + display: none; +} +.home #page_head p { + padding-left: 20px; + padding-right: 20px; +} + +#resources { + float: right; + margin-right: 0; +} + +#frm_launch label{ + display: block; + float: left; + margin-top: 10px; + margin-bottom: 5px; + text-shadow: none; +} + +#frm_launch select, #authorize select { + width: 150px; + float: left; + margin-top: 8px; +} + +#authorize label { + width: 100%; +} + +#frm_launch .odd, #frm_launch .even { + float: left; + width: 326px; + margin: 0 -20px; + padding: 10px; +} + +#frm_launch .odd { + background: #def5ff} + +#frm_launch .even { + background: #c0e5ff; +} + +#frm_launch textarea { + width: 98%; + margin-bottom: 5px; +} + +#frm_launch h3 { + margin-bottom: 0; +} + +span.image_location { + clear: both; + display: block; +} + +.volumes form label { + width: 100%; +} + +.volumes form select { + float: left; + width: 160px; +} + +#right_content .errorlist { + padding: 5px; + margin-top: 0; + height: 15px; + float: left; + width: 283px; + margin-bottom: 10px; +} + +#right_content .errorlist li { + display: block; + float: left; +} + +#frm_launch .errorlist { + margin: 0; +} + +.block fieldset li { + border: none; +} + +.ui-state-highlight.success { + background: #baffd4 !important; + border: 1px solid #72df9b !important; +} + +.ui-state-error { + background: #f99 !important; +} + +.ft_info { + margin-top: 0 !important; +} + +.c7 { + width: 650px; +} + +em { + font-style: italic; + font-size: 12px; +} + +#radar_service td{ + padding: 0 !important; + margin: 0 !important; +} + + +#dlg_launch { + padding: 0; +} + +#dlg_launch #frm_launch div { + width: 385px; +} + +#dlg_launch #frm_launch textarea { + width: 280px; + margin-left: 95px; +} + +#frm_launch input.ui-state-default { + margin-top: 20px !important; + margin-right: -5px !important; +} + +.ui-widget-header { + background: #1b1b1b url(/media/dashboard/img/table_header_bg.png) top left repeat-x!important; + border: none !important; + font-weight: bold !important; + color: #fff !important; +} + +.ui-dialog-buttonpane { + background: #c0e5ff !important; + margin: 0 !important; +} + +form.form-terminate input { + margin-right: 15px !important; +} + +form.form-key-delete input { + position: relative; + margin-left: 30px !important; +} + +#image_launch a { + margin-left: -38px; +} + +.ui-widget .close { + float: right; +} + +p.error { + background-color: #f99; + color: white; + border: 1px solid #ff7676; + font-size: 13px; + padding: 5px; + margin-bottom: 20px; +} + +#radar_service { + float: left; +} + +td.radar_name a{ + display: block; + height: 20px; + padding: 10px; +} + + +tr#heading { + margin-top: -20px !Important; +} + +#service_head { + margin-top: 10px ; +} +#service_stats tr td{ + height: 40px; +} + + +#radar_service th, #service_head th { + height: 20px !important; +} + +#id_community_advprofile_avatar { + width: 300px; +} + +code, pre { + background: #e1e1e1; + padding: 5px; + font-family: monospace; + font-size: 12px; + display: block; + margin-bottom: 20px; +} + +pre code { + background: 0; + margin: 0; +} \ No newline at end of file diff --git a/media/dashboard/css/dashboard_sub.css b/media/dashboard/css/dashboard_sub.css new file mode 100755 index 000000000..c18494f7c --- /dev/null +++ b/media/dashboard/css/dashboard_sub.css @@ -0,0 +1,217 @@ +#content {background:url(/media/dashboard/img/content_shadow.png) no-repeat center top;} +.sphboard_categories { +border-collapse:collapse; +width:100%; +} +.sphboard_categories td, .sphboard_categories th { +border:1px solid gray; +padding:5px; +} +.sphboard_categories th { +white-space:nowrap; +} +.sphboard_threadcount, .sphboard_postcount, .sphboard_threadcount, .sphboard_viewcount { +text-align:right; +width:5%; +} +.sphboard_latestpost { +width:40%; +} +.sphboard_postform { +border:1px solid black; +border-collapse:collapse; +width:80%; +} +.sphboard_postform td, .sphboard_postform th { +padding:3px; +} +.sphboard_postform input[type="text"], .sphboard_postform textarea { +width:80%; +} +.sph_captcha input[type="text"] { +width:100px; +} +.sphboard_post_list { +border-collapse:collapse; +width:100%; +} +.sphboard_post_list td, .sphboard_post_list th { +border:1px solid gray; +padding:5px; +} +.sphboard_post_list td.sphboard_post_subject { +height:10px; +} +.sphboard_post_list td.sphboard_post_body { +min-height:100px; +vertical-align:top; +} +.sphboard_post_list td.sphboard_post_authorinfo { +padding-top:2em; +vertical-align:top; +width:150px; +} +dl.sphboard_post_authorinfo_details dt { +font-weight:bold; +margin:0; +padding:0; +} +dl.sphboard_post_authorinfo_details dt:after { +content:": "; +} +dl.sphboard_post_authorinfo_details dd { +margin:0 0 0 1em; +padding:0; +} +.sphboard_thread_list { +border-collapse:collapse; +width:100%; +} +.sphboard_mainhead { +background-color:#0066CC; +color:white; +} +.sphboard_thread_list td, .sphboard_thread_list th { +border:1px solid gray; +padding:5px; +} +.sphboard_post_body .signature { +border-top:1px solid gray; +color:gray; +display:block; +font-size:smaller; +margin-top:20px; +padding-left:10px; +} +.sphboard_post_body .annotation_not_hidden { +border-bottom:1px solid gray; +font-size:smaller; +} +.sphboard_post_body .attachments { +border-top:1px solid black; +font-size:smaller; +margin-top:20px; +padding-left:10px; +} +.sphboard_post_body .attachments:before { +content:attr(title); +} +.sphboard { +width:100%; +} +.sphboard textarea { +width:100%; +} + +.sphboard label { +margin-left:20px; +width:auto; +float:none; +} + +.sphboard input { +width:100%; +} + +.board_previewarea { +border:2px solid gray; +display:none; +max-height:500px; +overflow:scroll; +padding:5px; +visibility:hidden; +} +.board_threadcount { +float:left; +} +.board_pagination { +display:block; +float:right; +} +.board_postdate { +float:left; +} +.board_controls { +float:right; +} +.polls_percent { +white-space:nowrap; +} +.polls_percentbar { +background-color:#CCCCCC; +font-size:5px; +height:10px; +} +.polls_choices { +list-style:none outside none; +} +ul.sphboard_post_summary { +display:block; +list-style-type:none; +margin:0; +padding:0; +} +.sphboard_post_summary li { +border-bottom:1px dotted gray; +display:block; +margin:0; +padding:1em; +} +.sphboard_post_summary li:hover { +background-color:#DDDDFF; +} +.sphboard_post_summary dt { +padding:0; +} +.sphboard_post_summary dd.category { +display:none; +} +.sphboard_post_summary .postdate { +font-size:x-small; +font-weight:bold; +margin-bottom:1em; +} +.sphboard_post_summary .subject { +} +.sphboard_post_summary .body { +max-height:4em; +overflow:hidden; +} +.sphboard_post_summary li:hover .body { +max-height:20em; +} +table.sphlist_threadlist { +border-collapse:collapse; +width:100%; +} +table.sphlist_threadlist th { +font-size:smaller; +} +table.sphlist_threadlist td, table.sphlist_threadlist th { +border:1px solid gray; +padding:5px; +} +.sphlist_threadlist_newpost { +width:20px; +} +td.sphlist_threadlist_views, td.sphlist_threadlist_posts { +text-align:right; +width:5%; +} +th.sphlist_threadlist_views { +white-space:nowrap; +} +div.sortorder_desc:after { +content:"↓"; +} +div.sortorder_asc:after { +content:"↑"; +} +.sphlist_threadlist_object_count { +float:left; +} +.sphlist_threadlist_pagination { +display:block; +float:right; +} + diff --git a/media/dashboard/css/django-admin-widgets.css b/media/dashboard/css/django-admin-widgets.css new file mode 100644 index 000000000..43521be0f --- /dev/null +++ b/media/dashboard/css/django-admin-widgets.css @@ -0,0 +1,541 @@ +/* +Copyright (c) Django Software Foundation and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Django nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* SELECTOR (FILTER INTERFACE) */ + +.selector { + width: 580px; + float: left; +} + +.selector select { + width: 270px; + height: 17.2em; +} + +.selector-available, .selector-chosen { + float: left; + width: 270px; + text-align: center; + margin-bottom: 5px; +} + +.selector-available h2, .selector-chosen h2 { + border: 1px solid #ccc; + background: #C9DBED url(/media/admin/img/admin/default-bg.gif) bottom left repeat-x; + color: #fff; +} + +.selector .selector-available h2 { + background: white url(/media/admin/img/admin/nav-bg.gif) bottom left repeat-x; + color: #666; +} + +.selector .selector-filter { + background: white; + border: 1px solid #ccc; + border-width: 0 1px; + padding: 3px; + color: #999; + font-size: 10px; + margin: 0; + text-align: left; +} + +.selector .selector-chosen .selector-filter { + padding: 4px 5px; +} + +.selector .selector-available input { + width: 230px; +} + +.selector ul.selector-chooser { + float: left; + width: 22px; + height: 50px; + background: url(/media/admin/img/admin/chooser-bg.gif) top center no-repeat; + margin: 8em 3px 0 3px; + padding: 0; +} + +.selector-chooser li { + margin: 0; + padding: 3px; + list-style-type: none; +} + +.selector select { + margin-bottom: 5px; + margin-top: 0; +} + +.selector-add, .selector-remove { + width: 16px; + height: 16px; + display: block; + text-indent: -3000px; +} + +.selector-add { + background: url(/media/admin/img/admin/selector-add.gif) top center no-repeat; + margin-bottom: 2px; +} + +.selector-remove { + background: url(/media/admin/img/admin/selector-remove.gif) top center no-repeat; +} + +a.selector-chooseall, a.selector-clearall { + display: block; + width: 6em; + text-align: left; + margin-left: auto; + margin-right: auto; + font-weight: bold; + color: #666; + padding: 3px 0 3px 18px; +} + +a.selector-chooseall:hover, a.selector-clearall:hover { + color: #036; +} + +a.selector-chooseall { + width: 7em; + background: url(/media/admin/img/admin/selector-addall.gif) left center no-repeat; +} + +a.selector-clearall { + background: url(/media/admin/img/admin/selector-removeall.gif) left center no-repeat; +} + + +/* STACKED SELECTORS */ + +.stacked { + float: left; + width: 500px; +} + +.stacked select { + width: 480px; + height: 10.1em; +} + +.stacked .selector-available, .stacked .selector-chosen { + width: 480px; +} + +.stacked .selector-available { + margin-bottom: 0; +} + +.stacked .selector-available input { + width: 442px; +} + +.stacked ul.selector-chooser { + height: 22px; + width: 50px; + margin: 0 0 3px 40%; + background: url(/media/admin/img/admin/chooser_stacked-bg.gif) top center no-repeat; +} + +.stacked .selector-chooser li { + float: left; + padding: 3px 3px 3px 5px; +} + +.stacked .selector-chooseall, .stacked .selector-clearall { + display: none; +} + +.stacked .selector-add { + background-image: url(/media/admin/img/admin/selector_stacked-add.gif); +} + +.stacked .selector-remove { + background-image: url(/media/admin/img/admin/selector_stacked-remove.gif); +} + + +/* DATE AND TIME */ + +p.datetime { + line-height: 20px; + margin: 0; + padding: 0; + color: #666; + font-size: 11px; + font-weight: bold; +} + +.datetime span { + font-size: 11px; + color: #ccc; + font-weight: normal; + white-space: nowrap; +} + +table p.datetime { + font-size: 10px; + margin-left: 0; + padding-left: 0; +} + +/* FILE UPLOADS */ + +p.file-upload { + line-height: 20px; + margin: 0; + padding: 0; + color: #666; + font-size: 11px; + font-weight: bold; +} + +.file-upload a { + font-weight: normal; +} + +.file-upload .deletelink { + margin-left: 5px; +} + +/* CALENDARS & CLOCKS */ + +.calendarbox, .clockbox { + margin: 5px auto; + font-size: 11px; + width: 16em; + text-align: center; + background: white; + position: relative; +} + +.clockbox { + width: auto; +} + +.calendar { + margin: 0; + padding: 0; +} + +.calendar table { + margin: 0; + padding: 0; + border-collapse: collapse; + background: white; + width: 99%; +} + +.calendar caption, .calendarbox h2 { + margin: 0; + font-size: 11px; + text-align: center; + border-top: none; +} + +.calendar th { + font-size: 10px; + color: #666; + padding: 2px 3px; + text-align: center; + background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) 0 50% repeat-x; + border-bottom: 1px solid #ddd; +} + +.calendar td { + font-size: 11px; + text-align: center; + padding: 0; + border-top: 1px solid #eee; + border-bottom: none; +} + +.calendar td.selected a { + background: #C9DBED; +} + +.calendar td.nonday { + background: #efefef; +} + +.calendar td.today a { + background: #ffc; +} + +.calendar td a, .timelist a { + display: block; + font-weight: bold; + padding: 4px; + text-decoration: none; + color: #444; +} + +.calendar td a:hover, .timelist a:hover { + background: #5b80b2; + color: white; +} + +.calendar td a:active, .timelist a:active { + background: #036; + color: white; +} + +.calendarnav { + font-size: 10px; + text-align: center; + color: #ccc; + margin: 0; + padding: 1px 3px; +} + +.calendarnav a:link, #calendarnav a:visited, #calendarnav a:hover { + color: #999; +} + +.calendar-shortcuts { + background: white; + font-size: 10px; + line-height: 11px; + border-top: 1px solid #eee; + padding: 3px 0 4px; + color: #ccc; +} + +.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { + display: block; + position: absolute; + font-weight: bold; + font-size: 12px; + background: #C9DBED url(/media/admin/img/admin/default-bg.gif) bottom left repeat-x; + padding: 1px 4px 2px 4px; + color: white; +} + +.calendarnav-previous:hover, .calendarnav-next:hover { + background: #036; +} + +.calendarnav-previous { + top: 0; + left: 0; +} + +.calendarnav-next { + top: 0; + right: 0; +} + +.calendar-cancel { + margin: 0 !important; + padding: 0; + font-size: 10px; + background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) 0 50% repeat-x; + border-top: 1px solid #ddd; +} + +.calendar-cancel a { + padding: 2px; + color: #999; +} + +ul.timelist, .timelist li { + list-style-type: none; + margin: 0; + padding: 0; +} + +.timelist a { + padding: 2px; +} + +/* INLINE ORDERER */ + +ul.orderer { + position: relative; + padding: 0 !important; + margin: 0 !important; + list-style-type: none; +} + +ul.orderer li { + list-style-type: none; + display: block; + padding: 0; + margin: 0; + border: 1px solid #bbb; + border-width: 0 1px 1px 0; + white-space: nowrap; + overflow: hidden; + background: #e2e2e2 url(/media/admin/img/admin/nav-bg-grabber.gif) repeat-y; +} + +ul.orderer li:hover { + cursor: move; + background-color: #ddd; +} + +ul.orderer li a.selector { + margin-left: 12px; + overflow: hidden; + width: 83%; + font-size: 10px !important; + padding: 0.6em 0; +} + +ul.orderer li a:link, ul.orderer li a:visited { + color: #333; +} + +ul.orderer li .inline-deletelink { + position: absolute; + right: 4px; + margin-top: 0.6em; +} + +ul.orderer li.selected { + background-color: #f8f8f8; + border-right-color: #f8f8f8; +} + +ul.orderer li.deleted { + background: #bbb url(/media/admin/img/admin/deleted-overlay.gif); +} + +ul.orderer li.deleted a:link, ul.orderer li.deleted a:visited { + color: #888; +} + +ul.orderer li.deleted .inline-deletelink { + background-image: url(/media/admin/img/admin/inline-restore.png); +} + +ul.orderer li.deleted:hover, ul.orderer li.deleted a.selector:hover { + cursor: default; +} + +/* EDIT INLINE */ + +.inline-deletelink { + display: block; + text-indent: -9999px; + background: transparent url(/media/admin/img/admin/inline-delete.png) no-repeat; + width: 15px; + height: 15px; + margin: 0.4em 0; + border: 0px none; +} + +.inline-deletelink:hover { + background-position: -15px 0; + cursor: pointer; +} + +.editinline button.addlink { + border: 0px none; + color: #5b80b2; + font-size: 100%; + cursor: pointer; +} + +.editinline button.addlink:hover { + color: #036; + cursor: pointer; +} + +.editinline table .help { + text-align: right; + float: right; + padding-left: 2em; +} + +.editinline tfoot .addlink { + white-space: nowrap; +} + +.editinline table thead th:last-child { + border-left: none; +} + +.editinline tr.deleted { + background: #ddd url(/media/admin/img/admin/deleted-overlay.gif); +} + +.editinline tr.deleted .inline-deletelink { + background-image: url(/media/admin/img/admin/inline-restore.png); +} + +.editinline tr.deleted td:hover { + cursor: default; +} + +.editinline tr.deleted td:first-child { + background-image: none !important; +} + +/* EDIT INLINE - STACKED */ + +.editinline-stacked { + min-width: 758px; +} + +.editinline-stacked .inline-object { + margin-left: 210px; + background: white; +} + +.editinline-stacked .inline-source { + float: left; + width: 200px; + background: #f8f8f8; +} + +.editinline-stacked .inline-splitter { + float: left; + width: 9px; + background: #f8f8f8 url(/media/admin/img/admin/inline-splitter-bg.gif) 50% 50% no-repeat; + border-right: 1px solid #ccc; +} + +.editinline-stacked .controls { + clear: both; + background: #e1e1e1 url(/media/admin/img/admin/nav-bg.gif) top left repeat-x; + padding: 3px 4px; + font-size: 11px; + border-top: 1px solid #ddd; +} + + +form#send_credentials { + clear: both; +} diff --git a/media/dashboard/css/global.css b/media/dashboard/css/global.css new file mode 100644 index 000000000..de269489c --- /dev/null +++ b/media/dashboard/css/global.css @@ -0,0 +1,18 @@ +html, body, div, span, img, h1, h2, h3, h4, h5, h6, p, big, small, a, del, em, strong, sub, sup, code, pre, dl, dt, dd, ol, ul, li, blockquote, q, form, label, legend, fieldset, input, select, textarea, table, tbody, tfoot, thead, caption, tr, th, td{font:normal normal normal 100%/1.22em 'Helvetica', Arial, sans-serif;margin:0;padding:0}p, h1, h2, h3, h4, h5, h6, ol, ul, table{margin-bottom:20px}body{background-color:#FBFEFF;background-position:50% top;background-repeat:repeat-x;color:#333;font-size:.875em}img, fieldset{border:0}h1, h2, h3, h4, h5, h6, strong{font-weight:bold}h1, h2, h3{margin-bottom:15px}h1{font-size:1.3em}h2{font-size:1.2em}h3, big{font-size:1.1em}h4{font-size:1em}h5, small{font-size:.9em}h6, .tiny{font-size:.8em}a{color:#06c;font-weight:bold}a:hover{cursor:pointer;text-decoration:underline}a, del{text-decoration:none}sup{vertical-align:text-top}sub{vertical-align:text-bottom}ol, ul{line-height:1.5em;margin-left:30px}ol ol, ol ul, ul ol, ul ul{margin-bottom:0}blockquote, q{quotes: none}blockquote:before, blockquote:after, q:before, q:after{content: '';content: none}table{border-collapse:collapse;border-spacing:0}caption, th{text-align:left}.right{float:right}.left{float:left}img.right{margin:0 0 5px 15px}img.left{margin:0 20px 5px 0}.clr{clear:both}#head, #content, #foot, .box{clear:both;margin:0 auto;width:960px}#content{padding:30px 0 10px} + +.page_title {padding-bottom:30px}.page_side p, .page_side ol, .page_side ul {margin-bottom:5px}.page_side_item{border-bottom:1px solid #adf;margin-bottom:17px;padding-bottom:5px} + +.title_blank {background:url(/media/dashboard/img/title-blank.png) no-repeat top left;color:#fff;display:block;height:74px;font-size:24px;font-weight:bold;line-height:73px;padding-left:25px;} + +.blog_post {border-bottom:1px solid #adf;margin-bottom:15px}.blog_post_last {margin-bottom:20px}.blog_post_info h3, .blog_post_info p {line-height:1.5em}.blog_post_info h3 {display:inline;margin:0}.blog_post_info p {color:#555;font-size:.9em;margin:-2px 0 10px}.blog_comment {margin-left:30px;}.blog_subs ul, .blog_archive ul {list-style:none;margin-left:10px}.blog_subs a {background:url(/media/dashboard/img/item-icon-rss.png) no-repeat;padding:0 0 0 25px;}.blog_subs a, .blog_archive a {display:block;margin:0;height:25px;width:170px;}.blog_archive div {margin-bottom:5px;} + +.pagi_bar {border-bottom:1px solid #adf;font-size:1.2em;margin-bottom:15px;}.pagi_bar span {font-weight:bold;}a.pagi_first, a.pagi_prev, a.pagi_next, a.pagi_last {background:url(/media/dashboard/img/item-icon-pagination.png) no-repeat 0 1px;display:block;height:15px;width:15px;}a.pagi_first, a.pagi_prev, .page_pages, a.pagi_next, a.pagi_last {float:left;}.pagi_pagination {float:right}a:hover.pagi_first {background-position:0 -14px}a.pagi_prev {background-position:-12px 1px}a.pagi_first, a.pagi_prev {margin-right:5px}a.pagi_next {background-position:-24px 1px}a.pagi_last {background-position:-40px 1px}a.pagi_next, a.pagi_last {margin-left:5px;} + +form h2 {background:url(/media/dashboard/img/title-blank-short.png) no-repeat top left;color:#fff;display:block;height:40px;font-size:18px;font-weight:bold;line-height:40px;padding-left:25px;margin:0} +form div, form p {margin:0 15px 5px} form label, form input {margin-right:10px;} form label {display:block;float:left;font-size:.9em;font-weight:bold;margin-left:10px;text-align:right;width:150px;} form input {width:150px;} .form_button {margin:-5px 0 30px 185px;} fieldset {background:#def5ff url(/media/dashboard/img/title-blank-short-foot.png) no-repeat bottom;margin-bottom:25px;padding: 20px 0 15px;} + +.errorlist {background:#fcc;border:1px solid #c66;color:#600;list-style:none;margin:5px 15px 15px 170px;padding:4px 8px 3px;} + +.foot{background:#D0F0FF url(/media/dashboard/img/foot_back.png) repeat-x 50% top}#foot{padding:40px 0 15px}#foot, #foot a{color:#fff}.ft_sitemap div{clear:both;height:20px;margin-bottom:15px}.ft_sitemap ul{list-style:none;margin-left:0}.ft_sitemap ul li{float:left;font-size:.8em;list-style:none;margin:3px 20px 0 0}.ft_sitemap .sub{padding-bottom:15px}.ft_social{float:right}.ft_social a{display:block;float:left;margin-left:10px;height:36px;width:36px}.ft_s_twitter{background:url(/media/dashboard/img/social_icon_twitter.png)}.ft_s_facebook{background:url(/media/dashboard/img/social_icon_facebook.png)}.ft_s_digg{background:url(/media/dashboard/img/social_icon_digg.png)}.ft_s_delicious{background:url(/media/dashboard/img/social_icon_delicious.png)}.ft_s_stumble{background:url(/media/dashboard/img/social_icon_stumble.png)}.ft_s_reddit{background:url(/media/dashboard/img/social_icon_reddit.png)}.ft_s_technorati{background:url(/media/dashboard/img/social_icon_technorati.png)}.ft_s_newsvine{background:url(/media/dashboard/img/social_icon_newsvine.png)}.ft_info{font-size:.9em;margin-top:60px;text-align:right} + +.c3, .c4, .c5, .c6, .c7, .c8, .c9, .c12{display: inline;float: left;position: relative;margin:0 10px 0}.first{margin-left:0}.last{margin-right:0}.c3{width: 220px}.c4{width: 300px}.c5{width: 380px}.c6{width: 460px}.c7{width: 540px}.c8{width: 620px}.c9{width: 700px}.c12{width: 940px}#content .c3 {width: 190px;padding:0 15px}#content .c4 {width: 270px;padding:0 15px}#content .c8 {width: 590px;padding:0 15px}#content .c9 {width: 670px;padding:0 15px} \ No newline at end of file diff --git a/media/dashboard/css/home.css b/media/dashboard/css/home.css new file mode 100644 index 000000000..447efa53c --- /dev/null +++ b/media/dashboard/css/home.css @@ -0,0 +1,745 @@ +.nav { + padding-top:1px; +} +.nav a { + background:url(/media/dashboard/img/home-head-nav.png) no-repeat 0 0; + display:block; + float:left; + height:84px; + width:78px +} +.account a, .nav a { + color:#fff;font-weight:normal; +} +.account { + float:right;height:62px;width:390px; +} +.account a { + display:block;float:right;font-size:.9em;margin:12px 0;padding:8px; +} +#content { + padding:15px 0 10px; +} +.page_title { + padding-bottom:5px; +} + +table { + width: 100%; margin-bottom: 25px +} +th { + background: #333; color: white; padding: 4px 8px; font-size: 1.2em; +} +td { + padding: 4px 8px; +} +.odd { + background: #adf; +} +.section { + background: #333; color: white; padding: 4px 8px; font-size: 1.5em +} + +/* __ */ + +#bread_crumbs { + background: #2d2d2d; + float: left; + width: 920px; + color: #989898; + border-top: 1px solid #000; + margin-left: 10px; + padding: 0 5px 0 15px; +} + +#bread_crumbs ul { + float: left; + margin: 0; + padding: 0; +} +#bread_crumbs ul li { + float: left; + margin-right: 10px; + list-style: none; +} + +#bread_crumbs ul li a { + background: url(/media/dashboard/img/bread_crumb.gif) top right no-repeat; + display: block; + color: #ccc; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 25px; +} + +#bread_crumbs ul li a:hover { + color: #fff; +} + +ul#links { + list-style: none; + margin: 0; + float: left; +} + +#home_login { + width: 445px; +} + +#home_login fieldset { + margin: 0; +} + +#forgot_password { + width: 200px; + display: inline-block; +} +#home_login #error { + color: #fff; + font-size: 14px; + background: rgba(255,0,0,0.51); + padding: 5px; + display: block; + text-align: center; + border-top: 1px solid rgba(255,0,0,0.47); + border-bottom: 1px solid rgba(255,0,0,0.47); +} + + +#home_login label { + display: block; + float: none; + padding: 0; + margin: 0 0 5px; + width: auto; + text-align: left; +} + +#home_login fieldset { + background: 0; + padding: 20px; +} + +#home_login input { + height: 25px; + font-size: 20px; + margin-bottom: 20px; + width: 100%; +} +#home_login input[type="submit"] { + height: 31px; + background: url(/media/dashboard/img/login_btn.png) top left repeat-x; + border: 1px solid #206cb5; + float: left; + margin: 0 10px 0 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -border-radius: 3px; + color: #fff; + font-weight: bold; + width: 121px; + font-size: 18px; + text-shadow: #06416e -1px -1px 2px; + cursor: pointer; + clear: both; +} + +#home_login input[type="submit"]:hover { + background-position: center left; +} + +#home_login input[type="submit"]:active { + background-position: bottom left; +} + +#home_login div { + float: right; + width: 125px; + margin-right: 0; + margin-left: 0; + margin-bottom: 0; +} + +#home_login div a { + margin: 0; + padding: 0; + color: rgba(255,0,4,0.75) !important; + display: inline; +} +#home_login div a:hover { + color: rgba(255,0,4,1) !important; + +} + +#tab_content { + float: left; + margin-left: 25px; + width: 538px; +} + +.block { + float: left; + width: 254px; + margin-right: 30px; + background-color: #dff2ff; + border: 1px solid #b1e7ff; +} + +#last.block { + margin-right: 0; +} + +.block ul { + list-style: none; + padding: 0; + margin: 0; +} + +.block ul li.odd { + background: #d2edff; +} +.block ul li { + border-bottom: 1px solid #ccc; +} + +.block ul li.last { + border: navajowhite; +} + +.block a { + font-size: 12px; + display: block; + padding-bottom: 10px; + padding-top: 10px; + padding-left: 10px; + color: #0a4a7a !important; +} + +#tab_content.home { + margin-left: 30px; + width: 888px; + float: left; +} +#projects { + float: left; + margin: 0 20px 0 0; + width: 456px; + +} +#projects li { + border-bottom: 1px solid #bce3ff; +} + +#projects a { + display: block; + background: url(/media/dashboard/img/server_icon.png) no-repeat 13px 9px; + font-size: 14px; + padding-left: 58px; + height: 35px; + padding-top: 5px; + padding-bottom: 5px; + z-index: 100; + text-shadow: #000000 0 0 0; +} + +#projects a:hover { + color: #fff; + background-color: #b8e1ff; + text-decoration: none; +} + +#projects a:active { + background-color: #30a9ff; +} + +span.data { + color: #0d66a9; + font-size: 11px; + display: block; +} + +#dashboard_nav { + float: left; + list-style: none; + margin: 0; + width: 154px; + height: 400px; +} + +#dashboard_nav a { + background: url(/media/dashboard/img/nav_bg.png) top left repeat-x; + display: block; + height: 16px; + color: #666; + padding: 7px; + width: 140px; + margin-bottom: 0; +} + +#dashboard_nav li.active { + width: 155px; +} + +#dashboard_nav li.active a { + background: #f2f5f7; + width: 141px; + border-bottom: 1px solid #333; +} + +#dashboard_nav a:hover{ + background-position: bottom left; +} + +#right_content { + float: left; + width: 743px; + padding: 20px; +} + +#welcome { + float: left; + width: 350px; + margin-right: 20px; +} + +ul#content_nav { + margin: 0 0 20px; + list-style: none; + float: left; +} + +ul#content_nav li { + background: #444 ; + float: left; + margin-right: 10px; + -webkit-border-radius: 5px; + -moz-border-radius: 3px; + -border-radius: 3px; + margin-bottom: 15px; + width: 847px; + padding: 1px 20px 0; +} + +ul#content_nav li:hover { + opacity: 0.9; +} + +ul#content_nav a { + font-weight: normal; + height: 50px; +} + +ul#content_nav a:hover { + color: #fff; +} + +ul#content_nav li a span { + font-size: 24px; + font-weight: bold; + display: block; + margin-top: 5px; + margin-bottom: 5px; +} + +a#lnk_board { + background: url(/media/dashboard/img/chat_icon.png) no-repeat 0 12px; + display: block; + height: 18px; + color: #e5e5e5; + text-shadow: #595959 0 1px 2px; + padding: 7px 7px 7px 51px; + text-decoration: none; + float: left; + width: 809px; +} + +a#lnk_wiki { + background: url(/media/dashboard/img/book_icon.png) no-repeat 0 12px; + display: block; + height: 18px; + width: 809px; + color: #e5e5e5; + padding: 7px 7px 7px 50px; + text-decoration: none; + text-shadow: #595959 0 1px 2px; + float: left; + +} + +#home_resources { + float: left; + width: 408px; + margin: 0; +} + +#right_content form { + float: left; +} + +#right_content .block { + width: 341px; +} + +#right_content label { + text-align: left; + margin: 10px 0 5px; + font-size: 14px; + text-shadow: #fff 0 1px 2px; +} + +#right_content fieldset { + padding: 20px; + margin: 0; +} + +#right_content .block h2 { + margin: 0 0 5px; +} + +#right_content form input { + width: 90%; + padding: 7px; + height: 15px; + margin-bottom: 10px; +} + + +.block.last { + margin-right: 0; +} + +.ui-widget-content{ + background-image: none !important; +} + +.dash-wrap { + background: url(/media/dashboard/img/content_bg.gif) repeat-y 0 0 !important; +} + +#right_content th, #radar th, fieldset h3, .block h3 { + background: url(/media/dashboard/img/table_header_bg.png) top left repeat-x; + border: 1px solid #6e6e6e; + text-shadow: #4f4f4f 0 1px 2px; + color: #ebebeb; + font-size: 14px; + height: 22px; +} + +#tab_content.home .block h3 { + margin: 0; + height: 22px; +} + +.block h3 { + margin: 0; + padding-left: 10px; + padding-top: 5px; +} + +.block fieldset h3 { + padding-top: 5px; + padding-left: 10px; + margin: -20px -20px 10px; + height: 17px; +} + +fieldset h3 { + margin-top: -20px; + margin-left: -20px; + padding: 7px 0 5px 8px; + height: 17px; + margin-right: -20px; +} + + +#right_content tr.odd, #radar tr.odd { + background: #dff2ff; +} + +#right_content tr.even, #radar tr.even { + background: #f1f9ff; +} + +#right_content tr.even td.odd, #radar tr.even td.odd { + background: #e9f5ff; +} + +#right_content tr.odd td.odd, #radar tr.odd td.odd { + background: #cceaff; +} + +#right_content table form#instances { + margin-right: -27px; +} + +#right_content table form.volume { + margin-right: -50px; +} + +#right_content table form { + margin-right: -18px; +} + +#right_content input[type="submit"], a.ui-state-default { + height: 35px; + width: auto; + float: right; + cursor: pointer; + margin: 0 4px 0 0; +} + +#right_content input[type="submit"]:hover, a.ui-state-default:hover { + background: url(/media/dashboard/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png); + text-decoration: none; +} + +#right_content input[type="submit"]:active, a.ui-state-default:active { + background-color: #c2ecff; +} + +#right_content fieldset input { + margin-bottom: 10px; + margin-right: 0; + width: 279px; +} + +a.ui-state-default { + padding: 8px; + height: 18px; + margin-left: -23px; +} + +#page_head h2, .page_title h2{ + background: url(/media/dashboard/img/page_header.png) repeat-x top left; + color: #fff; + font-size: 24px; + padding: 20px; + text-shadow: #00294d -1px 0 2px; + margin-top: -10px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -border-radius: 5px; +} + +#page_head p{ + color: #636363; + margin-top: 14px; +} + +.home #page_head h2{ + margin-top: 0px !important; +} + +#spinner { + background: url(/media/dashboard/img/spinner.gif) no-repeat; + float: right; + width: 24px; + height: 24px; + margin-top: 1px; + display: none; +} +.home #page_head p { + padding-left: 20px; + padding-right: 20px; +} + +#resources { + float: right; + margin-right: 0; +} + +#frm_launch label{ + display: block; + float: left; + margin-top: 10px; + margin-bottom: 5px; + text-shadow: none; +} + +#frm_launch select, #authorize select { + width: 150px; + float: left; + margin-top: 8px; +} + +#authorize label { + width: 100%; +} + +#frm_launch .odd, #frm_launch .even { + float: left; + width: 326px; + margin: 0 -20px; + padding: 10px; +} + +#frm_launch .odd { + background: #def5ff} + +#frm_launch .even { + background: #c0e5ff; +} + +#frm_launch textarea { + width: 98%; + margin-bottom: 5px; +} + +#frm_launch h3 { + margin-bottom: 0; +} + +span.image_location { + clear: both; + display: block; +} + +.volumes form label { + width: 100%; +} + +.volumes form select { + float: left; + width: 160px; +} + +#right_content .errorlist { + padding: 5px; + margin-top: 0; + height: 15px; + float: left; + width: 283px; + margin-bottom: 10px; +} + +#right_content .errorlist li { + display: block; + float: left; +} + +#frm_launch .errorlist { + margin: 0; +} + +.block fieldset li { + border: none; +} + +.ui-state-highlight.success { + background: #baffd4 !important; + border: 1px solid #72df9b !important; +} + +.ui-state-error { + background: #f99 !important; +} + +.ft_info { + margin-top: 0 !important; +} + +.c7 { + width: 650px; +} + +em { + font-style: italic; + font-size: 12px; +} + +#radar_service td{ + padding: 0 !important; + margin: 0 !important; +} + +#service_head th{ + margin-top: 12px; + height: 22px; +} + +#dlg_launch { + padding: 0; +} + +#dlg_launch #frm_launch div { + width: 385px; +} + +#dlg_launch #frm_launch textarea { + width: 280px; + margin-left: 95px; +} + +#frm_launch input.ui-state-default { + margin-top: 20px !important; + margin-right: -5px !important; +} + +.ui-widget-header { + background: #1b1b1b url(/media/dashboard/img/table_header_bg.png) top left repeat-x!important; + border: none !important; + font-weight: bold !important; + color: #fff !important; +} + +.ui-dialog-buttonpane { + background: #c0e5ff !important; + margin: 0 !important; +} + +form.form-terminate input { + margin-right: 15px !important; +} + +form.form-key-delete input { + position: relative; + margin-left: 30px !important; +} + +#image_launch a { + margin-left: -38px; +} + +.ui-widget .close { + float: right; +} + +p.error { + background-color: #f99; + color: white; + border: 1px solid #ff7676; + font-size: 13px; + padding: 5px; + margin-bottom: 20px; +} + +td.radar_name a{ + display: block; + height: 25px; +} + +#service_head { + margin-bottom: 15px; +} + +#radar_service th, #service_head th { + height: 20px !important; +} + +#id_community_advprofile_avatar { + width: 300px; +} + +code, pre { + background: #e1e1e1; + padding: 5px; + font-family: monospace; + font-size: 12px; + display: block; + margin-bottom: 20px; +} + +pre code { + background: 0; + margin: 0; +} \ No newline at end of file diff --git a/media/dashboard/css/ie7.css b/media/dashboard/css/ie7.css new file mode 100755 index 000000000..3298abba3 --- /dev/null +++ b/media/dashboard/css/ie7.css @@ -0,0 +1,85 @@ +#home_login input[type="submit"] { border: none !important; } +#resources.block h3 { + width: 329px !important; +} + +#frm_launch input[type="submit"]{ + margin-right: -2px !important; +} + +input.create, input.attach { + margin-right: -11px !important; +} +.dash_block .errorlist { + width: 282px !important; + padding-left: 20px !important; +} + +#lnk_board, #lnk_wiki { + padding-top: 20px !important; +} + +h1 a{position:relative !important;} + +#preview { + margin-top: -13px !important; +} + +/*#projects .project.active { + height: 180px; + display: block; + filter: alpha(opacity=100); +} + +#projects .project.inactive { + height: 0; + filter: alpha(opacity=0); +}*/ + +.ft_info { + margin-top: 0; + float: right; +} + +#home_login .error, #home_login .errorlist { + background: #ef767d !important; + border-top: 1px solid #f63e42 !important; + border-bottom: 1px solid #f63e42 !important; + +} + +#radar_service {margin-bottom: 50px !important; float: left;} + +#header h1 a sup { + margin-right: 0px; +} + +#user_info ul li { + list-style: disc inside; + margin-bottom: 2px; +} + +.image_detail, .instance_detail { position: relative; } + +a.launch { + margin-left: 10px !important; + margin-top: 0px; +} + +.image_detail a.launch { + margin-left: 31px !important; +} + +a#edit_image_link, a#edit_instance_link { + margin-left: -40px; +} + +.image_detail .image_privacy input, .image_detail .delete input { + margin-left: -15px; + margin-top: -10px; +} + +.post_status { + width: 20px !important; +} + diff --git a/media/dashboard/css/jquery.tooltip.css b/media/dashboard/css/jquery.tooltip.css new file mode 100644 index 000000000..77d035710 --- /dev/null +++ b/media/dashboard/css/jquery.tooltip.css @@ -0,0 +1,9 @@ +#tooltip { + position: absolute; + z-index: 3000; + border: 1px solid #111; + background-color: #eee; + padding: 5px; + opacity: 0.85; +} +#tooltip h3, #tooltip div { margin: 0; } diff --git a/media/dashboard/css/new_dash.css b/media/dashboard/css/new_dash.css new file mode 100644 index 000000000..df361011c --- /dev/null +++ b/media/dashboard/css/new_dash.css @@ -0,0 +1,1145 @@ +@import url("reset.css"); + +/* Misc */ +body { + background: #bdd4f9 url(../img/body_bg.png) repeat-x top left; + font-family: "Lucida Grande", "Lucida Sans", sans-serif; + font-size: 14px; + line-height: 18px; + margin: 0 !important; +} + +p { + margin-bottom: 10px; +} +h1{font-size: 26px; color: #333;} +h2{font-size: 22px; color: #333;} +h3{font-size: 18px; color: #333;} +h4{font-size: 14px; color: #333;} + +#header h1 a { + background: url(../img/logo.png) no-repeat top left; + text-indent: 69px; + height: 50px; + display: block; + color: #fff; + font-weight: bold; + float: left; + padding: 18px 0 0; + width: 500px; +} + +#header h1 a span { + font-weight: normal; +} + +#header h1 a sup { + color: #ccc; + font-size: 12px; + float: right; + margin-top: -25px; + margin-right: -10px; +} + +a { + color:#06c; + font-weight:bold; + text-decoration: none; +} +a:hover{ cursor:pointer; text-decoration:underline } + +#wrapper { + width: 960px; + margin-right: auto; + margin-left: auto; + margin-bottom: 0; +} + +#content_wrap { + float: left; + width: 100%; + background: #fff; + border: 1px solid #ddd; +/* rounded corners */ + -webkit-border-bottom-right-radius: 10px; + -webkit-border-bottom-left-radius: 10px; + -moz-border-radius-bottomright: 10px; + -moz-border-radius-bottomleft: 10px; + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; + margin-right: 0; + margin-left: 0; + margin-bottom: 25px; + position: relative; + border-top: 0; +} + +/* Header */ + +#header { + font-family: "Helvetica Neue", "Helvetica", Arial; + margin-top: 20px; + height: 69px; +} + +#login { + float: right; +} + +#login a { + color: #fff; + font-weight: normal; +} + +#user_info a { color: #fff; } +#user_info a:hover { color: #e1e1e1; } + +#user_info { + float: right; + color: #fff; + width: 180px; + height: 50px; + text-align: left; +} + +#login_link { + text-decoration: underline; + margin-top: 15px; + float: left; + margin-left: 115px; +} + +#user_info .user { + clear: both; + display: block; + margin-bottom: 5px; + font-size: 12px; +} + +#user_info .user a { + font-size: 14px; +} + +#user_info img { + float: left; + margin-top: 4px; +} + +#user_info ul { + float: left; + list-style-type: disc; + font-size: 11px; + margin-left: 30px; + line-height: 12px; +} +/* Sidebar */ + +#sidebar { + float: left; + width: 240px; + background-color: #b0cdeb; + margin-bottom: 25px; +} + +#navigation ol { + font-size: 12px; + margin-left: 15px; + margin-top: 10px; + margin-bottom: 10px; +} +#navigation li h3 a{ + background: url(../img/nav_bg.png) repeat-x top left; + text-align: center; + font-size: 14px; + height: 31px; + padding-top: 10px; + display: block; + color: #999 !important; + text-shadow: #252525 0 0 3px; +} + +#navigation li h3.active a{ + background-position: 0 -41px; + color: #fff !important; +} + +#navigation li h3 a { + color: #fff; +} + +#projects { + margin-bottom: 20px; +} +#projects a { + color: #416c82; +} + + +.project h4 a{ + background: #e6e6e6; + color: #747474 !important; + padding: 5px 0 5px 10px; + display: block; + text-transform: uppercase; + position: relative; + font-size: 13px; + border-top: 1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; + margin: 10px 0; +} + +.project h4 a:hover { + background: #eee; +} + +.project.active h4 a:hover { + background: #7fc1f8; +} +.project.active h4 a { + background: #689fce; + border-top: 1px solid #ccd4fa; + border-bottom: 1px solid #ccd4fa; + border-color: #4681b2; + color: #fff !important; +} + +.project ul { + line-height: 23px; + margin-left: 14px; + position: relative; +} + +.project ul li { + padding-left: 10px; +} +.project ul li a{ + padding: 5px 5px 5px 10px; + display: block; + position: relative; +} + +.project ul li a:hover { + background: #f7f7f7; +} + +.project ul li.active a { + background: #fff; + border-bottom: 1px solid #999; + border-left: 1px solid #e1e1e1; +} + +/* Content Area */ + +#content { + float: left; + padding: 25px; + width: 670px; +} + +#page_head { + background: #f1f1f1; + padding: 20px; + float: left; + width: 630px; +} + +#page_head p { + margin-top: 11px; + font-size: 16px; + line-height: 21px; + color: #777; +} + +#page_head em { + color: #444; +} +#page_description { + font-size: 13px; +} + +#page_head { + margin-bottom: 25px; +} + +#content table { + width: 100%; + font-size: 12px; + margin-bottom: 25px; +} +#content th { + background: url(../img/table_header_bg.png) repeat-x left; + padding: 5px; + border-right: 1px solid #ccc; + color: #fff; +} + +#content tr td { + background: #deeefc; + text-align: center; + height: 20px; + vertical-align: middle; + padding: 5px; +} + +#content tr td.odd { + background: #edf4ff; +} + +#content tr.even .radar_name { + background: #edf4ff; +} + +#content tr.odd td { + background: #c8deff; +} + +#content tr.odd td.odd { + background: #d2e5ff; +} + +#content tr td.image_location { + width: 60%; + text-align: left; +} + +td#actions { + width: 200px; + text-align: center; +} + +input[type="submit"], input[type="button"], a.launch, a.console, a.reply, .new_thread a, .edit_btns input { + background: url(../img/btn_bg.png) top left repeat-x; + border: 1px solid #95bfff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + cursor: pointer; + color: #417aa6; + font-weight: bold; + height: 30px; + font-size: 12px; + margin: 5px; + float: left; + display: block; + padding: 5px; +} + +a.console, a.launch, a.reply, .new_thread a { + height: 18px !important; + width: 80% !important; +} + +input.delete, input.detach { + width: 95%; +} + +.dash_block input[type="text"] { + padding: 5px; + width: 264px; +} + +.dash_block input.create, .dash_block input.attach { + float: right; + width: 100px; + margin-right: 9px; +} + +.dash_block label { + font-weight: bold; + font-size: 14px; + clear: both; + display: block; + margin-top: 10px; +} + +.dash_block ul.errorlist, table.form .errorlist { + background: #fec6c6; + border: 1px solid #ff8e8e; + margin-left: -21px; + padding: 5px; + margin-bottom: 5px; +} + +table.form .errorlist { + width: 543px; + margin-left: -5px; + margin-right: -3px; +} + +input[type="submit"]:hover, input[type="button"]:hover, a.launch:hover, a.console:hover, a.reply:hover, .new_thread a:hover { + background: url(../img/btn_bg.png) repeat-x left -30px; +} + +input[type="submit"]:active, input[type="button"]:active, a.launch:active, a.console:active, a.reply:active, .new_thread a:active { + background: url(../img/btn_bg.png) repeat-x left -60px; +} + +.dash_block { + float: left; + width: 267px; + background-color: #dff2ff; + border: 1px solid #b1e7ff; + padding: 20px; + margin-left: 52px; + font-size: 12px; + line-height: 23px; +} + +.dash_block.first { + margin-left: 0; +} + +.dash_block h3 { + background: url(../img/table_header_bg.png) repeat-x 0; + font-size: 14px; + padding: 5px 0 5px 10px; + color: #fff; + text-shadow: #000 0 0 3px; + margin-top: -22px; + margin-left: -20px; + width: 297px; + margin-bottom: 11px; +} + +.overview #welcome { + width: 308px; + float: left; +} + +/* Footer */ + +#footer { + clear: both; + margin-bottom: 50px; +} + +.ft_sitemap div{clear:both;margin-bottom:15px; + width: 400px; + float: left; +}.ft_sitemap ul{list-style:none;margin-left:0}.ft_sitemap ul li{float:left;font-size:.8em;list-style:none;margin:3px 20px 0 0} + +.ft_info{ + font-size:.9em; + text-align:right; + float: right; + width: 250px; + margin-top: -65px !imporant; +} + +.c7 { + float: left; +} + + + +#home_login { + width: 445px; +} + +#home_login fieldset { + margin: 0; +} + +#forgot_password { + font-size: 11px; + width: 200px; + display: inline-block; +} +#home_login .error, #home_login .errorlist { + color: #fff; + font-size: 14px; + background: rgba(255,0,0,0.51); + padding: 5px; + display: block; + text-align: center; + border-top: 1px solid rgba(255,0,0,0.47); + border-bottom: 1px solid rgba(255,0,0,0.47); + margin-left: -20px; + width: 435px; +} +#home_login .errorlist { + margin-top: -10px; + margin-bottom: 25px; + text-align: left; +} + +#home_login fieldset { + width: 404px; +} + +#home_login label { + display: block; + float: none; + padding: 0; + margin: 0 0 5px; + width: auto; + text-align: left; +} + +#home_login fieldset { + background: 0; + padding: 20px; +} + +#home_login input { + height: 25px; + font-size: 20px; + margin-bottom: 20px; + width: 99%; +} +#home_login input[type="submit"] { + height: 31px; + background: url(/media/dashboard/img/login_btn.png) top left repeat-x; + border: 1px solid #206cb5; + float: left; + margin: 0 10px 0 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -border-radius: 3px; + color: #fff; + font-weight: bold; + width: 121px; + font-size: 18px; + text-shadow: #06416e -1px -1px 2px; + cursor: pointer; + clear: both; +} + +#home_login input[type="submit"]:hover { + background-position: center left; +} + +#home_login input[type="submit"]:active { + background-position: bottom left; +} + +#home_login.reset h3{ + padding-left: 10px; + padding-top: 6px; +} + +#home_login.reset input[type="submit"]{ + font-size: 12px; + float: right; + margin: 0; +} + +#home_login div { + float: right; + width: 125px; + margin-right: 0; + margin-left: 0; + margin-bottom: 0; +} + +#home_login div a { + margin: 0; + padding: 0; + color: rgba(255,0,4,0.75) !important; + display: inline; +} +#home_login div a:hover { + color: rgba(255,0,4,1) !important; + +} + +.login #home_login.block h3 { + padding-left: 10px; + padding-top: 6px; +} + + +#tab_content { + float: left; + margin-left: 25px; + width: 538px; +} + +.block { + float: left; + width: 254px; + margin-right: 30px; + background-color: #dff2ff; + border: 1px solid #b1e7ff; +} + +.block h3 { + background: url(/media/dashboard/img/table_header_bg.png) top left repeat-x; + text-shadow: #4f4f4f 0 1px 2px; + color: #ebebeb; + font-size: 14px; + height: 22px; + padding: 5px 3px 3px 10px; +} + +#content table { + float: left; +} + +#instances a.console, #instances .terminate { + width: 87px !important; + float: left; + margin-top: 0; + margin-left: 2px; + margin-bottom: 0; +} + +#frm_launch textarea { + width: 264px; +} + +#frm_launch input { + float: right; + margin-right: 17px; + width: 75px; +} + +#frm_launch select { + width: 270px; +} + +.ui-state-highlight { + background: #fcf8d7 !important; +} + +.ui-state-highlight.success { + background: #baffd4 !important; + border: 1px solid #72df9b !important; +} + +.ui-state-error { + background: #f99 !important; +} + +td.detail_wrapper { + padding: 0 !important; + text-align: left !important; + +} +div.image_detail, div.instance_detail { + background: url(/media/dashboard/img/image_detail.png) top left no-repeat; + height: 90px; + margin-left: -10px; + width: 674px; + margin-right: -9px; + padding: 8px 8px 16px; +} + +.image_detail_item, .instance_detail_item { + clear: both; +} +.image_detail .column, .instance_detail .column { + float: left; + width: 265px; +} + +.image_detail #last.column, .instance_detail #last.column { + width: 144px; + float: left; +} +.image_detail .label, .instance_detail .label { + font-weight: bold; + width: 85px; + float: left; +} + +.image_detail .data, .instance_detail .data{ + color: #666; + float: left; +} + +.instance_detail #last.column input, .instance_detail #last.column a { + width: 110px !important; + text-align: center; + margin-bottom: 5px; + font-size: 10px; + height: 25px !important; + display: block; +} + +.instance_detail #last.column { + width: 117px; + float: right; +} +.instance_detail #last.column a { + padding: 0; + padding-top: 2px; + height: 22px !important; +} + + +#edit_image_link, #edit_instance_link { + display: block; + float: left; + font-size: 10px; + margin-left: -50px; + border: 1px solid #e1e1e1; + padding: 0 5px; + color: #579aff; + margin-top: -30px; +} +#edit_image_link:hover { + border: 1px solid #ccc; + color: #1d77ff; +} + +.instance_detail #last.column #edit_instance_link { + width: 75px !important; + float: right; + border: 0; + margin-top: 6px; + margin-right: 20px; + margin-bottom: 0; +} +.privacy { + padding: 5px; + text-transform: uppercase; + text-align: center; + float: right; + width: 102px; + font-weight: bold; +} + +#public.privacy { + background: #c1e3d0; + border: 1px solid #78ca91; + color: #38a74f !important; +} + +#private.privacy { + background: #e3c1c1; + border: 1px solid #ca7878; + color: #a63737 !important; +} + +.image_detail .launch { + text-align: center; + margin-left: 31px; + margin-top: 15px; + width: 100px !important; +} + +#page_head h2 span { + text-transform: uppercase; +} + +#welcome span { + text-transform: uppercase; +} + +table.form tr td input, table.form tr td textarea { + width: 98% !important; +} + +.edit_btns { + float: right; + width: 235px; + margin-right: -5px; + margin-top: -15px; +} + +.edit_btns input{ + width: 100px; + float: right; +} + +#gov_banner { + background: #bfe5ff; + font-size: 10px; + line-height: 14px; + padding: 20px; + border-top: 1px solid; + border-bottom: 1px solid ; + margin-top: 10px; + border-color: #73c6ff; +} + +#content.search #page_head { + width: 630px; +} + +.image_detail .delete { + float: left; +} +.instance_detail .form-terminate input.terminate{ + float: left; + clear: both; + height: 20px; + margin-left: -20px !important; + margin-top: -20px !important; +} + +.image_detail .delete input, #user_edit .deletelink, #update_profile input[type="reset"], .image_detail .image_privacy input, .instance_detail .form-terminate input[type="submit"], .cancel a { + background: 0; + border: none; + color: #FF8885; + text-decoration: underline; + margin-top: -10px; + font-size: 9px; +} + +.image_detail .delete input:hover, #user_edit .deletelink:hover, #update_profile input[type="reset"]:hover, .instance_detail .form-terminate input[type="submit"]:hover, .cancel a:hover { + color: red; +} + +.cancel { + margin-top: 5px; + float: left; +} +.image_privacy input.public { color: #6fba6f; } +.image_privacy input.public:hover { color: green; } + +h3.image_list_heading { + margin-bottom: 10px; +} + +#ami_name { + font-weight:bold; +} + +#user_edit select { + width: 260px; +} + +#user_edit input[type="submit"] { + float: right; + width: 80px; +} + +#user_edit .deletelink { + margin-top: 37px; + display: block; + float: left; + margin-left: -15px; + margin-bottom: -19px; +} + +#user_edit { + width: 628px; +} + +#user_edit .form-row { + margin-bottom: 20px; + float: left; +} + +#user_edit #user_name { + float: left; + margin-top: 10px; +} + +#user_edit label { + float: left; + width: 60px; +} +#user_edit h2 { + font-size: 11px; + text-align: left; + padding-left: 10px; +} + +#user_edit h3 { + width: 658px; +} + +#user_edit input { + width: 219px; + height: 9px; + border: 1px solid #ccc; + margin-left: 7px; +} + +#user_edit select.filtered { + width: 270px; +} + +#user_edit input[type="submit"] { + height: 31px; + margin-right: 0; +} + +.project a.manage_link, .project.active a.manage_link { + width: 22px; + height: 20px; + background: #fff url(../img/gears.png) no-repeat center 4px; + text-indent: -9999px; + border-top: 0; + border-bottom: 0; + border-left: 1px solid #4681b2; + float: right; + margin-top: -40px; +} + +.project a.manage_link { + background-color: #c9c9c9; + border-left: 1px solid #b7b7b7; +} + +.project a.manage_link:hover { + background-color: #f1f1f1 !important; + border-left: 1px solid #b7b7b7; +} + +.project.active a.manage_link { + background-color: #5393c9; +} + +.project.active a.manage_link:hover { + background-color: #80afd6 !important; +} + +a.manage_link:hover { + background: url(../img/gears.png) no-repeat center -23px !important; + +} + +/* Start update profile form */ + +#update_profile { + float: left; +} + +#update_profile .form_section { + padding: 11px 10px 10px 20px; + float: left; + width: 640px; +} + +#update_profile .form_section.even { + background: #e2eaf8; +} + +#update_profile .form_section.odd { + background: #c4d8f8; +} + +#update_profile .form_section label { + font-weight: bold; + width: 190px; + display: block; + float: left; + color: #444; + margin-top: 7px; +} + +#update_profile input[type="text"], #update_profile input[type="password"], #update_profile textarea{ + width: 427px; + border: 1px solid #ccc; + height: 25px; + padding-left: 12px; +} + + #update_profile select { + width: 418px; + border: 1px solid #ccc; + margin-left: 27px; + height: 25px; +} + +#update_profile .separator { + font-size: 18px; + float: left; + background: #f1f1f1; + width: 630px; + padding: 20px; + color: #666; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + margin: 30px 0 0; +} + +#update_profile .separator .helper_text { + display: block; + font-style: italic; + color: #999; + font-size: 12px; + margin: 5px 0 0; +} + +#update_profile .form_section .helper_text { + display: block; + font-style: italic; + color: #575757; + font-size: 12px; + width: 180px; + margin: 5px 0 0; +} + +#update_profile .edit_btns { + margin-top: 5px; + margin-right: 2px; +} + +#update_profile input[type="reset"] { + margin-top: 6px; +} + +#update_profile .errorlist li { + color: red; +} +/* End update profile form */ + +/* regions */ + +#region_selector { + background: #f1f1f1; + padding: 10px; + float: left; + width: 700px; + -webkit-border-top-right-radius: 10px; + -moz-border-radius-topright: 10px; + border-top-right-radius: 10px; +} + +span#project_name { + float: left; +} + +#region_form { + float: right; + display: block; +} + +#region_form label { + font-weight: bold; +} +#region_form select { + min-width: 150px; + padding-left: 10px; + margin-left: 5px; +} +/* end regions */ + +/* start notification widgets */ + +.message { + float: left; +} +.ui-state-highlight, .ui-state-error { + font-size: 14px; + width: 625px; + float: left; + padding: 17px 20px; + min-height: 17px; + margin-bottom: 25px; +} +.ui-state-highlight p { + padding-bottom: 0; + margin: 0; +} + +.close { + float: right; + cursor: pointer; +} + + +p .ui-icon { + float: left; + margin-right: 10px; +} +/* end of notification widgets */ + + +.edit_image input[type="text"], .edit_instance input[type="text"] { + width: 254px !important; +} + +.edit_image input[type="submit"], .edit_instance input[type="submit"] { + float: right; + margin-right: 0; +} +.edit_image textarea, .edit_instance textarea{ + width: 262px; +} + +#desc.data { + width: 169px; + font-size: 10px; + line-height: 14px; + height: 50px; +} + +.toc { + border-bottom: 1px solid #e2e2e2; + border-top: 1px solid #86B5EA; +} + +#spinner { + background: url(/media/dashboard/img/spinner.gif) no-repeat; + float: right; + width: 24px; + height: 24px; + margin-top: -10px; + margin-right: -10px; + display: none; +} + +#radar_service table, #radar_service td { + margin: 0 !important; + padding: 0 !important; +} + +#radar #radar_service td { + margin: 0; +} + + #radar_service table td { + padding: 5px !important; +} + +#radar .radar_name { + padding: 10px !important; +} + +td.status img { + float: left; + margin-left: 10px; +} +td.status span.name { + display: block; + float: left; + font-size: 14px; + margin-left: 15px; + margin-top: 3px; +} + +.home #projects { + float: left; + margin: 0 20px 0 0; + width: 456px; + +} +.home #projects li { + border-bottom: 1px solid #bce3ff; +} + +.home #projects a { + display: block; + background: url(/media/dashboard/img/server_icon.png) no-repeat 13px 9px; + font-size: 14px; + padding-left: 58px; + height: 35px; + padding-top: 5px; + padding-bottom: 5px; + z-index: 100; + text-shadow: #000000 0 0 0; +} + +.home #projects a:hover { + background-color: #b8e1ff; + text-decoration: none; +} + +.home #projects a:active { + background-color: #30a9ff; +} + +.home span.data { + color: #0d66a9; + font-size: 11px; + display: block; +} + + + diff --git a/media/dashboard/css/openstack.css b/media/dashboard/css/openstack.css new file mode 100644 index 000000000..8bfd12106 --- /dev/null +++ b/media/dashboard/css/openstack.css @@ -0,0 +1,63 @@ +body { + background: #f1f4f6; + font-family: "Lucida Grande", "Lucida Sans", sans-serif; + font-size: 14px; + line-height: 18px; + margin: 0 !important; +} + +#header h1 a { + background: url(../img/logo.gif) no-repeat top left; + color: #6e6d6e; + margin-left: 30px; + margin-bottom: 20px; + padding: 24px 0 0 15px; +} + +#content_wrap { + float: left; + width: 100%; + background: #fff; + border: 1px solid #ddd; + -webkit-border-bottom-right-radius: 10px; + -webkit-border-bottom-left-radius: 10px; + -moz-border-radius-bottomright: 10px; + -moz-border-radius-bottomleft: 10px; + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; + -webkit-border-top-right-radius: 10px; + -webkit-border-top-left-radius: 10px; + -moz-border-radius-topright: 10px; + -moz-border-radius-topleft: 10px; + border-top-right-radius: 10px; + border-top-left-radius: 10px; + margin-right: 0; + margin-left: 0; + margin-bottom: 25px; + position: relative; +} + +#tab_content.home { + margin: 0; +} + +#content.home, #content.login { + width: 909px; +} + +#content.home #page_head, #content.login #page_head { + width: 870px; +} + +#header a { color: #6e6d6e; } +#header a:hover { color: #989698; } + +#user_info { + float: right; + color: #6e6d6e; + width: 180px; + height: 50px; + text-align: left; +} + + diff --git a/media/dashboard/css/reset.css b/media/dashboard/css/reset.css new file mode 100644 index 000000000..26cd169c8 --- /dev/null +++ b/media/dashboard/css/reset.css @@ -0,0 +1,50 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + vertical-align: baseline; + background: transparent; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/media/dashboard/img/body_bg.gif b/media/dashboard/img/body_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..e45adc52b0c32040c87d5f2482e370b2c0515739 GIT binary patch literal 12957 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 T(rt4DJ?KI8gV2QrG#~&w`l##Y literal 0 HcmV?d00001 diff --git a/media/dashboard/img/body_bg.png b/media/dashboard/img/body_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..e4625ec052f884097d20485bdd653239339bcd60 GIT binary patch literal 2217 zcmc&!dr(tX9zOS(Cy-l`a)DAp>PQ3(k(Tk%7L$c^ps@0=VA72tVoEFQ797eJ8LKxD zs6y#PZP6}7gEGoQ$}1|kB_uGk1s@cJ7At~K=&~hJqf4}7aPp!>Dx2!at5V?2z~ zK4_dr!vKaM1i_&DCmQYJJ@zo_>F|(qI*Md_$FDX4YPI`~0`da_dqu(=h zYX9Kc%cQe^u6^wImcbpVkGY$0JO4kWGc&G#omlnJ%^B=QaLzHLin48&rC;`LxqHpH zxh3vO`j#fe-M0$ePE&@5=CmVo>ur2akt%Uu+T%_8f+!)A}vhCMLE=rp~aH#R((FugW$ukZAru3dMF(Xf5Qev4;% z_WQX`0FEs?>cO{3-$ru>3$Qw z)5m^V)g>5-mzbTBd*4`Ei}I}RM>lLNjdU&B`89fhw=e!vEN$YR{Lt_YS!oFVn*WIM%jZ5FwvsO{<)~KY2kyA1IY7_tM(WArv-nMnNPbHQJ57|ZaYQY!z za~Hi*EZrWe&M>L+nlf}d(|m@A4bdM4&9J$Vp8``qPl$}Kv$aIMThC~?T9d9W4x0Qg zku!c^Y7@D?MRRrAOK&va2(t{&?g}{LsvfMH>j+nwHKv_2tcx$$12+ywugDqi9dauY z{%4L44?J5wGwM^;i8*tRMzzV~1}o<%TLI7g9cq(bigO;b=teT(5&LNMny%_^+{Jz~ zedX(ps*0z0Zsx%If>$;2Gvcx;ebteAwz(N_M7X#~AlLmoCIEq$JR zO_Rw1D+@dRW_q#iPK73D_xb&IP^)<9vd8o7tB885B<6GVHE~Jqk;y07PX`-LE0D(iR}LbQKjq|+Oak%F1XM0UP6rf<*PXH<8(%De@lBB@dvJs|4dl>!yIaEOZaP&}SLJdo-p-bzlBZ(x(0-J~Uh z%@CR)%DgD*RXKZlqUFPu>#Tzwg?g$&CiQoomH3`Dc8UI3x<{yRBUst)ro68pJr|J} zhRq*1mQ$KW)*+}4b!5rZeB)ov!+%v|e;%6=(&LCWX7e;M2L>E!091=2^iO8Ad#H+6 zf<_ccQ;i&9blrrX8v(Wg^kWuJ1$q_P;-$=1oPF3_CL}{fi=4s}+7foHM9sJE1!_Sq z7jvjzB-wOW@F@99UI1=xPB<7u#d4-_nUu8}cYzf#y~&BmTtTi6n!tBReS{^sAz$He zk0L^EP#Bf1xGVx51z!krff;Be5cO+1fb>lDhfaxJ!5m7Kp^nm)$2mwGR+d^ypaaAv zs&yHqHFhK*PyyyBL6=}%{Pjku4{*?yk%yQTmW;!GnG&XwwZ_l`_VT+!45JHV^z~@P z5>y&QhYHc=y0}+((hn@tqU!=vEy}d!*H{3uvRK%mHmhAQ@P{kTxBV^bzv+ zA?PzvjkKCtFiQ)AS~D4BpkmoL03?TA|4t!fE!|Hhb(T?8>{ga=;cKN0JbVYgW%x>zEC|QTxBXd;|IhiI^I!f5hd+22 literal 0 HcmV?d00001 diff --git a/media/dashboard/img/book_icon.png b/media/dashboard/img/book_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bd41e7de4f3b93ad7f4090282417bb45781c1e4b GIT binary patch literal 741 zcmV+G_xm>pRXejJ@y>6hd!$JeODJq#(9=kBF4eL%u^{BhHpHB#dWghM(6ljY6C_F^W)#AyPfpb$!_U@hVmV0&6$_u!{8)k!**i+GSVZ zxu@~L{a&=l_p*hhn2_)a99_NVup|Un&WbJ=cvC8JAvNL0wdXWJBE(@_OY0raq(V;< zuE0RjRx+oQ&QvgpBh?N`8Tt++2`vOqXrp$Rw7`pIi@};ym0)?p5~Qf0N`TH3xQP+o z7c}?Kdy=3U151IM7~w#ze@OSFY*}O7S+FiOzh?SK6ATBdrIDqfW&7+Av)ANMTNS`(R8iRn9t7Avo;dyJ%Hpq_w88(-4ewJg%w$Yc>uBWYmb zf=e#tE}^vX`>CB3G%Kw$*PPxK{YD)p@Rpy2n^O3Nlc@j{pMz X1WAI*wjTuj00000NkvXXu0mjf$HrSe literal 0 HcmV?d00001 diff --git a/media/dashboard/img/bread_crumb.gif b/media/dashboard/img/bread_crumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..49d92810c331f733a24eb0164aaa8fb2a0680c30 GIT binary patch literal 2027 zcmeHG`%_bA8a}x}0s*;CU?Jy{lXFgP2n=W~Y)xV)5G)NLgg_8T3L+?NfGAS6CL{rZ zBB6lXZvqyIx@c=#-R^9-sAOAbD79Ue(OFcqLR&|6aIv$UVUPZ_f5bjNd^6uO&-c9V z`#tlfq`m#dF2h?u1h6>g- zFpN*C#H3g(B5*<^5(-EX#}FQZ@=+dw2uVsL#Bdzp@%R`PXYx&kfa0z!6)7M zd<2HMTrL75BC^rfH82cEc_<7)FoHlZOqPUU$Y3x)FywSPVUj{%5QN6Y#z+a53v#2l z#`la_Sy@GeMFj-~AOxZ)e|UHpg233A*o1@xhr`j*(z0(~eqmuz;+u)3rKMaDbhWrh zXtFd0gE22JFGrh`lA7Av+bfmH)M~X(r-MK!N0$R~L5(K6yQk;$>C@TS*?PVH~)GF zk?3{KuhItokN^1r_%}KQ0LVRf#l6}IfVl;vGzZ1FtTMGPD%L?wbuLvvDGE`WZZ*9- zC_fN49w|hqXnY#2(B@+}7Y7F{88bWOx zlJduaHRR?Wc8XmGragO{-UCUG7s~BFpO5Hv(a)KaZ~dd2N{M_!+9cBt(l|>Fj#5#e z;=Q%YJ>N=mhV=PYD=&nO{oOw*u0$T|NsIcX)4Lpd`fr+mRUP;(zv9gg7(YfNgu;=D zmp{4K?=$}G#l&C?tAX}yeX+}=0n~v@K>_zovtA>&|MM@Vtg!8T8267GobK5h+OW9s zb{V#N2%upleX-uA`1|onI%RZItE#^J!o_5bvE4D1AR^4|rgU``GXyrjjvX7@hNrRAhH}J0DBcN8TR4v-rM-d)WiM-#E?OUsiVW zdwT%e($`ho6tkxQ8~u%yvN@(wu;AKvrt2f?dCNSpn|_tic&n^XiWuR);3b z%9QK!O_kD?>fVorYNwLZ7yhGIb5bfxTBD%NYW%%Ew>VrhY?k5TI ztP59{_p?5Guq^jqE8o=Vu1CFm7??G0Wx}aBmp}MEiBWWgehHbXQrE^hT74{k*}9qL z!%eb8GduThu3+7!oh9S3X6p@JhsF>LjJT*4`-SUEZg=t8;U~<=vMSpN37RWsJuUdM zBk&jbSr$9BIC6HO(lqS#`Hnz)n|}9tSN^%|MCl5C{GU6Yr6e3f*3;tdT(jNy6UZ^M z&-`v>JX`6mQC;<&8?zF_F6U07`C0!#AAw61ntJw#@!|FN{u*HaMDv9qB~0U@60)Bj ze-*HYxd2cjXRai#Gt9#I#;@+JOwApYBr=$)KgUrRH2wp>hUd2MjfU>Nji1x$FQt=D zu2^pi+O`oAx zw^2fhXMF35XxqNjT>Iu)atMv{X!FBS03o2}G9THcBOPeE@x&wb=$Ff zL6s;v!w8T@mmE(e&Q$fBnq#XYE$?Kj8)z37q=$?iI<#1HcKt32j7K<1IWd+&O{!%% g9Z=7gPWmS|>-52eLYH`Z;LE zuqr}JBw-WF-S2J^)ghArR{i9uv5x3dE5niI%JgNNZg= z8}#OS5=t(ka4ON-f;YQ763_vZaaSKQ9Nra(ye^My@0cR+JOpM0Vl%0v6vHE?4e%zC z_9=9b#)AyW_yeI(=m5^r3{BB2#jrjm#QRyErt!i@plG%_$j8NwLM-G7L>fYir>JZ; zOJ@C~X{RWL<2X-)WqkQA<@--zCoy6HDh?cT*jCWR4K{e8EIwib8Jc#& zG>3{^jHOLzI%(6wBfU+yBrBTX`FXq~@lnHpvY~*eC=f`2)HIc6gABujIe#d^AxrEC zhsB5(5QBks&d|YmMJVMjsnWeEsPHFIgfu`L?W6d1DZlfnL9u?aX?sDS7T1}YQ z5jphZ_vC8pVR2{M^vr5-T~${*Us-&=a4DP{Yamy|SiRD?XL;Yk%Db1(s>bh+!TOnd z^T$3<&dtAgefI0d)j1(BwfE<*iN%G>-5=P8KT|gsr*^%)Mm_!Vz52@R+PBKPcN+E4 rQ<>n>lSl7w96hmpdiGOYe?>KRv3qpsP2c|W-ZPE1_lUQ{C(r!>#f4nL literal 0 HcmV?d00001 diff --git a/media/dashboard/img/chat_icon.png b/media/dashboard/img/chat_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a905633f63d13626db2466870b4a714e3c03d885 GIT binary patch literal 847 zcmV-V1F-ywP)xonU{L{i%jg)fSxLJGiLDu-L!VFk@wAewE|hk= z-3$fgYQNua>$=`vYHnv8;JvR=+&bqzp}eN=!jK-Idz8O0rkhTu+kXZU;Oe zJAhPZ)6^5-HF5*M{vsfuMgsSJP-O{})Sl=|09VKlC9p07j#T*=RC-*9FPQqD+XU-F z02ct-nm_{JHxxfpi@KI^>MO8~`PR%L&Zy?RZ3CKXi&uFZ35|nIA;TWPF zDs1`-fVMHn4Usb6ZEmuR1BhU>rV!N=>EDpr9n?HS<;z$#TGTvZZlb1Uf{(9U5>`4% z)miLWGA+V(XoITB7OzvP)sVB5t~5>*)qfz6dyDie?Ij}DY@T@Y08(Sru^P{zml5_l zpTq+skL18o-Yj{x)(%VkCpjwM;I+HgdNbcx$`Ow?nN#OEw3IUoZl8&CbA_K4o$gAf z%b0*6DVfN03asM6lReqw6Q7X&r%s*{H}b`$EX|iVwc3Fv>CQqYPCX{d9>bpoTBB&F zo6y;a#+BA1Ektg$U)DyKwk{4ZNQ#@`sxVe6DT$A8E+3@WpTv{lPP56W-2zrRS#nVk zbGQYjWtUAF-r30BOUSF-r(*$=A6O z?!sn6*9HrjfZ7KYx5X=MaG+OfC}#0=p??!3=+*b`bB{>_zY@4Lq}Q3ASxAx?{F)2L zr1RIXk>MSvwLDyLkhg(`a`rX6;dFslKk~?)U8a7AzPg>wkg-S5oGrv{g+juCFW5IbV`{zhd2co7>aZ&leDrk?KFOr08UbXnQjYgEasS CR4hXP literal 0 HcmV?d00001 diff --git a/media/dashboard/img/content_shadow.png b/media/dashboard/img/content_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..658a725fe50146781ac68e599a3a20d79ef309cd GIT binary patch literal 2836 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 FV1n+cZ7l!* literal 0 HcmV?d00001 diff --git a/media/dashboard/img/foot_back.png b/media/dashboard/img/foot_back.png new file mode 100644 index 0000000000000000000000000000000000000000..13f81049cb90d23831ba39149f8bfab82ab3eb35 GIT binary patch literal 2524 zcmXw*dpHz`8phwJPwoE+pB;4W7WSOU5g zivm3%cH2Tn2u*)z^Pw4tL!}^{#NLCj6hVaxO&=&b!X^tIl~D77x+m1!VSXOWTqv@k z9R$}BsJKB}0Cp~{GvHhVqbLx3aNrmW!=dU41r{{CpyYr9$D!f^=NsS@f|-Rq&e(Sd z2TS014Jz(%x{kfBuuOqf3fykM;R@)PurGib7kgZAuo&c1prye&754csOITbJHtAqx z!!8FzU+5fzK^V->!6F%kC!u#7cDW#UL;nOwp)iVsb|BP`f*KFY^DsRFY65KYVR9P# zkHE1A>^v~C;a-Nr}-&4NiRH28413fe_5F2Fb%lvpSqgiQuCe4y$9HBV^rLG%OTA}o@? zmB2U(ntsp^fw~uT0&utjdW+6OV0a2H#h|6bJQ2n*a3}!f3{2yo?hS)bFmhm*4aci6 ziG$NMkRxH04t755^T4?Z{ZKfU!1OGXopC?_@@W{KhRR{=b%RAB_IrZp4W}YF6@r!t zr(*1NfsQ|z7eR@EO(rbP!%BobPS6!V!xzdN>~n^i2egjCDh+1wAo_!H7J4CYxelvj z&@-SN0E2LNNT44MbuK(_!ssMemq3Y!ZZL>ESf{}_7R*bqOon*^NGHI`hhYS$aZvLH zfd^(D+{GaJKraY}ksyVE6b>zaX!(K?2ZwxkR)KyA1`)7MheZmUuY-OOmPsH-gO&eNG#*1@wLk-2_o5p|Tiyya! zm=67ST2U}@+&ir9@R{I^xtp77Jcic2GTgUGdo6eAt96V~Z_WGKr5pm0u$u6_R(w>! zLrVS)?v>q%j<;CtyA!kUzaCH5mH)hKB5b)r(%|sa z%H&F0R+RQtUE|vHyzP_WF3%uR@)OARzu%2dUB3JPCnd7P%*>E6TB5Bp=h5QRQRa3^ z^+lJ>{OoX-L3f^Q5lwpQ$d5_V-M^(w{IbHibL$puQs{2#)Qi_icetc5?R)>)+Cj&osN!c{7cNt$+YI?h}^4Oiw+Y7&$Dvjx{ls`^AyJgzD zJ!48B%Ac22%ev|D_+&9TDEJ}38m>A7aMYjSdOS5Hao*t&F9)ueKReRz2V zJ*MYVN%Ib&OIeGa`0YULl*LL;WQ&FPrkid8xtEuazMg}dn@mESRWJV{?hp-Z+NvF{g@j~qA1XxA9>!Scd}HYcUA9AjatvE z`I36U8_|Tay?+P$)}E&n**dF{;E~;__a>|qbyJty<%mQ~zCwMVCPj+svQ0^m-rT-Z z)u>X&op>rca-AZ(acukZZDTLmXJ*GY_(#0mNlp5gXs`Fj+`acz#<`#69&I<6N&fI! zE;}=`=md3&PM!Kdw@ej@GH%(=75a!o{Z$odLQ%o{jKM^eo@bAkX-`uXYzF$h@}JVH zV~mM{?JM~WXX3X^+q%2Iw2>1`-M>iCQt*0YJ#&t{rbuqJwB6DE7aBvRQlzk1wSVV2 z%E`!79k9K4qiQXwX*dTpvukbaT0; z&Rs8=r!?8R-`Dl-ij7eUaNg+c?65JOY;X4A>hRk6(zU@Nm6(&8Lf(kTO%10VWjAiD zQ8eC^Txph|{$vrPd-qqjJ-E*b_%i$P<)nqY!8W^9EpIHUFYz-;&Rt!cidXv1)RP9Y zb1Bh|FD52#?_gK1ttans=lC&3>lUUL8XF^A8$+oR({hEkubAeCH4Dqx9O+6&qKPrP z(yb*lu7)99C6R1)ysNCIH&Bwl*|GA)3ct3f_3!<^&2*f9{&nVxiiwHIL2YrD|CcD0 z%bq*C1Ddm>n#iN&md^) zwnezMkrvj*%vM#L7sj=IuAY?dHJ$hE&ueYgj$n)yJX}w&WuNS^w1>>rp6%5z+r~dQDm{Vvb JWn{Og{{UZ$L-_yz literal 0 HcmV?d00001 diff --git a/media/dashboard/img/gears.png b/media/dashboard/img/gears.png new file mode 100644 index 0000000000000000000000000000000000000000..a25cadbe6194dbb2d90f99f723e7caab98c67705 GIT binary patch literal 4701 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 literal 0 HcmV?d00001 diff --git a/media/dashboard/img/header_bg.png b/media/dashboard/img/header_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..b1b926beb1007db55d20776ca5fb01f9c075796e GIT binary patch literal 966 zcmaJ=J#W)M7K`S&!$J-q+(il{m&fv(& zyYlvZuoYt=;1h0x*gp;;9P9E#7mIUpt;%2m;YYfB8C1)v0fRCEG73yNFbhEzDQGjD z%jNC?4I-#QO+{J?PuL<+~GXLs@m)Il-{O7*`bQ^`Fx_G zX(@q7Mg4%=aVm&5W(p>W9Oi}GqX9@1?KbUlT^5mErr?Kj*&v#hNfb3V8rH>H7PxwRk7BgoJJiQ0;7=u zmhE^!Vo&gvg)2eC?Z6=wQ3jy6(9C9w5FxW%fa!E8Q#7@VfeL8@&A29Y zx;_c`jO$);OAEQlDEOi9Y!c?35Vy>z4<;#NZ*eTeg?dx2yEqnOAy*Z_s7Yi0YV_<% zOiyy0kF7A~gHHl6?M#gI>f^iT;z{6&S!l*T+WR}p!{PADcs$KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000J-Nkl0|_ByApVR&>iyA9 z+ZxwOEz<_h&KaRnVao4YRb5^E;ekQ_jlO^X{>!5;KYsl9<&o;XC_MV2weIzzPpp64 zi=P7iH+A)Qu=>BNzxj*(v-<7Zw_leN{`wDp{89h*^1@{Dg%a-WnM^1O!jPW_Rclt( z@P`9o$l-8i6s*DpMGl%GH@dR+7D2HH$qO{(h0))_SZnsF$SC;blkxF@rv7<6un0w~ zGq?4|bBui%&!b?+WpGBHG3GgoMI-h9epUyr)kn0he;yxMEaVv9!f3q@DKf=j-->Zh z7%9StA_pjPqnmMz8mVi>Jz-=K6h%gO)kw66<;EyrX?WbTh8z~1MQ~=UQ7war zCB!IXLcns2QDD>@9tf{EJeZ!PC~|^`JST`K3}X;c<^W}Gbj4GP@o7&GiB@GsaMj3q zc0BC~B8#A`y+u%bt+^?3qbr^su#NTUf#6DJ>|#lbUB4to=NKc(lpt!yxFcBdv}-di z8wrZ9ONtB)MP_ux(|s$(dxC3a?d`iFmc*D6TsIOeV*T7TtJTjPUzajt7t1Y1iSfSa zIY00D>N!R!tGm`X?g*C3+S_-X8HI7YrbyA6A~m|q=oVu=?zR#>q;e91C1pymq)bd! zV~P|FMQU`#)3z1kmLOIHF=Yx+rbahdt45wHXG;)U1Vx!Lk10~-F=dKIF<)^?Kyylr zt~jxT=Bdy(^+N|V%#*fdfYHyiB`f0ojtTZD^5q|F{gxi z%;{*dy5^JsoD!oej(4pX@0hPetMbU@O(W~wL2l%V017+sOxHnp1GGP{u( zyIB9g7*idY#Z+e2Uc{VIG@MeSE7I0{Ot;Kp#cXBlsS=|rs+3vW$TQ=XS!@xMMYTL4 zmc&@2S_YX>lWv%;NNr!07`s?$s{^DPW-Dh#A;yG@RU@^Q8Qo&6b7Hgf5n0umWW&XZ z#P(Ie$}vW#%F&Q)xrj;Z+95G6TUblO*xKi$J7!B`l>tSeXGA7GLYD6rFvFn$_Sle3!(dx`?{ZQ6J>$7u=0%Pr=^;u?g z%W4%toDs@az&M)HC1Nx z!5MwVIBsQiY#7THW4UJ>DaKd4W}tb^jIMai8Apw*8OuH6$RdbVXU#r+1EYpw&z}*6 zy_f6H*tL4i7>B&(j6>s%iSfWVq_nr4uLa|t1Vb zDeOJd-1@y^eR&*?59rbQ{rwvC?O*hS`>YbN?v z;b_R#;d5KiyRQy>L)rhr*kdOj{JMM4tEc`A`Q0})Z>Sufml4|A2o2nZd^Q-bCorD{ z;PG3);5Xp@zOcOi9^kXyDfnH7hP{t||J@LS?$W%D<0rk*^}6F5_K?xL7Y@Bs7o$rKYcnmbtIJ zIll#!s0f9Sx4=IEM@xVyg}0-Fle>VoFx7wQ3jDMGGtEjx@m~;ty)f1P3Q9*=jY87d z&60wfg^k&qjfahbhn6BanExS|-F=(@rryj>?$rOS zAZ6)p?q=%(uyuB#_>ZEgnX?B#nCf4o|0@MYm;WQ{^x>ED8}dYihiva_)LC#C-e zDl7m0LmeIe5854|VflaK{r?np*Ya_(WYw^AclK~I|F>~g)cy#n``lZxg7r^_dliJ z=iuu7#s3@&+yBUA{TB@De>V32wbB1Q z^{;yVWB#AA{WthOg>UKfuiD-ImG!cncQ*`73#Po3xR&>NPR~{@N|Ne42`TlzT zw(|;Fe!f44Oa?liJ%e6WoIN1qL2tjUi-W)$$0zU4UdV4-JJ^7L^}d&vw?WP<(Ubw};o)`1bg?2yAjA7?d~O2GTd~?W?T`dhfa)wN?-Eo_RmzycDg@wXd1+<#850 zX6<`$1kHi_E_>_){GmNhH+?&Kr~Xg=K~D*3@=d_^L zj#s~)t1Hmp<1zl5U*ei?($5w9ut1TW+uQy9HX}9YN>I?lao5WVImzQx-+MsN_Kq^d zq4()Uu;=ZMcZ+?p0f-TJ*)%@#J_YXk1A^`K^0)R~dLR`I0--gWuRYei2DS&tU0Rm~ zi3AyMx4m}sSeQs-)#)&rAAAdZAXkAbJk(9f|Gu=+E_#b=d5o%a^D`;Yl-8Si%)}mJ-=9^c?NHYRC!xL8=sGRYB^2cl|<7m zjaPeXJqe_ z@ENkc%HOvglml*=88}8a3E9m))Xc!h(*?f1`LG4x&%1ewdJXqZmgcq0onuwrpEvDT zrf=T6T}^LJk91;>0-?2x4_o%}W!=Y^NlOTHv(W9k`^JYo>vWyOC!wF+qhPqUgC_?y zM$oY#dcq=$k0^fkakXmU6N8@Yc&Tsv-g)h7(bv1)+h5pr+Xays?< zdmGksVpL0PPf%MIC`th*DN)(?peyu%4g;%kz=QdZDN@QpbhPQ_2~iiU!(yuj!8mra*(F^Sqx7IVaFRy)p!s58W= z1ZtHin-j>fW&`A@O$1S&G|B$k0+TW<`!B4w?FWKHeOK#F-W zfmG~bDa2Qf zK05cV6pjate>Dgt4ep(dr8RU%yRhSSSl|6Jczm`5DJL!;Ftq(ZM0sVXsk~B?hn>@P z7x9x>`P!}O)Evoq6V!0ekit1oy!u?5*Rk#|p* z%*zTISOG703wDts?7Giex8AWTd}8O&C1SAAO)$b5lI9}E zDRaRw?;df=LIxf)eP64u=ePiuKtrad>mrhr$$qtIq z_2LsmxAkugfvfNE$4<1|{MZj=EW+!0&UeCgnkirLvnVbfy)Il>KjoiN(x=z5A;-cL zZJIA1^M+@gK4Ixf0H%mB7s)9w4TmW~h?ev7J!-Ehzb@c(h{+ty;1`#aY#VjIi<#3?L;-%`T&}ke~bKbK2-IiQNIqHAz2Wv>Hj_A4S>x4vzZkXAiMURtWRcI`vqOM8QOA+p;R`Wv$9x_DQx{`LpoNHXAXO$QYB12LWr!tM`_>wtYo~ zNL;Lc67Y=Ud`knK7r6|l#MO+rgT&;a?P5six!tqtA8xT0(XC@$XQR-cwthKR3@jNq zo+6GDY+Fzfw-9bbNqHCvsLeHD+1}UoIWJ7H^OaeTOKR3C?hueWQ#7lCe*rxXpMMB4 zo}7nqmp{Xa_!Ig%NS~L~Z=^u%!ov#wWo%?I9&rG4#y8W3vwG}YjlTN3(QT zDDDKKwv$__Uwt_wmJICzOO9mLEoQ8kC81lQX^txOPu8z6d2*;b)z)q_@3}@rSme7H zj)?H^@APW!JcJfCTn6WdaPD6>;np$1lROD&eV#i8JDDKSes!-%fW8omwkumWpfu|!C@i=RbO}V zW&(-!Jv9|Za$N{8eobODPZ@qzTg0S2E>;=&*$8KR+DeXwHG8ph#XgZtT7_35PmVqX zY~00WRdi;Kc%0LOMy1F=K9JudIR0VHr1VWNLFTOENST(Cdt`=0QfrCAmSG9~Q)8uH z6DXEf1RNp+39-P&0T{R(yEsHuoAu7X33&mhgD?1#?y)a~|40|XAOHo&?2AN@{R}mg zeqeJueO-4?7BM_lPY!ntUE1=a`=Zrn|3<*FX+p-mhsa4lslG9G&Oa+nsuO`@10G*n z8KCS(A@zW&xz)-7fpdOdpS;)LlT+ta-r8sk(Q{~G!!99VZBCuCzc=lvmE@X>-B*9L zEW|tdZZPD9SH&f)*pB?B?k_TD-Q%xF#S4h$iILy1{y1yHtUl~(szcn3`YmyQhXlE? z4Sf>(lPEh*q%sUnS$f2Vwigf1E6A55BQ(%xW{Gli9i|I+#k!(pKK#ob5e9&f{4DnL z<~LlE0*hmsbJd#wpelO+xY$xt#Eu5qVlJ{faSO>vq4+yHq33?hiLwO7KRQfgyJt|4 z`6`Q?w8@$j!!lpWa~4yP0TCsJBEG9&4O&UE8ACP#v5Qet?)`0C;q7HqWEpiyx4A_g~ZGosR17Z>T-A2`_?n&XW$l~tyd()v;2vTf@uy@UL z0}ldov-4FM#N&mc@n@@+sQcPe=(^nM!a?yLxyC>l&*&3)e|uu20*cg}Iov zFw;kG-RGjB*tn`=`$J!eQ*I?Z=4-?66t91qC&$krx>Mt6`@3#T0(lhxUVZ@u-1@4T zAw0MSDBIe?tll5CE{Z5@vroPXV$bu8m@G?YU%+AB*_pC?sFO`ElWnn(Qc$4Ib`!vG zY0Uv|sB`?$7AvpolzN)DaqS(gy!cG0i;(>RCu*yX&4NfBfA+kn-+4hsDY2_fMjpU? zL&P1&wvxA8Ah)JROcsPv1;yt3VW+*5XA%-v2U_@kCCQ)`fsz{*z%tzap>)GG!ltpy zRdX7s`qUJ7#o6sW7k5Y@VI-CvGuI!-gQnld)F3|-9uR9Ko2@eK;k#ZD0E#!zOs2mj zH{?_5p5tRh;JrU{!zZt{cX{%@h-$^Kd{-itiZ5(TIb;&OF__?Ob-w88rs`6IiQKfj z#<-jpU*jj3-q3S>*KLJ)Wg9Fdw6guRk=KzU9X0X*L@#dlc8Oc29*=w32Ji911o3P* zQf0!Xt+g*IKvX%q)Nz$Q7H&Nt&UZ4c9GCQ1w`~3r%&jFa{~P!+>v;R)2i!T`c8<~J z=MMc!HLT>H%HTkTTQ5u_D%{VDRmNf}3*18Nx+&;A8S>5Mij19%XaH6fq`M$>xonoG z4_E=B0p1liC6{Rg9hE0=i>#d5rqS;mzaeIu$TCmOUvz7N)36+tyT`WN!q~a2V*Ov9 z@2>+5h;P{PI$llo5p<$Ce3)pHfak)pRAEENv?f~9TmN=&5* z+(#!b!(2IKH#_;p0*e&g?T4V|#1By(iMH z+lL{X*=ktq@MWZZ+=B3a>eTcvll{lvI4n-Rwil5jng;fR`0H$p#$uPrz#H9yjuSE- z8^D2uL~Rt6S)|9Wms4NFl;EM_PbS;tsZpK#`d1;W2)`IXPIR*PVY z;zurD5^T-MczTve-HyhMIJatQMi^z){(J-o)Gn<_M;M6soEel3nG+k(q36pFHqDbg z=XtY=l?9u}hrzmTN30juI{jb^S8O4O_XG~}NKqbAEi>sHACyAeTs)=_3HNrBl zn~O@R)V{1tkq#4i)qPX)e+h`6=qdM;`kR@cx#-FI@X0s1Vqe8Nq~jzdMxrkM%9+7m zkp5ZNMC=Bs5%KeucbJq-M(jLgC_jr?Z8s6tO-v!yhxOVn_w(B9Gt+3Q|)@K9d)>~1$8OujU;0j>bkB@*+2QO2xCtNbT|o4g<2g<_#B5|>Joyzk;t#to(P9&JibSU8NT!mbBw zknA*WWI}%wWb{o9Ddr2mBe!!%s6^LRT;%St&$%vZ<>W_?(wfE&%?Vm^cO8dIc~!kI zk1qLW`>5;)s2H+v)!(?Np0qYD^*z<>=KdTGUgR%wW2mGL1whua#mD7My*d+Ytn`nm z0te`uw=n7MvV{i$22;%Gyc1L>)w<93iBuYgssiY;$cTTbHT?oEEoadiXoXjoCY%x6`t!7XlZ=jV zbIPSZC$>WH&~0rNe|tXe2uKEx)xQYY7zoQ1H1<=V!uW_AL-4j}w=ZmzuEKwSo9}W4 zV0VGoC5VDrrK`O3Nd8OTX*%b1p@e;**&(u z#KKS^Yh#&DbTJv=DqFq$%f(U2N9@;-fs8!92YOV7q=0~n-;+K(dKD1zyj-c zDuk^~8}JpjY?Tk-yM+zAR+AU$f%(ChYo7#GkZ3kbCy|qIm`QHSEaNJrYDT9T0(|wu za9b@me<)IBIiCLD2;fRHU`mljSUA3si7nr64ZG6NH-HCb-)yC4SEm-8SXF)|`e|sf z9M@J~y>{ntkgug^(EEca#k z?vZkOoWWFcKBqG}t-wS`l)YSO0)e@5k>-q3O1M7iDCxHnY2)n{78(NsCq|f)3f;QoUdhpa zmXtUEcR{=r0%2UML*F5B-LlzhR~B+F;J+a4>}jE@HPhm-5Ig0Eb+tOpZF1k59d#zr zF}F}IbHh5*Vt$6Fnv%`W!9bRV9S=*~Q%%j+mJhsr(yG7CqzK7SBUQ2*OBo#}It{$K z@#9wKuy=Nku|KCsS}8(!6A^7;><>khu4P1u=A6AjG^f`59_fM|DN;k&@GYhAJv|MsvWd-3`aTe{`qD`ioF_qY*=W- z*u96aoVyVsMjq#&Z_og-##a*F!abMvSCZaQvRu79;1X?NVioa zNL1d+y#q{JBSU#DH=6UQ)BVp_D)?7}+AOsD`Sa*YNL0HLJyKUvJJ9+;;dp)?Zlm40 z48of{gT)69kW|Lk`Gja5x@}LcYZW!d`b!_iP?i-~Y%dr0o1R^iaY{Y4xA>5LwkC-8 zLg(`_!MV}+&1j9On~UW^hp|!m(~pgl9g*p5&6Oz*&0sRMRXqSsY3g%*g_xc z(h-mq$(!PNWws5VYf}~kX-j*XLfLTHnRzg= zQC7UL0W69zfwi29(lWEIW{EcsVfKj z^4!0j2RZ>Duf}MlQ3ti_0|z#YU#^-_i*zL=Z!yyE`i4Hl<`G)WL~n(t^~^; z9?oVI-(D69?in$!@RvQMy^GX8^5DycDnx}Tzb-1To!!}o9hEr}@khLBgHc9*hj0VN z9|~y2>wcrM`@F1;Ux#$(qtP(8*)|j9ThFg2mIIyw^}6$CYqjSJ5;S938>-Attn>5# zm_mhl*q09^x{t-i$E|M)ldN@E_M=MerR38--3jRurP}2lg4J9`J;7|caxR+Ra$0nO zs5e0dN-7(@d9bM=^dhjE6u92#=wpR_95FH7KQK{TwoEAQ(AONv2|AklLOXG2cb|+} zj!I};e^?v}IbmbIak4OobTjo>1BD=3x zz2j>y6k~o0asbwuKJLbe+ytd>ad-n1W}=Ty@K;z9DMC~0MngU73vm%xE-Q-;>=(6Rrix}wPjGyB#eF$?U2?N9!rP<;X&SDORwW~Y@lkcJ#rtP81;kd4{ zeY~6=B8j%;(lWjTEU$Yy+GG!neW=P+IgaXqGAbk!DXC1tgc?w7@imaz$b7vy6&ZrA zcr9`xONPHFAE=u*f6IRy-p>9isfwGF^Rr~0<+qZ3yA$UjV^v{6#pgRd2cNTm@`W8g z^yf{b`!wEj%*IMXi_>9wkt6MJBjISaHJ;(?>k~m#&=K9YGbR`-79^K#OUg#iGhA-L zcUM0zzjr{%maeaZ*MYGb9EIY&hSdXl9(KKCc2e>a3g6@wG0;CS0yP-CNEc*wWc&V9 ziPok1Q=Z(O#zS6r-=dL^>|1vs$Zr@cJ92y3Ih&-^k#CWfX8lSoDcmRIT@IZo)v9!l z+<=xOZl~+4aapkEYzldi)`_t*_d<=8tNf&&Je!ru@m$54O41)lwvF7GPY1n5DQ>#_ zs&Z1*EqS^p?;pz>51)mmbE4CSdG1p*Pvb;e?2*=@)Mw+;A?tKO2W|hA6N#0={vj1@ zJ?bRQUT5%gC(@5QZF?-YEQWRmMl2dMvcCb+J`V+$Q7G1Ws#0J^xWJ*st8l@jVJ2*; zAg>BWi|2}#%KnyIe5?XEdSMOBm7K9UbNdUwiFHfzhsiHd-;ABnSy8NpUY!uRYiz_0 zFdjljwg}V$OI1jSl1#DqqEvn!!d*z}M^>f{xs{Qco9<_&MQ>|G{^XlL(xA#;c8^bn z9;Ucq+{aJ3e;__mDgs$_v&Z#X_nbs~!O@$ZMzdKL2&>U9q7Mk^DB;xOg*A#G>8CtZ zjsxT!iO|q`ERJ~;6$i}=fh;T^5>xrAKM1${6|Y&LaP8rX&T1hk*wkZ^U^b{4EwiXt6Gd5D`) zxNRXmiSh8kG5)P`tXW;b=L$Pd4}il->r2=1ULa43_53pQ;t-Q}8+Ye8dnn-Tf0p`d zxfuRfyUqu9>ySOlL%-n(Dz0a<@B@EhhpTg7D7>m8Hur3)%PVCC~bv3jO_66-;@9#0hCvLIDMCucq_|xE47Z!E@z@ZHymI56hOQpIS5? z!r_0;^fcT&nfi6r0RrJi-`U-aASHXUr#q}zJd?^j2-$??M51s}mFjdmPRm?qO5snR zE^g_dNLCKJPHZq7@wMVKwMAAi1H{1p`m(dU&re^N2h)bnH#Ubv!700k>!Y|f={5bP1#F1Gf}1f zD+V8&C1@j=B~sUEhKSr{;}}kWi!HCrKmA4~AM+r~$#yY+q9VT4lpj+A|9NtRlHg}@ z%cdy$0RyCd|C2=LeGG2I_(dBlD zqGKb=QXEtTqf_bfy6UNOV%imox@pFYGA)PS9gJ2wMSeH0$$+h2UVk{>WRCstDO(}U zHRSiVi8Ypr9hNJ0k&ZDl6-x{s*{Q1cO2x6#vjo)A77Cb&aOXa>M}=xQFGJd}s zydxnneLzQntCyaYMdo)md<&B_H$o`sWzmddF)WfT?^LaX-lgG6vIiJh4(g+J99pXi za{SEE)@x}v-}b!-nUrJRz4>F@m<)2+m#8;CIm4DN2n1`p{l4oe&HW z-Zl4uECIH-BxCN<%_6 zw@lDy$$6M2$DguoA1c-3YpE%<91_wqPPo5&XItUVhNK&cv9VyP|ft0kOi&gv4YS}?CsaxmO2@Ula*Dg z8uEtD88rVS9^z9GQGi^7mMBe8#KtW&oPVgW3b!?}uOT@1Ijev#+N_On6Zpf9tsNOH zkkn!17)1VG^!2eX{PN%B!d6$=p73?w8zbL{ieGQxOkwIwAm%9ZOW@(}=#ASg_yUda z(1M`B`qrFVLAS2coL#Sz0xqgaIIrfoLrc7T38;YD{vxF?RXRMFXnls?S*U}DK;E$` zZ0=@+dW-InKNhp71{ot7?Vy{SeC?Wyao$En&9TX5n~p|K!A0y%GyJTyfrZ(-M3F{l zc}!yB5FtJ5$7AQR@sA`&AXCNLM@HAI1+l=7+<6x&DCj zcPs>1Htb8(2wf4adfn7~DOMjy~b6(+uaqi0L{IRy-sZ~Dr=?O zMmzJWnOyCB)f&7sQS7EH)$pgh!zqtEO#o7)^md8%ZGVFLGf!Mxv(^OXt#|}|_^4wT z5nY{^p@*!UsbAs(lWAsQi{;6y5=C2#j;#(-!9c}l659j6L=(P602i7UpWJ>9tZu1K zJ8B5V7GZ1fr(84Qdj1dV4s_q;uxuDrQMEJ6URmspZ5U`ZA#8SCicBI~cvCGcLoQQ_ zoON{e!@+@6TR5iYyNZ8I{!lA2x#lL)_=(c$NIIhQ$sHs>)9ovfe(wP->X>IBgOi;8 z#N{w$SKfb>)TRoIPGnX>w@8b89<>bd7+Y+`%4pdJlDTD_Y~2n&*?$COvCg~A?J4Ug z#Zo4VBo(gHiAwk#;jVEnJPGSi5SNM*4-aQ`AJ0=371P14t^0l(gE~zhiZ)AVI>1Y9 z`vBt&gbb4B!afH!Ad-sW{chB4d*i3&C8czKt$%Uq;yO>|)vik5+B%~X8E-?I}J zO*v7|K-1obo9wRP%&?^zSFBL^?$*VYHi}%o8MT=ErTbBVVeJc5!8t(N1k2da*43_X zUZ~j0+LkBM8RYFvFsfNM!TjW;-(TwFi5ds@x;fm~BU{!5ue@f4=|N(=+uQe%?AQww!a1j)nF@SWLEC?@UY2D8n+jWkF{^_?--H; zpqZQ}Vx3DC&W2YJARnacL{-1JBWv)XwpG)>jmsQ&rqs!-oJ58>r6M7X%1(pB4hUJo1f zz8g}DAkR*MRmnoGf}aOg9G!ocXKeSC5b--oat4oUo+n?asCvrM0ccxFcWlcblNsDC zR(UOxCax%egj&f+Uv@1HCgGjHfjm5w;EBZaCNce}BVqPY#qzSOyLgJZ68&EpdVi8{fR{QOWtW`afW{)i=D$ubF!GWS?$Ryc}by@f7_WRq* zYi?ff4Okq|T%Q6JYwBLyQ+3UYl9i*|G0n@8yM1}k&vCwtPiN?v5I7vQD+^4lpsx91 z&UoqwZk;1kroXKf4Vsit3x+Hlp-RyWM5sr9LXCJ&G2a_^naP^;eoiX{xgB`FEVp4| zIrk>47H9~b)?6Njsx|8;+XslPOBzk%&?_u#1O&r>hR-1pJr&^nX)M#c7{-a^8KFaq z_KVIYt6S~!&O+!Pz5+GImvF>*Avo&+-rLyw_)}*?NZ!_N23$=aQZcWM-8B_N;{FyY z`%9@W$D@fxW+PT8%T@i%2Z2xomZ2!>b!uGBj4a&F2F8Hl1n7Q5pi;<*W(GL)Q^^G1 zlGb&x>Lp5KasI}^j=%Kk3h0zZ)xgu+<>X*Q1VsVcrRGY9B-3oT%Vr=3sJ5pOnJe_$=*z`9)xKnK$m+&HM50$9F z7>@NQ#hPt;hgN*^hEsOnYlv-!4k=PPgB-Q76=`!6EKLcGJC{awD;X78 z0$hf`R|rA^`ho?5P_ss2{os6tBoD_ZG#S248OS4sqFxZ7lvh^>#(2}gXOVtRc>2-z zgrZq}xI}P)Fc=Lc!`&N#S&933|Hd2BM-2oMIVp^OIFCFUu1Q;*8>TL$y&`L@y^X#I zw4cFXw?=Ss37QUB%-gOlX$cRLe9EC^BKpfxC2-NFB_jiaj%|Sn5=nU$m32eNDJ#=r zsHQ$gay&Q|rljW=Q|*_zl@4S>$@n!1i(90n*kK-n?D^PH6*lTTwJl1dD;r~x_#Kwv zPmFQazDR1Kr?dL~K}Q8qW6Yn(V-CjicH(;?e9{B{-y|IZ5f44tl=$2jQ`EENdzCEO3J!i++1d!>QFkaz zS}IJQ2E%lks&2VyT{kAK!)ug5!}49LH%ci9vP9D3W_n1emy_dP7g)7L?a9jpeKM`o z9nyal#P4PEEwZu1Z+#?Z)LW&lsm-3R)Yu06yWy?Tv2H_cu2_`MoLoj=K8i~Y(jWYt z@0>lz#3WIY`}P3piuKj~2q)u0(%gMcr;!wc!d35-{?q8amDlI7)+$R zvV24*2sP12?EX^EK7ADrLPZcaWq2zaew)_uR#)elauaE&cgJ~whmVT&{XF&;h8bJ4 zHLi7V3&U}08;+&irEbHbIBq0$bCtL2k%!q~(c%`0$2A zeO-l5pW#!7cnm1adU;(M^z4tLGy=7nxBb}(T0}k8Miwg)-QM-Qh*2C%oR@p=BPvTw z5EMk)zL5pU!zEPowP7%chBuRu-YsuDZ3w{{)}82aFAR~``WYf^F7X0Z?k8|B!4 ze2w3Juo(V4NqrIS5rUvWxdLe1UwY!U6R8TGTRG{O`J@z{Ls4R#S-uP%v;>?3rw(b= zhsRn}@Pn_?LpKiOxvTpJ&|#4LKSeNKjP>jmhJ;_9%Hxzz!Xre4{z=MV&0Gv5eQRP_ zAcza;A*SPT#6K{5t1tU$_8_p|1~$t`CCNDmK5{mp0MR@g2(udid{j9$ZNfUPYI{bfBKOeJcg4>KTB}{ zICnMD8n zUwtutLOxl)8sw$%yC$q)2|`Jr`FLhNLl1Ib(8y2C9TA%XEiB0c+o)M@F~>XRyOvgO z+hB%r<%Rg=`oZ5Da9An3C6Zw7Oy#3PA4+@`5`la1hDfLAKuR9vL8fSgJ_-g8Vm84& z+4LqZqax`{3=R?=hp&-~_pgQA*t=aD-0(J!7&~UtqM+$_%mug(he1i4v-}_bx>?kN z#1=Z2nBGTB=!{R5bh@=(0rxJ^+2h1wZlf?SH zNS$|yHqAM-S(5v%{7O5)5||(UR6SiRWnA>PrbzM=7if24n0nAS7YbDf7njVuzeNsF zRehr$22>4m!gV_VuPX%{Fg4L|J4E1$O2 zKrI+U!{wQvFUw7!h)Oz}+AD=m^O94W4oemmu|xzfARr5foEr!z@Fr4*#OF+_D;YgK z+_fSJbT_crYi>Ape!*QiE;a}JY+!kAzN5^cHLs%J`5WjiOW6W~~oxG96KMgwEAN@7`~r>(_!CSz}1iUMOGT z$c-BdU4ss~F_7qK?)#9M-f#Y-58C6E)!$nmbgIZucto6X^TVfU?cXtWgBbwMA9=#L z98GFjtl=mh3KpuyfM7nxqbe?Qu|9UzIZ$({bw{@_m{3SDz7o>3Yj)k}P1aPH%{eBn zGUsw!kuKwYVbp}8wSfAmD>B-v41E+P`R^UV=XvTK{6DD}H-(ug6NZ6(j*@DK@$ML> zndyQ%_fU~OQ0p0>#Z|bWx=fuvyo}w+Gs@ESl!$#Yk6AK5-!v~oOQMn!E1P2#U0bAW z4%Wzxj-OS{F4SeSz6eP(!tZ+1(>`J0I@t2i108dI-J#cskqrZ9n_6}bCvj6 zW)Zy>Skfz_R2F7O3bmOQDYueuM!Y?k^t7+yQ2)v@{df_7!gz|cBs=4vvnO0T@X^8e zfkx(iO=Bgtim{KQ6>_{-x;ths`eDGakQ$7L7PJK9#_l0OiR0zRtxBIUQs zs}HUf53n`EtBB&@}b07&gH)7cKQ7ABCq;w#i1|1a8jcMHAYEc|$_|VZo%r@8yd|r`7={ktVf)jVuZYu!xw0Zq5)blHOf8He$f|Tx zevpw2gTBRvbujbueC^qS8+n|lKV3y7{VTNb$(w;INUn?LyrwaXlgo)b(8J?$Z5Bls zB9Us5cfaV_iIQd596T$RNnSz1Qo6B3$(FZ!l@7=2p&7Pb=$g$qD~BlYtxddFQ_#kS zobg?3RtCa9=j4Q6ENSr}RX=OW69HO^xc;T`fFqwHD(zT|)fC$x?VvGOH>-zHcKb6z zLr5Lq<1E3NhpV_|@p}(|t&QPkNtm0_tRK7YTU(x{sDTdcWF$KHN7JvV3R}B%3}BnP zHqFdx&)#k%q0-ox5m~+ZJ7^{(@fQel9DYiZXMmK=&L_0Braq}VV=cwr;b8GA@|Oj5 z$NEO4mc;!gpD`_NR7-lrk|07eciuczb{)c4sQcG1)p{rWXgliHEAJ zqk4KPwi6SFY`dnMFo3$IZtM$mheb85c`oCnE1Y2n7~;g$gZ;1RXMwNhe0qm5+rVvun}PTq4;O{!ZZq+Wj{M(bbA9v+o?1P*Y3{ z5`j@tQFe;)<)SkLNU^g@RqP6z|IK$IgBq#^LP$U4ja|Cfo%> zQ;Mb(=Vt@#a)hntbv-%cmq|{{+tl15ZMCAG1`Tdu z!SC_`8(AGzmxa3f4dg89*XI&p0~?u)u4+2a_5^T1uB!8JJg@+eV3O<*-DZ5lqD%eF z9V7Q)k-deHp*Rga>M7^Go)GC4uFT#2N3G}~K6lyeNNf25gcAv`0XmU(e$mwo^CNQ} zfqQ4+IcI@)HCJJi^&vjhzDfSV10tZP$dpjMaeI+og6q~et%3ew!K3a}(X$m~2k%M8 z(n_6rkvF;K>9eiHUB9y7=MU}&B2Q;W5UoXi(sEp6fp=#0{QGE_-1>%UnxCBNY|>*)U2g?6f>HVI+T^4wuT5pmFw{amC`jvDoAC6crs-X)?T zgpyUkCV#ca!{d4qHW7o%t)2$?d(E(I+utvSbYDoEe0Cqc)il?C!L!8}UpZ(HXqkWy zj(?xxPZG(EuwlFoP!V5YZz2qX3S^_e70|r|A8~$qTyOb9k>S=LO*EPflr1j#mi+Qa z^(A1kt(V7c3AN5jJ{D!DVtbDfU0tQ|5T(DD6Qir1y}(odD_L$brfB>0j6SlNaYijt%GC9xl8SYpcBVHlIzpty3=67q*Hiz4C;i8b!I2=C{c+ zBk6BNs(&Tpl;tEBu`1!#`kI%a0e+PW4@>bqwgO_x1M-B?#wpel1}nNkhL~;zG2Rh% zy!@HB?p;PhzX<&!74g@!>E6+V zDexxQ>g@(2*(-M9=?!;6sch;*5G<%A7$3A3Tx>5N|>q$7&=MT$R`{pEtf=>!lAPL3Vs3K7wJ(w%d3lFmBu2M zC8=_T3$n1c5O}%-GHG|$VCEh@OKpr;WS~xue`l`OoYkbgC=WnzC)OV)LX2y(PZy>{ zN@){6O~K)PM3uGL9iU{+w~yO1%aST2wM`soYaDYZ1~uL|TwJ)ry`Xt7^oQYniAAFz z#hM*omSYm!AibgVM-VB<&75Qe3^+VP`lr?N+iTC(W+4LV}Bs_YD^6X*F$)dbO zNFNkHwnc|rbK0y%ZI&qajytV$yyC4UeE<3zVJcDqa<6 z(f6F&&Q;!S;oD=eU7jIODbA7QFih(La6`kV;{?rV3miDa3Ud$t^vfteE=Gg|&PLtx zNv}%bUy66I+DM6!od#)3##uzxB1e4oZ3@c3zSDG4TSWdL|3tPsbib8gx>n7L>sM-n zf~f}gMuOM4^O@gYGvoqfQ9kg?OpRFmw3<=AmrOc>=i}pAgR52R-x~2}KQI2+V!k^7 z)2_DH54s0wnsdDiMrF^fG9@+olS0S8+LC#I=9_&zsQKB9Eo8b?@}r*#)(wD{vS>t| zAN-j~=svNQa>NszFXb#>gr@vb$i^jC>#VB|6RD~)cMNplI7t1R&zAy&=%Mp_u^boI(6-W_T8dXajG(KA2%~xD#A@nO|t*GlN~) zF>~P)6Z^iR|9%<3EVayz*WfA=Y!BUnoIs$cNqirBuU!H462CASB(r8C33Q3xTlRf2+Am{M;7WyS7YLkAc0S@Zh*p){KA4u1gC6LN)){LPdr9j1=G*n%s zgU*Kf(+r%IQWJQw!k-Uar-+VTKIw{%EEc+J<*y>(V7M|T2+5?8{#j?y+(5#?5<}^Z z#wU-FePY{%s3FIULgO@t`Cxz73fIiAvg`-N8u34p(vs)SkWorVXK*rRXoC^A;}8pt z#tc!>8~c)bM$H3c)0t`D@5^gud`EBl=$mN7#q)5>W7X&0qnVP0tO_p8&hitNbyL9O z$XpqJwr>Y3@b z&$-pyohEUbQfxS(07LD>Kh-I_xWj@shM$+{PlZM|5j#0ZLd$O%5ot(B!folAHwt4e z3gSDnY2Vvw6)R=3q%*f`BsiaId4H~UXLM&$)lF2v&JTSplM|lM!Zz&jKO@8AZnmlS z$xc7fE9B6xsPX3IA6A0q9=}BHA)@Guq z1>rM~QVzTkqC>f@c{_GocJtr;HQn}XG_S-JRIqP99sbbH-gG^9al`FJJZa;S;i=o7 z=M$$uTwCO<#gh7Nts705Yatq8Yu~(g2kv~wM3#-Pt=ou*y@C~G%wA2Hz)|*!L@}9O z&9)$Y#u|iK+gGJH8|A~Vp*wfadrjp8P(uAgCh0w#7|9gK8eIFm=Pd7& zR`{*NjCcQse(O4Fwgg3`&437)=J%g>=Q+$YT!6%y>l=|am_wr<=cErkkw=lETya;SNnL*# z0=M;SbrdhRKP<%WHcul{uu13$?eKbIG=gpdG%YRnI9&-FOtXRWNoO~zrwe+{yY!}y z>xdtoaf?Er14~^sJiumS&eY`h%iVuQ+7|m}SA(V43$o@YZcy|4>|ao5Am>(?H|!M& z9od7fwwA6?2uwxl;KxX~rLzkM8W@9y?Xr{f=yfD-r-ES`VkwA1a*=GB`rN}?qd35H z#Q7u9rhfLn=pZ*nW6VZdL0#y0al5_@H1u9*iet+7x_Y!w^Vnx7Xw{2}(G z)^_pxg4qKsN((4LAH|m&PY2Sa`rA&PpT)+Li-HcALYsi{Y!3c52Zoj#k zag8MD+n9P^)*=0-!E8K;B9$fzt@PWQcTLEm7$H)*k_M8=N&9|#xF-`u`lLXTFDKnr zzGFhjHFbJbftJtd-_VgZl`V5zd6o?ZRr4g#MsoGX@b1`$(qWxEi z)^nOoAlc3WHa3>{om~@YsH*#8Q=~6zL)i`!B@>-`*f;RxP7PBGI2j#{vL~kmr^&Z$ zV%Ax?_e-LRgUNqW5UUPo^G2dJdfJC?G1XZP229;DtJbPm-bn_^5a5*-sDw)Upzdq* z{PEqWsVu7lKZvXk#(3(*g(UeG^yf3HE!kZWdAyDpdv7T~76;3CekK>qb>No@!N(#8 zvAc-E5@Z8%5ch!^`k-6d9DTYg=u(J**&R6#4AiNODx<>t#8z*JU(wwOx;=e)JG5k1 z!T63|!XbKb5YRvjpfR-81Epz*&bSVz!)RR_G({%@_w7qL-@!uQpkYmD&<2r}t6&`M z)ai1W3HJ-yJA}^c=1?wHa0Y0gVz&-Z&Jh}-1f;R7=pYSiNMg#Yt|Bt8aGIC~{AjSx zeH67o;=!dxYqAl_H}cb`aA4017Lq2p?=}@VG^9lMbogf~~JtcJUtfgg=%iupWhS^wfVb6omYP=i|Ym2c8@E-Y`4t z>5-Hu<>vr4{rv8x@-FJd0+7>=uP=N)(y-GRzFZ5Y+|V{74R?laLD%UQu)M!j%q8tt zsFN$u+w6pt>VCB)xqVwFq800a?fXDt9l5v;heTu;*c$kpVaun-OKm-G~_`GzFcAAAyzUvwScN$qrMHQ%$xDR9H}UTujtaE*=o`Lz|F zwszv@%qcZEy=+Ni9!PyUm{cF@Akeftz$G%Wz>qwo8X2AF%nF_rQ>c~QXB4p&WV4ie z?6{b`fjq3YJpQvm8dODtt}MAoBy|qfCaKt=i^K=4z!DMn>EZnG6fJ4p)WriG@_p(} zYgqAjcTwU^Sk>hvJW?pW8rs+GwMx=5m4nf9>18uC;TR(!H|`m}P`0vo_Dq@N!XcR< z*Zf~T+s2*%Tcqcdp5ars9p$r+<^YR87yA-HOLm}n_HXx>3LWsa@e`!i2Hym{v36YY#5&l*)HS#~c__|iOvzz|96_%P0kU#E#w_~6k>!7C?S@K_`wfTnP zC?Z-f9(yilneb7(?0YDbn-WwJU?gXn!K8Rl|_M8 z)@DjV9~q7^>doCJFjG=|$1otE>h*=9-&)8qhZvFzTzC4lFhWpf{5LbkUKwu_OTP=^JG^?v9?|4Qih}SSZm`JH zc_}S~t$k`<7aqae@+`7>@pte3wYqlyiKrzZuKSBgMsoH0A>osLkf5T6`Gha*Wr`b@ zDk7En^7fa1x&fxN9f5Ncg^lg!#hDvyn1oA)|mm-Y0a#&4YE) zw0!Zyd%IZop|O8M85t0a+q7m`F^z{eZDxpPk;7|j6>I(5s(cK0^vw$3pzeg zEX+|1Zd$ji(A{CL2ad=}UrR zW7czgkCpn2k_z|C#mHSlY=I4HusWpAV0gjg^uDBE31M)#4kDHHE6*D^^rwE4>K^y7=D zK+6rfN?b(vLH_#KnuitEYt01E{o&;p`C5%z8C=vd$W?Ead#_hIx|7l&!M-I zob4Uzx zrq&{IBAM$=eo`<58RSF-~r|N8NeERwF$=_zbuq zW1Z_jv#zWQ7awI))Z35Ri@-#SaxZ4o>bwSw5bKqajJDyYIl^&L(%`zu9290I^P9oD zqy2k2U7Ewv$@xpBWS!QMq;%h?ku8Y>SGfu_14p;5UK)baLnlh2N`?zk~kt@EK52-XfAIl>2HA1=L zt|be3#Bff04n#Cc6{=X1$PySvARt60259D@9HF4uRBCwa7I~$vq7#`D7@h$-4>Q3R z65{CPrd|@+J-i}2<1dQ_hpJu?q-yq2b+pcF3T=ez>woB(Ujt)~Y!ezeFI3+p-x5nZ zLzd)Hh-PuZ!#iaWb66yjv&kT1v=JFGtS{3T8nZwSBrcV3`HY<7{SsYTiTt!NWpsYs z@1$ce*M~ZNAgjh>l-nrhu}I`X|6mS$@uW*W8>ZY#lxz$K5n2LVUhjauWCxA@+?+ni zXc5cIz+pkyfNg7aNT(|8oLq}u7PPSo^(vM}a&cT(_=>ZG1u{wfVM(E7QnL=}m>1By zSe}U5O#rGfP^E0`Uo2NhL!h4WT7hEG360**^?&>xlQ^a8mr2BlPEfm{Aqj2DgibFt zXRR8hkPpBR0cb-8px!wSyk`TXVYEfib^S+7`^Sj}CjCS=o2iK+Lf}T`=#Tr9f)5wNM@#oI@6tl+)>wv0X#_ z2p#xeWWP3}>nP+t=+Rn+6b?4bZ-EB!zIp{oo5R6a(~(R}bKnRd!X6Yrk*e7&=5rMd zv#e!}+PrM~EC(UL0Lhx)!@?kmVx&kZJ6$WZHokQwdH!Ge$LkzTrfkA_AmnRMFwS}} zpOY*m+%HtFV(-eGje~W=%@Y>06MMFxq2Y6FVttZZ!u8*~^&U; z@RjGgKCe!9k@YgMF9%QBdI94jO;>a+siV7GoV6$Oc3E0osmC`T4*Y8OR6}i;1|Py3&4W?jbAFe{OU@6V1%b z9?%Z9W#Va4pZbo%s3xARpFN^ymIky`f7)fSqZI>}bD;b_(XTAe;kSsaydqnvmA%=M zkne1C*g_7-bt3hf*F?F#S7{`Dz%l%=k75j*S2(S00m@s{!KhfZ!z@qM>U`$(Jp7)KB@oOI70rA` zflN7^YxV%v9a69*2u2UB)Js{TfS8W4n-#23SvsH3MF7)R6QEF^lxZTo%bKNr^iUlW zKO41BIy4nfJ3W*l^b;z7iHkE^7W#6Yf>afQG(PRyR{{vxJQ+H=3qe7ojPj0-aOumc z-_6rgL(?V*ABh7EqvLuX9P^-xfySfF!?O()&I$4J!Nq_JT@aMARL2G2wqp-9VuucS zSBldXn6dYz_3fnGM=vm@!Bihe4blV>VMBB^vUcN{NCa$Z|4#d~VpNlyFoH&om|ZQr zJgtgoTc?b1BgDD8pT{xi7{!gQ<2s6Z-4B>kW0Dj26Q0s_p;&cWH+>4ywSVSi$jXrn zr_}f74LJl&W|Jwoyo)t}2lBAGq&wlsS`k%C=P+3k%A9~D!ChJHZ`#gC@{3@|JN#s$ z<_!Z#-@%7D)?C4R1F6|C192rIMmS0xZZ50Q=wPrEvG=v(%$*c^n4U%MI9c2_C3>M$ zXAnuA$->H;c5R}Y&vmb0x(=P}s(%jm9Y*^zL<;3qQ_(P8E;_p?|FC)+z_9N$b^Aa& z_(4sPgq8Fy&x&lJW1n8E>E1a%o-vHn6KG0M>sJj^fn(FYZPpn|JIyi0xGB^inESAB zG4p7pVY9=?VI6XDC@V5`@kvO5(eLPc_Y%z~n>0{OC`L>WC^^s8IEQujaxTM>iprz%by+xQ&V6Zdvx z6l_kruu&Q#$e{5F`(U0bsj}D$B_7u8o;tPHX@2gh)Vsx@T{I}67KY+VVbA5F89(P& zzi1r?0yx}ZL`i_3jEt6R=#r>&nG)nb4$*~&W~tP%3LBWPB(o$Gn8WQ zw`^w00EQgI+|=?Jn+;y)8Po1M+reTpKm}tdg5s-+yHi1ryrZ~D0Qui#HFc8KB@_5k zWC3J~_kcHX?C}>d?Yg!*r9n1eN@#f|8}@Ne^Mg`Ee`MI-0W*%3eUR;aG2p28h$tr?B@yAF{#R*;M0(PpS9S`)NKwB%NVmWF!( z6`WH#P-oL}g|^5!Pl&zWhnPp74A}(AnJj_67B#5f36$Ffr(e)PZGh6=Op!ev%q?4o z4KpOq`t6Vhje$jP!7$s5zlkxRcNlU9UK6fc<+$ENjwcTnEdF#r+-ip50(RisQ5i*o zAa$f*g0x;hm$3ontMT2zNVD(Gd5TY|D~kqEx273@J}@Q_`>nW$-M*)8x}{mVqKgcW z+IT329@2pUBnHyKfllp<>&xW5c2gPIOOwk?9ZzZKgcc@a1%&wF$s*B1O>@s1p?|mX z5&6h^R-ey9m;6N&0*bx6)h&PU4VH(1QVJe-cctoR>@6pi2nGFC)U5*CFVgZMvCada zXgy$jXoXfU^o=gL*a$qhDEK?LhLhBn(hwn_W7EZ>0*N~#NH?0}7tgpHp%5jSm#vz5 zInG;8)MTT)Z0Ju#1^*hq(>nlJAq8pYy49bW?&(Dvg0ItODSe!6u>uDXA( zP?wuIGg%ZNEvm0i#BYSgEhyZ)Y3uTPEj_<)l+L4-_j>Wq%<<5T>ox*AUeLv0$eJV= zgK@*v>3bcK$k7z`k+#^81|>xr;U$}P?iTq)co{@`n$q4LY>>i4(smbU%Ny@PZ_<4| zBic)il)DeuzRBVF4mJ>*NDw=t0E*6)NkEdMbIEoVrfk)4v)k6d#^AEm2GuE>$n)-S zO!y2u>l68rTLlhf(nB0r!Pj5C22~_*VSg6en1afVYHr9#*}Wls;(D+HEjV1+*YeU- zw&@7JbFCdHUeb353Q{@Ud8ekO58@sF=fiRHq6td$Q-dYuPn4ol{Z4_)y6k%K!sLss z>&5d{EI<_1x(X`aRA&Kc-!Gq6g^WO+MX@Jg6fK)}6dKY|^{&JH2G_r*`$Q2dhnhW) zxs!Y3ApI?V`s(rvB>{wrrS;a*>RC$8cZZTewCqift^Gzz!MxLm8mLUt8ehkU4%onw zFsV;yGG8({cA=KC6%P4mNAoRN$q~eed-WtR*vAx2>)|M5STAQ64W$`)g0VkW5WpmO z(1+YWQ1>p52ZdtC*+80Fr@!OU8y|Y@RiKl*fZ8`EgA+Q*$+K@yhB`VrX6={ETgo2_ zrGJ_9SFnzwUfk=Yxk=_`JFCg?kN5rBmUdd{X3}sDdNYG{n6bugQ5QbV;qa5u<{dU> z+{pU;)8z_MFi0lg;65`}O+yKx+T?Ub)P`>#(6#h}Xwnw`~ttd7wDX-`< zDlK|Q7BY}8+@Px?L^4n$^yAB%<2ewZYhv}@U?Ycb>fHwEv^^|G!x=pFOBYObYu~2E zsgtC%zMXlU4M!qH*Oea`-(YW&=}{FE+p}Ux=(9Cki2gmb+Z}8ioJMhtUZd~P?M^`7 zj}UoB`J6732Gn@F=cCwQ3alAu$-?m7{fGCSmym$V9%u&9;dQ0uIx}6Kx+>h>*t^-= zYeKdE;3Tk{ZrRl98QVGB2etT@|7_I>!VcheF-I%JC!_mjQf)r{Uz*H~;=g&HtU0~6&0oAiaXJrc93R0UdjgbRpr~|gUaD|kpttqG4 zr5`p21C2#4?}kbkt6{lN7K{@TO=0Rz0LcTko>`GA`r57Ix-@+?!?bpjGml1g>x%F% z)t%K1N$W}f#3`uaZjUtchZhb2m08NWRdTI~bk%^?l|AUGqri#|n~Ny+Aj~3}q#ZHI zI)%bwkEO*=0{S39Td5wBPP?(VyoyyXu4xYHjB%9rdDy&Ie5mVv??QRR=hbP;w05fS zoZJsosX;C*d?+ua700GF8bupMw|vT>5NfEpsKYmFHd%X(4UB8h%ZDhB$?-QC&&&%- zZ5RH2*RHS9wUp>AjK;ws+&c6yE)aT4He`ll;Or_u8sY-2%0K~ZcKT&+nZ9k*6`>3{ zRjWC6F&Mja`+BF9HezKGDlaU3f6OKM66>Ls&rCB7w65MFcX>ZrLuAzLXcu-O>Kas# zc3AX0De!|Cy5vJqdnq8sNRg#>OYT2iVXYM))!Z%&yO5&-@>O_8Hl;RV`%4sDI zqr0Ak&{VaR;W*ij|30=Tt-~ct}e{sSuFHMCiY1^RSA{ysEw z(Y4+Yb}_B83od=Xt)Ud{g?lhbjD!=7h3i=Ti%I|Hn~b_^KJ-*y7}o?$oHCh7_T&?)Xa`kIj8d70eyhPqJ7l&1Y>TBJRTrb5>elNyS{Y@jS?;p1%5a#!Bx zTZQ#nS)dI)Po(R82)02EXlFp517{#%F`%su`JC%(IrYxMR)S$v^s-=PC}(o|Ob{Hm zCY?86NCRV{=!NG+keP(J6!`FCvzyGQIO|kN2#^A1`Ye82!$ew`KmjdwuZ*^zqkGzF zMMn}m&J__Zp!__-lcx#$lt_f0wAd_we)dkknWEvPJFES)h3UJCz6zmjuurJZp7c}s zh$C%{19%OTz~?)jC}fLu3TY&r0iZnft6V~=+Vp~ic!lZt9)5yt>V?YoJochF|0!M zsg1fZj?J8+0fR(Lyu$Dyt4;k49Jc#>p@BlbaMTOilH)gWx+NM0GIZx)mdj+(MaA|B zomH-h^tGa)2_5(?6~BH)W3tcTg-Q-CS5Z!}vD-hDq$eH$ex>!jUiih18_qUh6GB6E z#Zl~4moI4E>6>Qf^h3ABYHLO~5euCl$S?eoRoTDMM6*{5h*84WCM!d(2~xmH3aNbH zT;J`iNMll5SRn?5*C=o4()S|u)Udbpz*;*cLVu7bc?7%` z+lqRzzCYT}uGIEn?i-l9#EJil)7M}jQU{F{6Vi1L@>Kmb!DP;)vY6{mIavmVz z!t(85dPx$L(w!`Ppc2N62>BzOpVMh1qcrjmo3FXiJ~izKR=sqp9Z2B3QhrhpyvP%- z!J9M+H<}4LOh;^`d6^QgRVj3>7|@HqHHTiBo0dy6JzS3r_>*4Lg26T6QJ5NI@pkOZ zu@)ODyzRV!4IRlOHc~@_L6uF4ck}xK%_b5G0`M@s5M(cGE_Khd4n}-A-PpUgr|hya z3SU)k?8^rv@3?9oU<~TMGaTSzF|NTPm!Z^Q;D1FZJ5s&(+1?w-xRm-3Z?tRg9~!c9 zv@nViD3vP&4S+ZewtECHA>~{;Q{xSK z!&)MpvJOOMEwRr{T6Y-aQ`g$OYl?8&F_#GsB2tF8!xy?tr@!41+GJA-RDe9=SX)&& zklPq6nE;R4vE~o;J0P0^mb?uCTP{&CDO9JAY>MdK&4xQV#%{mR50mh!+aGc*jJ=te z=KW$xa}~XAr*RxTPAU4Oq1v;IgWI+XiYUO8b#o_kZXzrMIu2-_=I7xA-)M&OhbpQNlM8_tHN zme8O)(;sx7QYd9zlun<^g$mKEh*NcCqThkacBRHXyj6Y8nIXLnT2>@J7Bs+!7W%np zjn163ImxspD1Vm?I5?AxUNf3+$Y-GCOV8?PCV?1n?!Kg`JxrO)vp5-!z!?c}m@6r; zU)^>lG`>|Cl0wOq{T*#RQZxxL5+=#cP_0ph-xslGW%i;QU|e@&jmk~>NQvCv@`v;i zVR2)0l;>nqjxPFn_O)?W#&MbDRr|)H4w9+A0>nl|>xFQ&*I!xCvCYVMA<$*w@+{nV zf_Rh?JT$z!fE39`skI8P@HuIqEsY>AS1lsb<4|Z*Lw}SeNF-#S=&Pd$i8L<$nlTZ% zq**TZ2u+vZZ>I4Us)F8lFf_1O!FpzMo;lIy-W zt>r#~%ASheoo2`b!H2b(7X>i18+35d?1UCZj`X|@CCiz!&#qz?vIAXD|L?8w-)J;C z767W9iDumR?8en)M%h&589%^?#2~2`OuzSmu~JCa7Z2%$?Iub+CQ>~&P>@4R6A~Og z%Uc36YBB^s@6$my1!aFa{i-*zSUFrsx=>mgd;5gc<_IL=04LbD5qW$`Av$!&(lFIM zQ1>*6m8pbv$k8150LH`%w>C??sy=FQG^;9?I=BZB~nBCAi)rl=_;M9vSJ$+z>KH3yF^D}V>=^;8u z$?GAh2w}X-vZ-QgP?VOxYJ*1od%h3uw5cc=yBOQ(Pod{VlZZwt;JkzhF~0gMEj$L$ z0&(9DL-UYZN%Edw-dPlrq$d#*M&Vqe9*9gc1DX8P(osZWV3XIC*aySUF|yjaVL^KBE?$>nXz+3B`p*BLTAgmNp3J$BuZ1) z30%wz3rVsd)Lxq0Nj{?$Idt!Q7z#r^E41}LU)A2dzzWXA>f;i{hO!XnlV4qw2Jjb0x>AwDKez>@KlNq$e z0mZqX-fvfO$SxKxM7IFBb>GI+UVzZO(}u!xx@q!tz*kX_Xwpj6rQ=m}vO3de3cM)G zE`rO%*y#Z6-rqD=;0bF5btXvBz=k6n9j5a!y;^K<=DIYYvlpW1@u?)lr%PQrNPsPS z(X_ijmxP-sL)Xa|K7$-C*NIt|X+&tkgl8ZAdU(hmv6)_+5iN9Saw}4)ItDOY=gaHB z2aMACsxL9P>FGTx+fk(p@uwnUV%@YA6bC~BbZkicp++D%)t>RC+=) z85Qgcg^LgiaD^@Sq`Ctb#5!f+cDNHPxd7Ua9hym^vFZ6%y8><48@Je=%-4c8mv?es z%=_%n0ejc8qynd_$G#t-35^1KX)^opSdIO>tVrL&Y}~1XnXy8~JevQ~rVYV`0~GPF zst(4tP6iYGc!$vEkB@BOqS-Xo5Cx2riFfRtA|hD?U3v}GLXpY*i?3;w7&%iHdi{)w z?!4oL=Eh+-JfBG>N0DY}icP+|-k+I9Ayyz8KEUEdes*1b98{^L*~l>^_z2Al=x}C? zkLYS1D)D=4S|aM1k|kQM!xkiZ<~V34zfXKGpepfmzjW_ictBm*?{wf?nyBlr^8!i+ zd5(tnjj2#{BZsZNX|z>0TVhuhLs^K7_c6?o?|+JO*!6j~z@Fr4)-a%;Mf8AA<<1s2 z*25c_u>IOTu4(NR&7be-aHQy9KDNAsC}pSrvEV3fl6;!nDM->UyF&xVVID}=cGf6H zA(Ndbv3sNe%Qw_6&mWSJbz(^61H$$^Ct0@w)`16oQsO0zz)Psge$Xyy5RK`{v@~_% zC&R|Wms32D>ceO$QyD89F54*u6gV1qtO4_4w?^-@Yt{qZa8^nGmvi^JBl{?Nso34A zqj-NT>f;PXGVj3#fUS!oqW3%6&Bkv%@FNQmOvy(m`FBK5VftG?liDCo&QSWl;>Gdw z@q{MO(HPQ^Bn@79U<=)xhr#TEZo~grI3&#P!vW{#tZ%746UC@>{H_g~inJ9%SoY^~ zElk)ztxcPMUwFuP_Y&iHpc;K>$a?!%%^=O|mQ>H*nH%Mt%1+wfzf*UeeuJ_hOHti@ z>Gx5Phn}f`UK{R?b2x2IUs%e(QWN)5v-G;BfxU?hO3(_jns@ZBTnf{rai50Z=otoC z#?ollWEWK?O=Y6Jg$`CQkV&D_{tbF@#Vx*Fq}5AWvE0zcBnil5Ob@3${>gT^oNoQ_8KM(^-@*K>(oe!khzakDA*g)db1ki6xKzPpaQ7d40= z5%AQ{EV`I(-XPC+0LISUmw6YrtZN4=UW&RXipx|!!$A~f;Z2JC_G{=*1QB6joa`$~ zk~5-<%*}<&{Hx-PR zM1l^PI$``rZqaoo1-Y4Y4($+9Y@fZ-oLkJ`?L%)(naA2rB~72%*GU(?9Tt*6LeYn1 z)7F(8dd*Rw)&OOcbnTT|YHQ9BLprsZiK-XQ!iOsxfN*Z1ynY1QRy>Y0_9W_~O z@Si%V3Hq=d&G*kbMy~@RPMWf>@{JzN0%s`NyKVgo4h7wP0ALj6PTCK_(XZSH97` zbR3a$vFxKW&B0n_I@xM?KxQG&t@-3QaA^D-%%Rp* z)jb9MVRz(C9Cti6tf8uRExu6kCBDDeoKApCyXYH8s-iVihIVS0Q=R_#9q0JAOS3a| z-kOPqLFdl5yYAiqU@RC1HORvjj{BX@746jt+{9q%Oju3QJd~rp7r;ae%Ey_@nc;u_ z_s=%V-$U+GN4#ONaWot1EBeFTN$Lf$+XibM(Rk8T3R&J4-AFL@Kqb|0RLvnBxGthi z@i~&6XwAfgdYH@?cj`<}H74<7*KWlx9DWx~cG1HAj)US|=!k5L%8B9OOuMo%u2 zj_@mVyRoeNZlt=bNg`=Y=u~^_c6BZ6gP113b4}+p*M3194aPMrj-G(onR3;IMCF3#OL!d3`IKT-}Ji%9MP||GlmYgNZ6F}XX`81$q zTZVqzH9_vEBYBWLdPj-{u@v0sW@#9~g^W@}@@8^&v6A1r5AV%6-%-CvAf^(@uA)$x zI<1X@X~56M)_fV+o`Y`J%t-<5f4HY%v2aDWzfR*Dqf*w?N$`qL@=p`$mV15Zm=n+{ zvCujjCt_=g8$>BS>z0K?@kgx7TouB++!bc42#l-(Kl!s1W#xwEVQXD(2)_SsD84r} zWV(-18c#XQq|F43CPE;tWYZr{5_;2lq>ad}rII7srULu{PNj%Fil3K*f((MsxHCZ0 zd;(4crX4N}ynH zV8_s%l*-)A+`d3)vVV*@naV*H^7@T^OM9=(?(Sevy&0Xli-bL=&;W%`sSR2b;l1?e z!*Yb}X2M#^!HX~ao!e9RCN!Qw$5tYS$ry67oqOYUIRZaXOx%S+4qmIQ!oZ~Pl%;SS zMk05Cc`*X{Opdb~T|)}xUXHH$-Y5cPN{6bw0e*(iZ@WhF9L`{)JmbaLW4!So$D$F& zraQD6%wE?whmSs6G>@JpnUA{v*cs)CYn9&HM{$c67gSe}z@daY(vl(Z`$9*Ia3;*vHnR3I`J- z3a@S*Bo3BLg$u+$@lOF4Sx^pI2@x$>#k!-Kl0im67T2Dd;sMOdlwXTkjuG915Zm*( zP!~GU0L8_X)l#JDG!&=}lujU-FT+ZdFjt3lTiVsA#>pe6HDap-3BCql8yK%9l%^QD zqK5XP%U@{bz*$YyVGJQ!Lzr>QdQ^bM_a&mldkvs~x!--SrqIfgPVj5i%kjC52@j;F!-00TTj zn%0iUt#h9OeHghjwAENTV)}MLC1|Ws{JXgF5HZ=yLf2nm87gg(c>)YsS?7j*whP?b zAmElg&fJmI8`NryvNSeM_6p7Zu#*K9?J|Jg+coPWE$G_j#CZ^QSRO=Uar&8Z_Io0G z8CgpP%ha{P9f;GBp2C9Nno}EQ9ijraTZ@EAAcg?{YF{!RzSd#N6nr(?iOf0?vT$)U z^j$hd1f4bwmwk((m&wMbPSxobxBV$tbCLMev;pR%*oc;^FM|?}1`*{RM)($Mx#b{p zNNK{-Yn_mrg4HbR5jleU{*F<5B(=%T`9NAtGNd|9x7boMdUYr$lVd2dz4w8P9)#~? zAycFt%89~IqczdUcMc*N%~?L6=*eD={LF!P?V*`g+qU#4)%7jjq6Knfw>}h^Pe$q@ z0{KT&9})Rtr0Av#S-SBwObt#R`_E7@)9UltOLGC}p%3T0d5C6`W$KsflsIsHeKyxN zkQ~o?0t~?SLEww96`5RifA&VF2f5Gvj_N|^o3;WI?^9<*?S6Jfmn2{L-C##qr+m@x z9wHW zBiAR|{u@zC77xRotrRc2I})KfDNmXXK)6)4mTPPGF3TshH@Z4uL6sX0o(W1uUaVZI zjo+_L7Eq>{^zeWxqGD3#=iT<(^dE`#Toiukb!ZsD#pHXUk*WsYGe@7y7VL)P&q2$iG=on5tk}u1MUXhHE=~to_4ts zHo1%){iH#T{f_z^U*BX8D4h60_1!&)1q4gu*NV5r?o^faTIDWy6GmMRC0 zQ5$ImMGb>JF5fDX6!@@P0}A~}{7m9@%r?{-mZo7#0vg&`k5<_f%?x~t?DqAXzSc=O z7dFU+gP#6<#+yjfxMoGB1(>8Y9#V#Pgy)vf6 zWblo_xRfoVY)B=JV=@a(9o=_?d+GX_9z%Ygpca)h{OfoB$7kV)wbk}VDx_$A^N&;A zVuhj|6<7Qv0|_29kgfz7p+-Yap|A3^6DVF=AX@!*(kC!eCYG4yM1Ck`Y+r)i6$MGT zFI!A~K5&1R78(2JNMY($Qg#XZ)chmVZ+kbY13WFDzW6I%m&)Z-poc_e%y;hyO}`>)S!+F_dP-Yyrhmq4E^6rgzIs$+&v zxa;$79N4;j1@#;6c;hj{Y)w4N(M>Xe_wyzP#q?cO$XISh$*qoFYJH%`2CbB$&^UC6 zSBAa&m^K)u>)ADV#y={T z&8UUt9v-y)5&Bzf0@f4ScjG#1Ql_)cYjA*}sA{!p%Y80^E(UneS?wT*4;*__tY&G7 zQ1*eYcYu9^)st^%Kc_zp{5-BtWEw={2mTEIwXUT{n?w2ml)0;G=Rst*vAWqg3{bKM z1pT?RWfKD`bZ zhnU4qrrd(1V|Zz6n(8oxpSlgfM?~&p6rFa|4JMj2%+v=JNs*7?ebHg5pKGX2DqFRk zGn{H>((3?n5>c(E^9uVto09jv4;GLv#oNqMb+dkQ@AoBQBx^>wYk`4kJI6_$QkBE4 zUFnVP4LMmNQZ)VB`H`+kg$-jJ1vjw-?jP)+3$u8(OTob=11dPN5Cw&M-NC%mwfEYP zey=Gcz8+j2d~i5X{g&ECePlfz(H6_z$OFy;f<3 zmwlEOW;;9nQ)pXpdKI~Qj=>XVW*zX~4yJ3$6=Q2{&AP_0D+T^e^E(nnLmTL2i+ht~ zA&r$xTHEBWk-l+Cb)3EQasIh^=;-ban8qB8uXf3U%5eH9+D4cbH`$i;SDcdc8T!EQ z<%PMUffGX%p&5m#@SyN314+o6^*KuBD=n{=3emWYtkT$i--sHsEE!xu#iyS2)_e|! zcU%+p^U12eI4H)Wi0kPXfKY{b_jT7V#}McHKW4$p0cn_ zTE)FzDP2f6b_dloApQ?ZvDLRzv*eY+tT1Fxd4%i6{1A7q!jC1InWpDZ$-5EzM8#sm zD#U_L{`|Don?GoM2MZe4@p{8WL%KpWf**8)ynq_~a}dM01l^-;4M>h+z1x8{he_c6 zZcBsHAwHLeTt%1PFGS1JB~5gqGBvkBd{t(%cNO>>7shC!Pwz?@(siKdy%uO~`!yTs zTdTRO{out$kc-^U+Y!N=h0b@{Tud_?)73Y=@>qjGP!5Jb6nItFwMNoDO4-bvT(?#x zMFR%2c{G8=D0&3|HUa3QH-DS9R;8V7$$P2`o#Wp;K5_ToxEimIN{7^+rc7%SZNP1> zY6v05f_nt+!^Ay)@@R3kbp1aYNpO1&I#BAkXmV&Fy-drJt5olFk4R$j*5n~vpaprO zj`FfNY`e;l#=_#te~#+D09~Q)vo5JJc)g0eB-a%5<>MwABpw>mh{d+c$t~FOBHBgc z5pMMSI|Tyyrp}$FG?g|P(2Lf~RPhX;b-Um>#Qx6)ZbY6vOa4wwt8f?apYL**mgXg! zGaayPl*drx?ex=BX0HcAdqgfu_O`Pdhm0X#*Y1c~4EE#VggyH9tR4AK+aorK&sg3& za@CXcEg>P?uu8R9=kmmn3Xcd-M<^)qQKcYjW13+C93ruxQrAIe;+>%qyDF-S|2lR7g zM2~t|We$3D*X6y6n()Tq?zTN#aNp9<_*KKay;+g6S`gGT9|XZy|I{cysl!U$S{n*9 zl^%A~F;RZF7f%;eKuD}x;54G3b9dCoAw9rP^^tC~zuUlN`JEa_n+%@L)hOR@KUjtn z=7nP0TGekIUF30s^dfwNP3zJxbPL1|mzdnEukO{k_n~XLCaI;6v}Wo}2O4q_OCZU} z*#>K^oFsJzjx1+6yS|R~uPzdXtgVi}?Gh3H-V@PlY!1|Z%IMePiP>zNZD?f`Oj&de z(tu?}6Il@LfwvaQ3lf2LvtSgjjtr!8#~Uc1d;F$uB`o0*6j#c#wyv3iT4d-23Qb)v z8wuh>z8vUK1a~{IT$b*;Xdh>MDBjep%mgtdXO|VI;0$E?8?)B89ll%_x1+3A_)Hc{ z{o;3Pk{4{CCW=I|;QDfd1oFA(&}Wq5&tcRCJ?p5CMus9W&Q_5FjjOG&8@pG@~{**$H-XJecaSkYpvU@?v8!iA3*SP5~Knvj~ zpJ^?-IP;G8WpS;P%_xqf%Z^CId40Y^G$cq@2;tuB1$M}B5VaK?+b(E=eoE?fu#lfO z_Tk7|x4SD+)$)Lz6k~Z3lYB0FmYo)Lo&rP9YNPPAG^LK-rFC@LYE?8tb588%JM6#3 zg3|fY$^LYs4(7Fh(1K0FaW-1F^=Q!?0|?>BZSUb<^ztmF=H*=P6VtgGyS4ld|75c)IIkO!Gd6rwWs;t`HZOCf&yW_0kwN_fLl}ZGbD_ z8?6znZbeuKnmDVs|GrS)FK9loBYKyT$2kp3bpU7c_PmU-_J++}Ri+Nzv|C|%t>ZrC z^1Q&4c@74q3PVvu`d5Ybdk%29e{(Y$43${F46*Lt``PIjm$l0n%q$4Z9Gb|DXo3xq zn6|&cjQc`>6r4iY!APg!)H6rGxu(f|Mz!l?@jM-Xi43?tn9wBFKV`vKFX)CBWfidf zReWz-Bn`$GLv;7XbmMr}&%9l{4ZeC#Tl2-`a)BJAC>t~=lu10nAb#QcyJ1w+bF{B1 zR((I-eYQ0LdH7~Q{CHfF?{6MpE-w*^6f|p*%ycwrZ}c#^0YozciEN$*7%5ZG;p=eY zyfhGFhrjzq8ybEdsrtFxO+p3|Z}o}|4fd;j9hsw3bhv9aojE8URIU0Fx%)K1L=AVu zt&I!-P3Wldjl0H`fCC*W?9jn_3Ea_~y%#<1U_&z`PeS6mbj|gF`z+1AqcvI>&P^X~ z?89r;BZId)3wgGBkPF?h9#MMN4S6LfKfBI$n=3kj zxS4wZi*9GvdlI9WCKHW!r=I=RXqG$VY~ZFLF;9b=bV&1?uk(bZpAUJN7DvzL9Vijc zS^=L{lEfI#IjDgnE*cOKbM;h3;@5S`efU zB*K^Xd9n{_H#7_J?`!a_>WEJ?-`p5PVg0E;XE*oH(1-NYl zrRB0v?ZYOmfu1xyXn{@5MvUP3>g7>lWBBS4GgV}fgnthj=5b1Y|Nh*CgT`B@RV1Z1 zPQm3;shf3;;1t*$?ZU;M6BM;w-}TXy(nSrW%iW00lK`3nsVzXG6aAcf*1_c_HOPvR z9E0|~%Tc-&L5yhHYLNZGXJnpLhODs8}cMP7H)DUIp+558gmEM`{Vp9FY=T zwHE_+G^jq4u0i!GZSp&1<#<+Q#8^UoAUdgjD20` zc6(aZeXsrQ*|SGVgiX^PbR0!EH5Av`B3B)7@Lb9_yAS(t%@gO<~j0B0Sljtal z5JC-t@SqNaItd~Ik%=Jspf530s&R&9*6sWMKWnYueSO^Pc_njZ@Av)xpJ%P#$9-Sd zbzfKAYH^@|%|5g>TW;_mkoQ}?cRa|3xC!-fBNgZY%{DU0x*g1~PZLS2c2+a3fjQfE z-MwUf6UW+hpM0s@Nf1~^j1;L)=LmzMh%LwH)2Pw5&XEC%tHeu7JFT*pW`s_TyYC!L zE3JbrO7S>KKL{1z*j7bt(P03|^M(+MKDb61iET(hlUtURxC&5UT(B5qA3;xvqQqcI z36gyS(LUwaOGtrp33EmA03NVmS{2aI3Q3fzW^RtQdUKN^+UtgjIe*8zK|cjuhI5$c zau!O_USSr6eLOo_God2V+%Qs_8nIkY00Tku28~_FyHsfn>lr7C+_5P^(wkehWwhl; zk>9~ODYb(m)ing$baxx)%kAE`OP5mHH18ok%kIL;!5G1uCiuIZKU3tc=wc=o*|ZV| z3U20?b)VauA!`;3X&y%7cz7N}GLivcflEF!FiB?i0|#VlI3rLZRX50-`g50PoZlsC znq`NR15onv>^}IUgTFl+nmb5l*t6(d&zsZy2`yj>1()vADaahUNM}333NjYM1Kph} zA>dRg+x_;e-e+C0XG^t#gv+K!Sh*fLfdzIe6Xo`KDUP1-S;))_8oDRiK%5Ml0N z3pvs!9+gl(TOVbd4)qG7U2O#oAk~Tg9+RQ;a;i`p5sS1BYy%8dfLV1(x{jSW-gNut|GEtMoF?QA$%Xty!vCGAK1Xn{I^^j)f@uc`(RB{Zhw$N9b9a3uTf&2=gNQ zxviHZ1f80c5dC3b%GQle9xf#}q*{oKxOLAB{w)HiWZwu1#9$32x;Sa5XWIVRKUc4E zm8x0UQF+!&ekK(d>x`J(1k|RBn}#`<0_7%FLkW_W0!M`;S(HPr*n_*d7DbxRDg_e* zJyXC0KG7`UXJi3&V) z*`Av}aY!-VqrM5|fEZx1C}Nx61vWtGqrcm8<{>S0qhX05NzF>7Xn^pyCVjGOd-=~B zA53;2iQIf4inL~$9wd0QJ)$9r$W<774wJ9V2Q?SbF?7Kke8Bb{{_sQE zRXgCR2)`z7}*wF`FZ zmr)8!PndKe&VcVjC@#{{nZb*ewv2=z^Ty&W)jYe5zRA*4Dd^ZlbGk@TL?Q|b$KF7S z!8tW>O2yAjV48Cy$RbG-iZJ4~hQb%LZlM}oo)M@a{~HT8Q&g}7Byfn%xqD0+z)6B6 z>z)cIr4E^8N$UV&-vv#+XS&kgdyqRs$ORhQT~25#W+wLI32hsyTQ4IUbNBSSPy72d z&EXf?ga-xI^pFPh%yemsFr3B%KHUZ@WAtK2jeS9*+TDCA9GHQPtB($Dlzfyu=K%z; z@#wQO@GhlLqqv>#GF$NF(8wsGCBv{CsifzdgQEpY2fU=gClK~HX7A3CSJBRc*DmJ1 zOflYPc;I}`khpRy<4A4$7)Wz}56-sUc*1ZY3WPQ;(wyFgBVa4kwxxKod(0$e#0?SG z3iYI z#6_*9*D_m~NE-c@q3KKk?U)iS*Cx?Tmtk|khf=b7S{P)`p2K~8+s1J~2UF~t=v?X( z{SijjMc&9{X=Ei>d`YAZr*yX7M){VWQEK8JBF}G;_>PT(eol91gWL<= z&3!~QTZp;AVW%@^cBCg@O~*H!c@4>TNx$spJPmnA;aSYO{>h!E*gBE4o;4t~yuXU? zSVBSjAXPNhOi*ky=;(Zi0kxO+*+Bpmbi$q^HzsLbVxIE|cgGu`4z1I8AFC78^`5Cl zoHW~Dzm-0-3CL65$Y6(n=|!t{aY}0|o#i|}9h%#J7RWCc0X7A*vn#RY=o7_jDiJ(9(ibNr zYgJmeZ1nWB?=$@c4WSP$2qP#bJx8=0FOW2+e+CYMM0l4GH=rn*E?C$6-BYIF6=@q{ zf`|QH_Jps2AycV=(5ZoJgi`;8U8DDnmS*&<;9Vpll3`?OgCBKTv*RSJp3u2vys2&| z;G9xcXD+)*6(A@v8Jepe<2p+(QlxGf&(fthaK)VOX5Yz~$@|mj^c{j%B3of;VVkt4 zzo)*#Ys2@!O4N%doc)gVoj@6`CtOp*MOv4Eq$#)=NC1t0m|@`FwRN=fMivHVyp3cH zd&fgy#SrqMXGe)tV?vkLJV}jBOi1)ML22guXknaEoNr7a3jGoDhmm(M>HS*Ad`HP- zViBiQlRKoe+XA~VIYb#$ywB6jC&)4*qLY@d$5`U@eNf>>6aIs`51@6^sr9LU9J)zC zX4hvj7bT+)1AU000R1wnFdpKF2!%=k%4(BwkY~0=x#^;t41o1dWxk7`%rzwaP{EPu zC%`AS1^Fx$UWaDZr}Y{x?`)yN3{#Wh3Q8<2iV6*Fe9{&`yuQ4Pg`ZM|2349&Z+XTR zG^jT&xCkBE<|9lq+)zFLUKxHWhddTFgkFXsT0Q!r&U8GVP~co-xZ@^sYU=g7Ofj>L z;$8!5?%pY4mUM4(oM|6YtpUM~Oxx5IMeP>Zs73S36~F9TU_lcQ+4jj5Et3I%On&Uc z`-r&FB}Y8{b47G6OWatp*9Vo@o|6%Dj(QimA5cSF3ywv#{-hNksZlm(c1*E!cRxcC z`l8#Ap2?{}e;3{{T5MBI)`td-7p<@gv{o$mQu;d(w3@+!-YfF?F0M_cmIB1s$~9F! zbVv)zBTW#nnxwL*MAKpy*AP9ORHmS)|nY$-q?1!4|VE z2U|aB(c_0~3TPc}k`|?rHWIKS2Y2s@4+y52xG-@OvM{;o5@rXTb*HsGI%yDx!1X!l z&g}Oy7f?@|amWR0%F4!GYs}_om`#jyUinZfisAG+Kqgt{!SwNc7>R+d^+m)&-fx9Q9Ib|I%fk#X(%!Gk6$j-3bf712KI)JbBvE=Em2?N4 zOuUh9B)gEdNny%duskhUpciz-&2s_xq?>c;KVmgF6!1FrM@2JPr<`qHX4)hhKv#{% zH;2wJ3=O>s0CYs?lG?7Sn2h=hbsQey$|tErB%XKQ-)XwiT+WcO+zNEoG~v%J(8QtK z!!Zgv?Jn!XL~%YV3W~U;ghtWp@p^I4H#s;om;;xOFE_Au7p2S%iPN>Q?M>b6y==53 z%7zU36q<_UGQ86kANIj}o23ZrEsGx4K?yWzSRBk;Ptun4bAYKuMvx|dX|cI7(5RJE zq&hLA+f!sWq~~m!NL_87_*{}XFkigwEQ5kl=!xhNh z#_w4ws7AuC!m)-~9&X+wmsP>Lr!t;YCe@I_oW5wE!+DP0yi@y*1AUSw8kx^9{-Az< zyY5+ObB5RyRPuC&S%Moo(al^B+M(O2$1;(P=8;g$nP$&pb~+YkWxEW9qgjuYF--$g z@(`P3leSSdO?b@)Q~O;v)&ISMEqOD!Hyc*-g~a}eMbnC6Q*!&(G7QfvT4$Gc?Iyxe z1B(Z@n|^f{P}gWx)%}XA3Knm=;?y1{skE>l=jI@_b!3@%#U#DkFtHu*XXeAg9pb)O zo1>FqYJZF|4aoClY0pSYTc6dEOH=6S)M8hCAwnjm;UbXYd-BUH>*`QY43{nTdqc;u zx;!w+G6SGkL0X_vDl5MV4OUodv7S)LB@!L>({x1@hHG%qPppG52I-|p5%-Bfp;klP z1U@1R)#<57Jo^*aF;2y^ZZu=zk^n|rYrOlNUI}kH(5gWe#!V-}tSR+v1(%iXUJ_IB z;2j5?Ol$H4p9)RQp~%5eBrUKp0#oMR2EDIXDRG5S;7GCl?g4!LGq(oBlJ3yR+SoH&;ZvcP z?E6|H3|=Oe87~Q*E>F2Ua)hlho~>>)WBu}Q8IK8{n_>JxPkf^}!lL~d12aHlh@H(fLhEoyP;4$&M6nW6(me-|8nrU+oBq$}3tqRbQ@9iX@hJ$4~# zk&}g_=%Isi)ZY`0O9f#+1MEP~@Z33IBKdn8dbkG|1W@H=66n%AGeB~BY7!S_&4ozhfH$ZoOZQx3R>?Cx|lb$?J@ zgIYckZ<0Z{p(XTN3psQmc<{jJmim<8aPfgwhkV>Tl^kLT;U>7n#lX;eFbNs~8bCm@ zTo)Q%mm1~s%pD>edPk~1AX5y+ipT4*o#*b52QGz3OIk@k$O2LZmPXV%Y?8DR&MOqb z#{{%^qFCGoI{kAVL~|3%cQOIcR)?`{%jtqENCF#M^a?xKjS>abSBeHRkm~OaAzeCx zmz0Z%rgO)!4d#r(!i*d}GAxVaeC25r zzeWkE2HKjLg_xy+y!S1l9`kT4$cN0I;h1L6P^1n)r>WcN&TxrafP6bZs%uiIsdVnq zFlk>Qdy`S{&dRbROT!PSIU5>)Fgj(&Slv0F^nG7M`v(OVDL9F6dkvAKT=Ou4vOZ&x z7M?w@J+pMK%?%f7sUNIOFqzT38e&2_Lg+eWYyV-;okd+~QN@ec>1{cWT4FN;qY_=0 zB_5xN#g|%OrMwi?k)`B6cOia;@2aK+>S@fd>0qqMa_Hr--TG2u6nj5cDzz_&S^x@Af}p_DY9h%rQQyLlBJb`;9EJ-t-bgItGdeXjEZkC5&vciwz8z8g^tw0juG@3(DbPCw-5Nc$RK4Ev26=CO0xEUKQC4 zFALCGDv9l7`Hl+);_@lYK&+1&4k_p}oRw+WR4$YchIPqtEF<5!Yx}UBq(AG>e#=_6 zl+w$S=5R<^S;b`7oaUhEW_Q4syhx8$VP{jGiovVNUU$(EpHL{hisq zDl|bO8d|J#Od)L6FhZPAb9rlv^`x-Eff4V0sY5MZGQp`RL4{9RV4?_JuR*JYQ^Q`9 zmBx#lm zDiwXd@WYgNXR*F71^BSQOKQ`Ip5o2r#$gG=Il*$cV)WmzfKE0ARKKK6q&XY)j!pX9 zY0g0b6Cy;SDbhzubi?F3J^QC%jq}rO_}!dlA`OijWQ#Blt&|yBahF6D+A;Jljt^_r zZun_NA2~M_wCRwcRNZ4paTX#2;EdujbW^ZqjB}(-v*2E$vl?OlLG0L!?TyidDtg5Q zS5WFv2-2KJ3p%2WWUV$Mk8XIWD6_gu@rB7g8nsxaSnzr?9j;;OrJy3lHtS6d8%35R>PTS}dk<1hA-OGw^5T;SPv)@v0H(ojna3^0@+X z5I}qKHZt9Yeh%oBCe=9>Ej$xrZ6HI#ap1ZSD2$0om+!+Dd$+ABy32xQK}J;7uzN{E zHLE$EWltHNb*N&=Ly>mWvx`oGkvHq6?7dO82ABX1jzi9ySn??qFARtQO>lNLWE%7{ zQcdJcO|<%yx;N$h(jcTk&6!D%{qO1r9=wk-5y2fp!04UZZm8-X)}`w2cBZ@{-O>!>NI&6yCYt=IW+>+QL`9bV8n@IK=8Qf zoGI@Tw#KhBEX37o7evi6Gz^0`?>fBI2cL)mP^}`~DS$UpBVSLNRkfZhl}(gdgmv)1 z#>jW6jybm_6%)R1jRU_BJ!>?yw%|1P4f<4<9Da~~-8Y{lYEBaX*J((uEHQ_2~HBDf}zU5mnlL0WK^z4!TS zN!lalKHfT_wI(GyEQ|m%(=gM8$VDq_gWQ@#>k#kx2f5kY0U9eR$UG07{FDI_L0SC< zbJ3KX)`N&4Y9VDI@nQ`{&4PXH!u#Kr(Bdv;Z&d(Jzk(@VKB`tH@9Rl+dl(ADY_8Ix zP!WgHR=A;i&_yK7gCbs13ob?*_a6@3xKd2F0?uwpZLDqcj^t- zWTmC&OGzOxUG5Cp0CUOGq`bFFbH$nuz|gpME`}zFS|4aCGiB|Z3#0(zJLKm1fV9S( zr@aV!7s*ZECNg}+l_?devrc?MOiN?|9mPH6ma_+LQp9q>5TJ{<#{Gd!GHc9x^I3wd z^Lt2=g0xyHW0Wp9*(3v)o>fUHR(nIqP3G*GPHe=~ut%Fm%9P>eH=Kl`da#l#c}E*0 zqZthzTwg+E3YjGZOmI;>(49`$%`XB9bk^5|YGYV;6QKKoHrWWX@BKj?Z55M0A3cW} zICqz`?zAefD956#2HT4oqk7rLPrU6+)Z%2Gy{MOZ`F}=E5W{CE(R=ZQh3h#UKRaqx8EBO0O9+5Sy zH+`<>`>A$xHveN~T!reh>;ex#vG%&mI<(e01?NwaXQX}JZf!%;9P*Ra`YuJ0y+JqZ zt8~blmCL0)gM_&v%G9B?Ib_VceJ)e^F-+@6X94_o8q?(ZIdwc?W(4uvY(YR7l5p0) zm@^4n`>K43n2BC}6h6(SOeA8RqD+gVP7G&Xk0C!|zPHjc1=$W?%zdg_DW~6zY>eT@GuXx+4;W!~%^`NOzElp2>7aihiU) z{Ys0!8;M1?EGsdLR=tWVy3xKyr@tU6g%BS}a5EaEDV3^1QC?hMa}rycE+Rv{C_4=< z4NrxYNH}e-ZbH;@q6J$SsS9WD@IVh28{~4}hVq84v)m;K`R--_1CY{!?>(hcp~N5s zh4q(5dpD#>caym`%%NWbqh>82wiKrJQ+=G%Ar%=QWwNw67e6w5nBfC1gHYu(MQn|a zQPE?klT+j|2Q-|McE)Bs!!-DX4OL9iGk4Y)4JP?h;y{TOgp+S=P-7tI=%~9?d6%$C z90hGBx68-7-x=>4y{-!v0&PD?DYTJg)MRFW1X6-r9EgSg-rLQx{TQ%epkl(`?L z)I4~fiRfn;X_;evnPI5VvtyDmtok5E1ek#@GM-#}*vPe}fCFx-Dp1a3*@70%5X2O? zV2i5Z@-@tft5*cf%owcjLhf1o`3RX1SgDABX% zjOMgJNDiPNVWynP{J01?gUv&E;?QP=+MT#TBJEO=How_m&OADpwsBz$?OB#ue^vNH zvOlTh$laJyUBWCXCoy5UiSy%3Na~o1{eHQtO&LZw#xRh=nlBqANl8;++&`gefxdV) zFFqzicc&TZK>@_7jS-MJXvAvJ;ij?H&^wi}Z@McwDROQ(W&M%F-J zVP_kh0t>#W4JxA2b$#bJ_3wVBo<$AvXRV?%!c+_nDS>zNubiQrP&O51fxLg+%3D%o z2Y_yuLlHIi-Q7n@gQJa@jnriwFa4A|%GieAJh8;fzOOs2TP5F-*B=58E-(Pm)sF0W z2^T*zJRf@F%)^f{$St}ylG&W;-giFo+(1m0UCai#`?194GOY(S*EL=u7#5hS(8$?I z>V@|TF|mX+j|0$yRaMH_P{w(N>H%HS20l)`V+ZC30Ou}oGN9O$)(5_~#rLt7YfbF% z`Oi18XvzQ|$Y`7Lnp!l)lhXxpT%yDb-kc*Y9jib`g6NHVTi#6H91syg7jkC?g_qg9 z>Eb{}TB@jnFugx_hW7#K^P%y)VpM}_F$ zGk&-x5TXX8xrZX$Wrl;e-A(_}^B(oV2DAfIrB7dz@V{Sf;5bpJCre|t?@=!^WI=n< z6^EDKr$dsQSlcwLK}?UQTYW+i7MLa48b2V32MZVd-UGAjrQrPNHDc070`u9?*D+K0 zE^odJ+R9WirU=nl%%~qDTj{m9dX9#X%Eb7dVBl+N8ytG|g?02j zF4y!5W|(aNMK~K;)$lTrFu>Fu0}2ca7yP7!aMS;al7}5QDkDo;b%D9# zdg04ObEvPm1Ic*rpXa4ST^o?Z4VDVCm|7EYf*YjVMM$%Heuk|_W+o#Isguco;EB$G zwXj6*fJM^HlwWx`-W3_RIbGzVV_4I~-MNWU?1uW`lCFSvn>768K3ztAW5{>uezc(Z z3K`OIGJqmkNXC3AO-P8miyKW#g(ix5R1|ertntko3J2CwPQwgo(WC2G3EJoBXiF1K zbbU}K%bC}K5*0@$x(Q&dqH?5hCbRL0>T}+UP8%45PMPI9eXz&r+Z+m+&4ZTHy0|z_ zK+eMI{4ByaAh2Or6f9U$1}3XCtx4;v5)?Z^v*K0mRIn!my>s?#WrjD&$}ol?8%B=g z^AdG>P5lpOCHoOiXGBmFGp$>WOZCWlNwYcKHIusvBKqrYaW;A`)yaJh7zU;z2pwdm z2DpTVtq8EhO5@yrCmBFSg;FEgg+bn34o$-l%^XvZ$j$i{Wq~3Wn<}0zIkOcm{ylD* zth~7wlfWXj7&OjO*50qT4?G_l;nD!{-}6=75_Rohd71b<4rb!{kRUJU&X5)*m%;uU z4hNpCy7rv$re~Iq-`&PvoV^H~ZAw*G?<_Y=UJm69wc@x(lZ=_X(dRnE%;}kWG7!m< zL;}!@B>qnJP#(HKzJ%5W)@fuo6v2)sAg*_HzkXAu@wY7&%^PheXwHP5m^al#Nra8J zEJ1*g2In}wGM5`6bVe8H9128IAilc3;C2WfAQ!TcnQFg#R;q(^QOqU9W0^!M){E-o8$Qt{o&x+RMrqXy}KC$|~C%23=-~a<5MenEwa*%v2LOjAi?K+twor-4G3U z%uS3Zx?=QbJsW%b0e^oFc7=+S1-K4Xc>3o7E=TAPGuZN*D-<#H2yF2=DeG5z6Fj5eEHM zt3O3d@BU|^^PT;fBAW$qxxBZT1yk0D2H4F06%%@CV%2-vMb-8nx-{1jIQ+H1Y$sc= zENeM`gZ?GUvKy1;)uk)W;8Ko0_$aYbi>-ccx#7ebSh7a4T2~VOU$hx3zupU7q^7gf zA+ufDrhd@=d2rHNZ`1%3>7bU-s_K#>mTH4m{rvn}r&e7iHed1)K6VqQ^~$~sF5Wbi zs%Xe60Ew6um~>H8ctT1}n90IY^w$-mP=t|{h%4yXla3rRL&xy0l`AyzTOEI33IC_(BS z`}>AxL4`aQ%W0_l=|BWDB2-JR+PeG8H_7vlseM2X!VDGm_1TbdC-HIe5J!!{^mg6s z^}%v3f`{qKM%#`lW2q+L&aj{NN2Ei@3aK=q^$OfYL=zj{CQS!=QW2vX*r`yn{3*Po zH&%U5gY?7523(3-Iwp&x1O5DAWLpR2*u%DNQU4%&$so`}eV1wYl@UAkwY5WwxK476 z;ibf;)U!Nn0gPv|x*F)(!ZfN6!RLaZAH`{o=mO}!KH#kcz+DP_j&17{*Ax?D-}1LEg(dJgFfs-X9t4Fcd`3ETFpu3?aS{A8~^NJ z?_d^XH@&Y2@xx;;I*%xoWURa2>r%uJ6&zyNtS%`A4??edV&AsA=RN(7>7Px1Mt_cx zS;Ay?bAG&nam;U|F z2($OxpXak;dNzJPhyAY8bDq~9V#aRY+-c<|Z{^9y*UC5E;rBV(*=YdX8pW`9FQ$Y+v3}k0t0^-RvhQu5$|0@z3+_-qKkj^L+Z=8NbiH@2`Gm=j|M$ z-}AfvK6k!N-q-x>rr&jUchoQd*b^t+5Ht9T6CiQ-Ii|D2`ISDa1*X_=cPIOE+@)5A zU0?d0^zS~KS-Jc7)4=K7`6%CqfTaHZk^nva+|TL;S0ivhg!;SdT?tIW%fI+DKk>7F z`SaiXeSh`6_ul&^p(~ER^>6<3SO3c|{qzrgp^LCw$`5vY*&GlOI%s_?8x^CwCpLTT z`0E#V`JsDszuNWYb_+@AA<;Bid;f#`)h*#cn4;OeUetcL?Z5n=ZNWnO^)%9&_{$=H z{V#o-xc%qH52sDme0!q?W8=I&JNo&aE5p5)Cy?ITzx#N#>sjrER!8VJT=c&AKPO$v zL2Dz-y4h7g8YvtzuDzsZ5HKn52LBkVw_R;LO|iRDHe5=TF@~C;s{R zGj=3pukX0lLpjExnAXK-Ru_rozQA5kt ztGDfd0&=BS^gj;`|J*#ZpM7qd{uv*yIY zilhv^YmWvO+_Zk)uD#sY=Mu-2)jzWDm%N_aTBDDDfBhyglP4ReXxpfahU*&FUT3rj zFj?o{HsfOt@}6V`-F}?AiPjqx?Y;@}wrVTs^`Gx;Pjr~tyx%T`NIh>~{?23RN(2S% zqtgA*y}P7k;JuR9Jp-_MA9%_2J30!xN#VN7XT@jVBG>oAjNW6+CZlLx;qm#_+R`*T z{23J6TQ1UdqcyqHGkLtj?d@NB`IxUO{gmUlNbJ3b6KqhIET;`N?cZNrOWj0I7l=Im zo>>F%x=T>mRj8e3+J<{)#Z$b#$IFT@U5Rw8&Fb&a$RBrH=Qwz|(E#&K61`rC^V;6q zeS!5I>WcdpXlK*0hJWa%e(@iF&*wh**_3_rSiAea|K^*Q|MK^K=EwflAODdr{^}q7 z!9VrWAAI-?e^}x1hz~yeM1Ay`&wVxNrra;|OR^!Z4bvacUPXVFpyg-}KcSXJu{O|} z2l!t&(6k*z)z*uPech2=f?UUe-jSQfpLaYP#bqgE85yv zANK4ouo>WuTCZ#Rd{@|fynS1BZshAm0%bJbsYzB_Ic#>KZ(@qvJvP~f$#*a7r>}2L zT;lq2-Q7pg%;`A%J@(@}9P49i)1H|r59+$R_cP__Y+{ZA?xIQ`|2-ieS)V6J)u^`K zu6MgrfWqVVy&nJRQ`WAs=y))DA>xL^1TQ~lGYG}82J1{A+Kwh57hxkzsC)?#{=idtGDOi7K9FL>-sq z+vk3+lVj6qlYU%GStOfD>OUX*6R5w}BBSk#wgK?@;^*Gqe(o&-&Ygs!f34EhnDvO! ze0`VI*3$L8_I(X{?xpV~*yZNDSJDrLg<3>`esM2|ONX-;WMmx-hzk^%7?24$4}%-d_JWkvZYSReN{OEGFc z&VkrLa-+p`|IGVwx12>QTV58`4F&HR;iL}eYz@7vR;X{s*@4djEi2FWww`ld59qNU zI}X){B46L_dFihFIxHqdTA32!Bs$pslhR6FTMhRN5UU1=Eg9Rn=Rf%H_tYmp{Gi>T z>ooYvm;c|t{`Sv*_Yb}~f7Czu2Y>Tl{E_eflYjb$|Ljlx`EUHDkN)D@-~C>{8$bBe zC+g#G{sUh*3m!MMiIz0&GAkavS}Qf{szEp={ZT0Q$-cU-GC^!t6S_Lpx(=cJ`U8)R z`gr*lq6NN{I6eFLvmJd|gE(7mR~+W+V%)Y?p`57cDrT?W)h^5ZI5E?$-fsMV{`}Vq z>D>6+dakXg%fdtTd|%s%o4!8xeJzL9Fa&{MC8tXCis9I>Ju5iGsJSlxx$|N^-XGDN zd2H^zR>bT1T>59tv-`Ucnrw?dy06QlV7r9l$C^F5o3rTNuOhCYjzlY$s z+Fm548B!N_sPX}w4b##2=JmUtZUDuNF

gkhRAWY={sR2xO>ZZ`?Q!sDFTfysiw@ESnoSaJPQ0_4QeaD&{###Pmrd-cG)}coOb_uwFw)N&6?%)qvM#DTYS`sJVh_iz8t7yr&L{M&!| z`#%2c&%J#qpE>{C2OoZI|M+v?{ySh$7J7k`V2Mry9*>DeVfFCuIoStJEU3J=_^-Cm zR!4&VIF{LMADxjKGa+OmG?MbhVbvy4c0iRBO<%O4t?gVL>f!HI1m%_S%A#kT<~urd zI^P(L#(FH^7-Fn;qF0Ev>_HcWlePNULXg7?U-dq^R=%=%Vw5S7ZECRO6;zK6M;uC>0wbHN)Z zO}mec+)LwD&D8KjGvwK{J>Sz}Du`0sJKY+H#@4!&K`mK8dyJPkT->51-s$Jmu=lYc zgrEEJEH1RWkcr4L?<380>!aYxi&hPgd`17~ZVlGZ)T-$uRklfVG@jd5C(Gx05Vgc- znLEgNe>Ft51a7*yx30mm;~h-DyV{>S-+4*}@dU9Ss;ZznM5<0cmqYiMbR0q5HJ|C` z>hn^&3*_WZg#~U+1(vRYhhmJyC2;2$PlaRjX zjx+rkblCiL3X3E>$RD5Uq}DHXq8GB+8_9-_pTBeOvYUmF_dWPvJdV$CAnGT=yd822 z90Eb@I4L_}Jp=_p#D$0zGBZK`r-gP}xizMxx*mFKdcXE(qiLYKt|zD&Z+fUD&+4uN zbv%;|&V`^9xa-0_*p5>suqcCVy_aGw92E|G0m`{|tot|%7lJGHAWg~@5HtReC!I}< z@B2`M#ZLzh6!MZk6*zGuS!q>vWD2ba_lC}6uX9=jZJ@l5CSlqy zrVGRdt;R#?)ONC#eP0eeLiTrYA!{U+YlU3bEpL~`wwQAQz2f;!>v)f61G;V9Qtd=r zH(^6B83osz?NG<(l+gdbe#U&pWgB26Q8R0KX~u)e7^qmU;a=3;n)7ckN@!Z{>NUkzL``D zf9&&be*3Tg!!Lc|JHPY0{@mMQ_OIpk_4@ta@@-$~gB+vKI+_Ds|KJkCbk{Ww_!$xg_XYI^E&JnS zK9p#S?k+`6Tx4<2S3574^G>^dUY$cZtC)Q)g{qZv1ZG})5LoRzXwYLmZ_7(ld$*;} zPha#N&$S8ZRHX6W`2F-=bifhsMlG`yF4dk@-zmw!_gUOrv|jt{HW8|1EwarR?|}~J z-0e2mXT3Nq4dVe@!HbSR{`(1<&@)iniw)LKHUcr2y_DD>ecaJV1WGDW&me5@44q79 z6yI-QDgSe@a_y&`&cukD5#3dDz5bW&gdEztTkAhtYxDf5yNcDSs~+jIXIFy&a;DUK zo+VE)Gqj8BE0KkG&>IJxs{vy#&viHBc}250d-auwz)TXAj{4IKm*<&=4BQge36rbQ z&c`Iytb?hXzFKy~5QAlW;+OLhj|Q^f=Q{i8OY%oG!x}eDQ}2*0;qCwTf8M-bZ{EE3 zJ74?S|Nkpr`qHoc-JklA@BP30ao*g$_>VsQEnod#zwui?_wlDc`jzkdw)cPFzx~h8 ze$~ftg81h6;O7+RS;g$oM>6Ggv84d_@3`P(%Hencr%*V%X|YTWkj^Rz@kpZo4cyIC z8i}MA+SxTlW=cDI85V2$J&a#1Q$oVwRI|3}S{csCrQaEY{mq5Iv=VBXq`fA4jleNV zhsvZ%>@*!sL9!;9(f?o`i<=K~%NiOjp*&lNejEcgA>$;We>QsMfRlvTP_GAlWRPPx zOt6T?k#IUu{o)J|o&#H#v=`kSfec8%aAiY&Xp*o`8Uux1F;LN=vJL3)DqvH?_X|wz zX;O>FXY2I(z8pS;D(*Hj3Gx;&&d-kC)q1BQ$~*?AqJX7aNFnc?K6z?nPr;Mkd*HOt zj)y11Hi<05sY}QG&?O{0(L&pDGpVk@`>}kfdwiygrF^M-E_`fLxkng@BG00b^1i=2kXV(E8v#d$WU0|mOECf= zuBL}u%JtdKb-rJFC?^N1RvVq?@!AJF6oA)rJl@G4{PdfDv{(JpU;p2~_3u9V_*?BZ c_+0@80P#6zEfWDPDgXcg07*qoM6N<$f@(K}BLDyZ literal 0 HcmV?d00001 diff --git a/media/dashboard/img/logged_in_box_bg.gif b/media/dashboard/img/logged_in_box_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..ddd950d51e5223bbd63f4a11c8c8ba77034db9de GIT binary patch literal 1100 zcmZ?wbhEHbWMpt*XkcKFmzQT?U{L(e9pM|G;F4I92&8T7D+&^mvr|hHl2X$%^K6yg z@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZBB zbrg&Y3=Q-RjPwnSbPdg|jE$@e3>2V1320kUN}5%WiyPD~AkS7Qqokz3N?*Ucyj-u` zSTDaQUEk2s(h_8bk&!M?g>G?WUP)qwZeFo6%mkOz;^d;tf|AVqJOz-6iAnjTCALaH zmqNUdTL3pUuUHT49lhlIT>Xl~0)0b01CWPai+LfA{vy>sK#dJb(7|$>T>4AKbrp_s;EGH*Z|OcJ<2TOBXMk zKX>-b=~E|996xsS$l*f=5A5H!chBx!J9li~wsp(qO&d3?U$=J6>QyUOEMK;C$>K!| z7tEhGch2ltGiOYnHg(G6NfRgZ_x1L4cXf8Ox3#u3H#IiY*VWckS5;P&mz90f#JZ9W%+H2^Rae{KK( literal 0 HcmV?d00001 diff --git a/media/dashboard/img/login_bg.png b/media/dashboard/img/login_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3928fb4218953ac16abac8319deaa357d925ab35 GIT binary patch literal 476 zcmV<20VDp2P)fo*^;%pKEHn6zTZEVqy=DsSQKi%ZNC;|PmkFdwif+o`wd&$9of^* zfy9XYuCv0!z?Tv?YS^EiV`tmqv;$Qv@@*~Dy6Xg{EZ_EItX1pof%e>6CpY@izzHtf zuvzQM1+Es}k6~VZ_ssDX{8`+rUc_@BdCTwdaG>)J4OlqJ-c#hb-<&Vs%S$gBvwHS8 zeO9g=P?$Iz<9_wT&bM9^@v2EZY6rf0Ry^9Dc=bnMXshR(X0MN&JCE>&)t2|Usvjkn ziI*HleLnj@c{cc!23MQX<7iQQhqu^uy7%(g-syqX^kDtRm%8ks^0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUyyh%hsRCwAJf82K>%~V8jgJhP9$9&hnHzhk)*bg;c#d7GYTwT`m$}FO zsn4F>*X(=u=$RQBOFWJqZ=T}T#(~N<+yX|kuJWP=SH6{bh1(}rYD|(`&XDolGx?ZF g_}}?G(O-Z80H;;nRM0S!Z~y=R07*qoM6N<$g0zcyqW}N^ literal 0 HcmV?d00001 diff --git a/media/dashboard/img/logo.gif b/media/dashboard/img/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..8da127c33734ebf0d9eac629db3909bcdf284c9a GIT binary patch literal 3098 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 N002ovPDHLkV1hO6(UJfF literal 0 HcmV?d00001 diff --git a/media/dashboard/img/nav_bg.png b/media/dashboard/img/nav_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..90ae6dc0f5965428d52c46397d8ac96be02dfdf7 GIT binary patch literal 1554 zcmZ?wbhEHbWMl|tc*ejG9v;4V^X6&OrX?mO^6>C5F);}X3rkB&DJv_NSCmUgNGK>M znwXkoWo31Cb_N9a2L=ZA_4V1?+k1L?R#sJsiHc=rW^!?Im6VkB^z;-L7kPVoYwPGV zG&W3~HZ?dX*u}+V(xiz^O-(H=ElEkqhDL@HCrs$->aw)5WMpI%5D+joGjDHipFDXo zA0MB)n|pP2b$WWboSbZJZEb35YJPrxN^){qTAGHYrk=iDXh=w2Zl0g7FB>cC)G1R6 z3ky`$RHsay!otGJ!NFl;W1Ewc)8F4;R#p}o7TVg{R$pK5h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw z7AF^F7L;V>=P7_pOiaozEwNPsx)kDt+yc0ZZ~ zn~|ZRi<_l^xs!{5v$?UOnT4~Ng$qotOMY@`Zfaf$Om7N8uNh9gprnvn0JPa9wJ5VJ zHN~wcKUV?lWvfiwZZXDb9#n4%Znv1=)Tkn zMZjdu`2XMEKfizd{PF$U*Ds$xef;qL-P<>>U%h}$>=IY|? zWTw!5hf`WpHiHTiZ zU0GRKetv$0goJ>AfM;iCkB^UZbaZ25V_REWXlQ76cXx4dab#pAZ*OmQc6MxRYef(gtZDEa@tX{#UXZR-lm^iG^n$2db)ylT*$z&2m(KqDzd_M1VI==4@ z27~2txn8eb*G-Z)sHzW0(#VZO$Rphc%{4CQcX{xiTN+%`> z*K#wLb3Ybvfss6y92{W^Us%H(2JwhZoMINgSe9&@V;=vifi_eM-I$J4mP%83D$%s5 kTI+&M*G=!uU+^oy0Oi0qRgJqn0ssI207*qoM6N<$g6#we@c;k- literal 0 HcmV?d00001 diff --git a/media/dashboard/img/page_header.png b/media/dashboard/img/page_header.png new file mode 100644 index 0000000000000000000000000000000000000000..dac79491b6912465053ac671bf7b8341345b89bd GIT binary patch literal 782 zcmV+p1M&QcP)I-fk9CCh$?+Ao4rh?@DY_4;!dy=)Uy?+ zG7YlX*`ghN#7df02Fn6%+GH}SR0|e#zf<8OT5FhdwVB>pfyxV!;$=sLkEk5-Vz&f^ zk7%t8on`4#YX$xot?$xU&g>r0T06e8La4V^pha8Tx^<3LU?s~&hLdGE(YwiL(NF?r zUURepl{c_H*vtccL~HH%Mu2*21!}(VlomxqG_-cKEJu1b89mx)S;ib~MzuM(#gPgh z(WAW+pefpn9&N{+pefpnl`PhCP4H!Fi?z!0f;;g9NBW2==P&MbwUdC4Xwgn@(jKTD ztw7}vz<8v>N3>|;7qdV;T7igG7g_2D)HLUsXGXMVtw)w$RDaeARNg~_3qPsw5i6;S zXmyNMGuo0n-R%V7BWj*ArkN3~weC$;2dcMLAflZKs2U0%5v{c{eKHGl(I%5oMQg5L zmNR`s9OzM2dz-nZkBDeD7PQ(?;Unt2&KE^QYb^mkXx%20(Vn&MGfx8Q&su@@tYIhA z1odaFKx?gkw=DT@P@qS{g(q8de!xnqmcT40dN&#ES(~%e4~X|U{>QJJ35Abn(T2YS zs7EVM<$IFVt6WZ0_=t$s$YfcdRg+9cJ5a2^OsF4dfyz0{t=uLmd_;>j{*%R)>d^|c zXn?7sdb9#7`&8TOA6hrbWK?;o<}C0L?E{SxZWpS5pbPvlTDpfW-A}|yo>$DtnmT$n z8Lc&}zzN=RYXw@g8tq@G9<4xoc}&Q%q58|CK(!0EeA7bVBmNg)0EYNfOj7fI{Qv*} M07*qoM6N<$f-r+;vj6}9 literal 0 HcmV?d00001 diff --git a/media/dashboard/img/projects_bg.png b/media/dashboard/img/projects_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..cd52bf15e9bc9fc7816ee74de5685a9033601e62 GIT binary patch literal 408 zcmV;J0cZY+P)A`VVFhB_YeBam1tdZUK)-b+}&FDKgZASRMzK4xmb^u}bvx&iTMz^0k44hcQSK~}S zk3mzvfr*2?v6la~um6chyY6S)692w`Fly|L`==JE7tFK8AD;J3{q&5~2=OORkFq9>Tl46>H&;aXDvzF1cl?G^2cNlJ_qI+P*URz6gKgqt zuyVe&Wx&+U$ZOaz{SY}bH1Oa@dr0A%Rg=m6+7b5_hpDBd-4Qo>&YTNqkBi2w=;t{X z5}y&j^iq6H{x$cC!^6?qulbVMo1D+SAbA=(i8Gwqb57Y;ue8>~4P`!kHrl`{`N#Y6 z(4E1`{Ghxq`#rLvpL|n9OV`plt~uk`tAEz700RJqxkD%CBqPHB0000jFCF_xI=0-Qi>2@V8CjyP-dA`PS zfyco-*1|vQy6&bQLJc^9o@WFnTXE08NC0-?4Rc$8!yTRyK*2ATtxI<)rA^H@F!tk| z7=dpeU6T#C5W=>$L+u87xD5n6h|XjLP9(aJMR$55IN6#pgGG`gN3372onE>A$-a*? zO+|$G4_>+wZ~-6hBLY9ZPy5UwUMu(&z5_@LkUr)Krs9aPZe>(t>KCafbo;0v|#|VB@ be-~f?=*W`T!DA>e00000NkvXXu0mjfwfVKy literal 0 HcmV?d00001 diff --git a/media/dashboard/img/spinner.gif b/media/dashboard/img/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..42832024a28c4fc149b9ddbc0b684833b5e1e319 GIT binary patch literal 2545 zcma*pX;2jD83*u}zPqQp=@E62m}KZ_mSF@2}tg z^Yjz0*99(3bOo;92LRr@c@q~GH#0LcJ3IUI>C@5C(Pz(|_4W1LxpQY|Xz1a?hZiqi zym|BHt5>hu+S+=0dL||&>g(&l&tC37Nj}rAj}2WJt@Zmv1v`l^y8p{9bZ>HEPI8hg zH!UYsmYANHw>vX2>65gKoteP>9YW&bQ{Ij(9ESwxX_>4_04tL>vDCZeFYR@vNo$P% z64P>vGrqFHg&`)7nV(01L;!bm1l6(ZtUgRNr87-BCC2B48`XwKzi^)-pREn@S+uac zWLmUk^O~v>wO|DKvgrZyo`KkULK*Ax({+@4Bh1;&ESYc zgRE9Dl~y*~lw=U1HThU>f+@1xET?Gks3GM{K7uh8TeZ0^v$5i6O4(5cqIVWIm=Mpv z^7=x6d4__lgmjQ`o*w{|-$-FYLLO9urRQJqhoJFL@3a10!s}Wq!ds2JWt8&imLKL2%08Bq8JPjEw%NH)rVW# zs(S>u@;J{>P?NF+>%$<(9Myu@nDZOJ(23D@B+qsP*d`sD2!u$fEMtr@MUkD|P7 zPeA+K-yFLAZSxJ~oS1$GMn;GjY~y^vx3?=sv7^p9{ndlcM{7O##q3yZ=NK^oEO5#1 zWxmu|7kl<&TM`c&S8@#Z&@FB%FEH!+TmPkjfs5Cy3mwxqeZ-Q7BWzw zxu`V`88t%{{UhUEm&ZD@ zMnO$jtjA(^*C7{s?TlCQ=HfA&TdxgJeU~+|;Ck;%*|@I3jVdmT3-q4$fD_bAioQJ8 z@%hWtG|sX(&4`tutf^}-A3c`Z!o!sYFY&^%{Vm76U{S}(VM_{T1l@9umBwBcDm!?q zKwat&#_k}U9+m`4*Ef6bM;0=^<(KXXUz$tj&eb`GM8hSwE)hy02epT7yBJ63d!Kz6%37xRMr~) z)aV5#8%+Lr`8z@g630n`DaR_*Vr`VRv@i|w-26xhyW4}wG{7Qp>*np-RAe0O%&y<8 z+S3LYsk49>{p|n?#-*IeGj0>0q--y;;~wCo!)oIV;fvNQ?H+Sx>XZYL;F{dZc6ZkF z2C-pkY9c~)!FwLE5O}7mTt{P!+`bBgE?KSci&)d^1UtDrNSDJ4W~M9Vm#(tX@oN{o z{wOVB{|OE)Td~p2`p%$@TfIX6p;IwNtTed1!cyGW$kgoHuSapohR8iduqce@x0P;J zNmdcZ?K|Rlj!RceP|<~=IRyg_!HmB{ zkoaCeb5p6r1?$=2HodH7ocPob)y)YTe4djkPLZH)y9?%jr9-e6PsUc*h{3F#8aF2h z`|Ce{mGkuBxz_L7cC5IC8c2iE^4IZBhw-YYp3}()0cps<# z8v27+L^*HjF*itm>)U2-`g_Fz(U8=8tKiG;UNghP z$LZ%m7Jq>J@omn?$${6Vfa`tgZ>BRYJJo~>e>0q8sA5f``TqC0`Gu*Oy4YZNmmDEk zi4LNnjXW)ud8LQgd9{FIo#{|?J438&*ZT`3t|$O7+8yLa;MD*{8&PTxj_XNs_0`=N zPRMV_spGm+@>_DOHF!ujr(o!RZoTt7Hnj!1A+hd`8-C&XH>^PnIo4mn1I z(rpa1rDsW^fOY^X2BuF2`9Wknpo;-SYjqM*k2ZfinTL@B{N4I~oxd=%#U>xgo0D<& zKa5Q*l;$c9Ad!d-@pTL!RpwRV08$wu74~vh+mQ9M5d~qh{+azbR{Oo{9$O|f7d9-IC6VPejy}|CWT&= z`w&v%17Kp`si3B%!EiF5yMfj_G+s@i?L_%jXjqM+o9T82>OYE(j|IukoQRdo3B OP>4HN<`|&fuYUs>EF5wG literal 0 HcmV?d00001 diff --git a/media/dashboard/img/sub-head-back.png b/media/dashboard/img/sub-head-back.png new file mode 100644 index 0000000000000000000000000000000000000000..b4aacbd55f5548c91dc73b29214774126211c161 GIT binary patch literal 426 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 E00WLR(f|Me literal 0 HcmV?d00001 diff --git a/media/dashboard/img/table_heading_bg.png b/media/dashboard/img/table_heading_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6fcba877877f686158a90cdad7f6b18515e40812 GIT binary patch literal 968 zcmaJ=O^ee&7>=$7Deh5056hUI1e?#c*@niYo3w6V)2(g6;>AsqX&c&PVlp*pk9!j@ z9t8h@UPVw3DkA7buL>ewy?D}_qWCrGHeCF{Ls8VKzNIzE zeu%8Kqld}A`}M;OvYo`$4sM|yj?4g36&rOS&|R|+o6xi;S6;y~MXk_IyMsH%wrnAn zF%t|EyFOu4RCy!zO=}1-=)%6^DfH(j&uHM-3VpF)aE7nKfwMIYU~5`$ThpOcvgwU; zpd8CYz=hZZu{-iYIacVIu1wC!HA{mT1P>K@Kd6q;04fR~C@@^k;))z7@(eHLB}qC9 z1diuePGET<$4jy($Q%deA5FXkc290H8U>wJm#ZtZ~mJ&9+~!ljP;p_`000yS1^@s6B*Hxe0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzRY^oaRCwC#+%ZZ6Q4|HxWWYe0G};9W zxB;^PaS4)2Hz6XJO#~Zp6N;5f5I3N;wVi^UsKxjmL>Od*5c5Is9Jt9anKZAu{Li0m zUDq7|04S}icme>Rcme>Rcme=`;t2r2-z%PXFLf`z-;DwQfP#8ed<@J10D!^q;8A=0nrH*(eU+*|+vSh4Jw{k*6eH}jCu)NB9%SdrsS z;~@LjR(sPyBAez00KkHV^TIi6 z`>}1Sz3DY_7CDVPn'); + text = text.replace(/"/g, '"'); + text = text.replace(/'/g, "'"); + text = text.replace(/&/g, '&'); + return text; +} + +// IE doesn't accept periods or dashes in the window name, but the element IDs +// we use to generate popup window names may contain them, therefore we map them +// to allowed characters in a reversible way so that we can locate the correct +// element when the popup window is dismissed. +function id_to_windowname(text) { + text = text.replace(/\./g, '__dot__'); + text = text.replace(/\-/g, '__dash__'); + return text; +} + +function windowname_to_id(text) { + text = text.replace(/__dot__/g, '.'); + text = text.replace(/__dash__/g, '-'); + return text; +} + +function showRelatedObjectLookupPopup(triggeringLink) { + var name = triggeringLink.id.replace(/^lookup_/, ''); + name = id_to_windowname(name); + var href; + if (triggeringLink.href.search(/\?/) >= 0) { + href = triggeringLink.href + '&pop=1'; + } else { + href = triggeringLink.href + '?pop=1'; + } + var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + win.focus(); + return false; +} + +function dismissRelatedLookupPopup(win, chosenId) { + var name = windowname_to_id(win.name); + var elem = document.getElementById(name); + if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { + elem.value += ',' + chosenId; + } else { + document.getElementById(name).value = chosenId; + } + win.close(); +} + +function showAddAnotherPopup(triggeringLink) { + var name = triggeringLink.id.replace(/^add_/, ''); + name = id_to_windowname(name); + href = triggeringLink.href + if (href.indexOf('?') == -1) { + href += '?_popup=1'; + } else { + href += '&_popup=1'; + } + var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + win.focus(); + return false; +} + +function dismissAddAnotherPopup(win, newId, newRepr) { + // newId and newRepr are expected to have previously been escaped by + // django.utils.html.escape. + newId = html_unescape(newId); + newRepr = html_unescape(newRepr); + var name = windowname_to_id(win.name); + var elem = document.getElementById(name); + if (elem) { + if (elem.nodeName == 'SELECT') { + var o = new Option(newRepr, newId); + elem.options[elem.options.length] = o; + o.selected = true; + } else if (elem.nodeName == 'INPUT') { + if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { + elem.value += ',' + newId; + } else { + elem.value = newId; + } + } + } else { + var toId = name + "_to"; + elem = document.getElementById(toId); + var o = new Option(newRepr, newId); + SelectBox.add_to_cache(toId, o); + SelectBox.redisplay(toId); + } + win.close(); +} + +/* gettext library */ + +var catalog = new Array(); + +function pluralidx(count) { return (count == 1) ? 0 : 1; } + + +function gettext(msgid) { + var value = catalog[msgid]; + if (typeof(value) == 'undefined') { + return msgid; + } else { + return (typeof(value) == 'string') ? value : value[0]; + } +} + +function ngettext(singular, plural, count) { + value = catalog[singular]; + if (typeof(value) == 'undefined') { + return (count == 1) ? singular : plural; + } else { + return value[pluralidx(count)]; + } +} + +function gettext_noop(msgid) { return msgid; } + +function interpolate(fmt, obj, named) { + if (named) { + return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])}); + } else { + return fmt.replace(/%s/g, function(match){return String(obj.shift())}); + } +} + +//Core javascript helper functions + +//basic browser identification & version +var isOpera = (navigator.userAgent.indexOf("Opera")>=0) && parseFloat(navigator.appVersion); +var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]); + +//Cross-browser event handlers. +function addEvent(obj, evType, fn) { + if (obj.addEventListener) { + obj.addEventListener(evType, fn, false); + return true; + } else if (obj.attachEvent) { + var r = obj.attachEvent("on" + evType, fn); + return r; + } else { + return false; + } +} + +function removeEvent(obj, evType, fn) { + if (obj.removeEventListener) { + obj.removeEventListener(evType, fn, false); + return true; + } else if (obj.detachEvent) { + obj.detachEvent("on" + evType, fn); + return true; + } else { + return false; + } +} + +//quickElement(tagType, parentReference, textInChildNode, [, attribute, attributeValue ...]); +function quickElement() { + var obj = document.createElement(arguments[0]); + if (arguments[2] != '' && arguments[2] != null) { + var textNode = document.createTextNode(arguments[2]); + obj.appendChild(textNode); + } + var len = arguments.length; + for (var i = 3; i < len; i += 2) { + obj.setAttribute(arguments[i], arguments[i+1]); + } + arguments[1].appendChild(obj); + return obj; +} + +//---------------------------------------------------------------------------- +//Cross-browser xmlhttp object +//from http://jibbering.com/2002/4/httprequest.html +//---------------------------------------------------------------------------- +var xmlhttp; +/*@cc_on @*/ +/*@if (@_jscript_version >= 5) + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } +@else + xmlhttp = false; +@end @*/ +if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { +xmlhttp = new XMLHttpRequest(); +} + +//---------------------------------------------------------------------------- +//Find-position functions by PPK +//See http://www.quirksmode.org/js/findpos.html +//---------------------------------------------------------------------------- +function findPosX(obj) { + var curleft = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft); + obj = obj.offsetParent; + } + // IE offsetParent does not include the top-level + if (isIE && obj.parentElement){ + curleft += obj.offsetLeft - obj.scrollLeft; + } + } else if (obj.x) { + curleft += obj.x; + } + return curleft; +} + +function findPosY(obj) { + var curtop = 0; + if (obj.offsetParent) { + while (obj.offsetParent) { + curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop); + obj = obj.offsetParent; + } + // IE offsetParent does not include the top-level + if (isIE && obj.parentElement){ + curtop += obj.offsetTop - obj.scrollTop; + } + } else if (obj.y) { + curtop += obj.y; + } + return curtop; +} + +//----------------------------------------------------------------------------- +//Date object extensions +//---------------------------------------------------------------------------- +Date.prototype.getCorrectYear = function() { + // Date.getYear() is unreliable -- + // see http://www.quirksmode.org/js/introdate.html#year + var y = this.getYear() % 100; + return (y < 38) ? y + 2000 : y + 1900; +} + +Date.prototype.getTwoDigitMonth = function() { + return (this.getMonth() < 9) ? '0' + (this.getMonth()+1) : (this.getMonth()+1); +} + +Date.prototype.getTwoDigitDate = function() { + return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); +} + +Date.prototype.getTwoDigitHour = function() { + return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); +} + +Date.prototype.getTwoDigitMinute = function() { + return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); +} + +Date.prototype.getTwoDigitSecond = function() { + return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); +} + +Date.prototype.getISODate = function() { + return this.getCorrectYear() + '-' + this.getTwoDigitMonth() + '-' + this.getTwoDigitDate(); +} + +Date.prototype.getHourMinute = function() { + return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute(); +} + +Date.prototype.getHourMinuteSecond = function() { + return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond(); +} + +//---------------------------------------------------------------------------- +//String object extensions +//---------------------------------------------------------------------------- +String.prototype.pad_left = function(pad_length, pad_string) { + var new_string = this; + for (var i = 0; new_string.length < pad_length; i++) { + new_string = pad_string + new_string; + } + return new_string; +} + +//---------------------------------------------------------------------------- +//Get the computed style for and element +//---------------------------------------------------------------------------- +function getStyle(oElm, strCssRule){ + var strValue = ""; + if(document.defaultView && document.defaultView.getComputedStyle){ + strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule); + } + else if(oElm.currentStyle){ + strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){ + return p1.toUpperCase(); + }); + strValue = oElm.currentStyle[strCssRule]; + } + return strValue; +} + +var SelectBox = { + cache: new Object(), + init: function(id) { + var box = document.getElementById(id); + var node; + SelectBox.cache[id] = new Array(); + var cache = SelectBox.cache[id]; + for (var i = 0; (node = box.options[i]); i++) { + cache.push({value: node.value, text: node.text, displayed: 1}); + } + }, + redisplay: function(id) { + // Repopulate HTML select box from cache + var box = document.getElementById(id); + box.options.length = 0; // clear all options + for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) { + var node = SelectBox.cache[id][i]; + if (node.displayed) { + box.options[box.options.length] = new Option(node.text, node.value, false, false); + } + } + }, + filter: function(id, text) { + // Redisplay the HTML select box, displaying only the choices containing ALL + // the words in text. (It's an AND search.) + var tokens = text.toLowerCase().split(/\s+/); + var node, token; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + node.displayed = 1; + for (var j = 0; (token = tokens[j]); j++) { + if (node.text.toLowerCase().indexOf(token) == -1) { + node.displayed = 0; + } + } + } + SelectBox.redisplay(id); + }, + delete_from_cache: function(id, value) { + var node, delete_index = null; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + if (node.value == value) { + delete_index = i; + break; + } + } + var j = SelectBox.cache[id].length - 1; + for (var i = delete_index; i < j; i++) { + SelectBox.cache[id][i] = SelectBox.cache[id][i+1]; + } + SelectBox.cache[id].length--; + }, + add_to_cache: function(id, option) { + SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); + }, + cache_contains: function(id, value) { + // Check if an item is contained in the cache + var node; + for (var i = 0; (node = SelectBox.cache[id][i]); i++) { + if (node.value == value) { + return true; + } + } + return false; + }, + move: function(from, to) { + var from_box = document.getElementById(from); + var to_box = document.getElementById(to); + var option; + for (var i = 0; (option = from_box.options[i]); i++) { + if (option.selected && SelectBox.cache_contains(from, option.value)) { + SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option.value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + move_all: function(from, to) { + var from_box = document.getElementById(from); + var to_box = document.getElementById(to); + var option; + for (var i = 0; (option = from_box.options[i]); i++) { + if (SelectBox.cache_contains(from, option.value)) { + SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); + SelectBox.delete_from_cache(from, option.value); + } + } + SelectBox.redisplay(from); + SelectBox.redisplay(to); + }, + sort: function(id) { + SelectBox.cache[id].sort( function(a, b) { + a = a.text.toLowerCase(); + b = b.text.toLowerCase(); + try { + if (a > b) return 1; + if (a < b) return -1; + } + catch (e) { + // silently fail on IE 'unknown' exception + } + return 0; + } ); + }, + select_all: function(id) { + var box = document.getElementById(id); + for (var i = 0; i < box.options.length; i++) { + box.options[i].selected = 'selected'; + } + } + } + +/* +SelectFilter2 - Turns a multiple-select box into a filter interface. + +Different than SelectFilter because this is coupled to the admin framework. + +Requires core.js, SelectBox.js and addevent.js. +*/ + +function findForm(node) { + // returns the node of the form containing the given node + if (node.tagName.toLowerCase() != 'form') { + return findForm(node.parentNode); + } + return node; +} + +var SelectFilter = { + init: function(field_id, field_name, is_stacked, admin_media_prefix) { + var from_box = document.getElementById(field_id); + from_box.id += '_from'; // change its ID + from_box.className = 'filtered'; + + // Remove

, because it just gets in the way. + var ps = from_box.parentNode.getElementsByTagName('p'); + for (var i=0; i or

+ var selector_div = quickElement('div', from_box.parentNode); + selector_div.className = is_stacked ? 'selector stacked' : 'selector'; + + //
+ var selector_available = quickElement('div', selector_div, ''); + selector_available.className = 'selector-available'; + quickElement('h2', selector_available, interpolate(gettext('Available %s'), [field_name])); + var filter_p = quickElement('p', selector_available, ''); + filter_p.className = 'selector-filter'; + quickElement('img', filter_p, '', 'src', admin_media_prefix + 'img/admin/selector-search.gif'); + filter_p.appendChild(document.createTextNode(' ')); + var filter_input = quickElement('input', filter_p, '', 'type', 'text'); + filter_input.id = field_id + '_input'; + selector_available.appendChild(from_box); + var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'href', 'javascript: (function(){ SelectBox.move_all("' + field_id + '_from", "' + field_id + '_to"); })()'); + choose_all.className = 'selector-chooseall'; + + //
    + var selector_chooser = quickElement('ul', selector_div, ''); + selector_chooser.className = 'selector-chooser'; + var add_link = quickElement('a', quickElement('li', selector_chooser, ''), gettext('Add'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_from","' + field_id + '_to");})()'); + add_link.className = 'selector-add'; + var remove_link = quickElement('a', quickElement('li', selector_chooser, ''), gettext('Remove'), 'href', 'javascript: (function(){ SelectBox.move("' + field_id + '_to","' + field_id + '_from");})()'); + remove_link.className = 'selector-remove'; + + //
    + var selector_chosen = quickElement('div', selector_div, ''); + selector_chosen.className = 'selector-chosen'; + quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s'), [field_name])); + var selector_filter = quickElement('p', selector_chosen, gettext('Select your choice(s) and click ')); + selector_filter.className = 'selector-filter'; + quickElement('img', selector_filter, '', 'src', admin_media_prefix + (is_stacked ? 'img/admin/selector_stacked-add.gif':'img/admin/selector-add.gif'), 'alt', 'Add'); + var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name')); + to_box.className = 'filtered'; + var clear_all = quickElement('a', selector_chosen, gettext('Clear all'), 'href', 'javascript: (function() { SelectBox.move_all("' + field_id + '_to", "' + field_id + '_from");})()'); + clear_all.className = 'selector-clearall'; + + from_box.setAttribute('name', from_box.getAttribute('name') + '_old'); + + // Set up the JavaScript event handlers for the select box filter interface + addEvent(filter_input, 'keyup', function(e) { SelectFilter.filter_key_up(e, field_id); }); + addEvent(filter_input, 'keydown', function(e) { SelectFilter.filter_key_down(e, field_id); }); + addEvent(from_box, 'dblclick', function() { SelectBox.move(field_id + '_from', field_id + '_to'); }); + addEvent(to_box, 'dblclick', function() { SelectBox.move(field_id + '_to', field_id + '_from'); }); + addEvent(findForm(from_box), 'submit', function() { SelectBox.select_all(field_id + '_to'); }); + SelectBox.init(field_id + '_from'); + SelectBox.init(field_id + '_to'); + // Move selected from_box options to to_box + SelectBox.move(field_id + '_from', field_id + '_to'); + }, + filter_key_up: function(event, field_id) { + from = document.getElementById(field_id + '_from'); + // don't submit form if user pressed Enter + if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) { + from.selectedIndex = 0; + SelectBox.move(field_id + '_from', field_id + '_to'); + from.selectedIndex = 0; + return false; + } + var temp = from.selectedIndex; + SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value); + from.selectedIndex = temp; + return true; + }, + filter_key_down: function(event, field_id) { + from = document.getElementById(field_id + '_from'); + // right arrow -- move across + if ((event.which && event.which == 39) || (event.keyCode && event.keyCode == 39)) { + var old_index = from.selectedIndex; + SelectBox.move(field_id + '_from', field_id + '_to'); + from.selectedIndex = (old_index == from.length) ? from.length - 1 : old_index; + return false; + } + // down arrow -- wrap around + if ((event.which && event.which == 40) || (event.keyCode && event.keyCode == 40)) { + from.selectedIndex = (from.length == from.selectedIndex + 1) ? 0 : from.selectedIndex + 1; + } + // up arrow -- wrap around + if ((event.which && event.which == 38) || (event.keyCode && event.keyCode == 38)) { + from.selectedIndex = (from.selectedIndex == 0) ? from.length - 1 : from.selectedIndex - 1; + } + return true; + } +} diff --git a/media/dashboard/js/jquery-ui.min.js b/media/dashboard/js/jquery-ui.min.js new file mode 100755 index 000000000..3e168d108 --- /dev/null +++ b/media/dashboard/js/jquery-ui.min.js @@ -0,0 +1,9 @@ +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f
');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e
');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,u){var s=(q[u]||0)+(j[u]||0);if(s&&s>=0){o[u]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.rightg||j.bottomd&&j.righth&&j.bottom=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);(function($){$.extend($.ui,{datepicker:{version:"1.7.2"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('
')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('
'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$(''+appendText+"");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDatenew Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)0&&iValue="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j0&&iValue-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormatmaxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDrawmaxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?''+prevText+"":(hideIfNoPrevNext?"":''+prevText+""));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?''+nextText+"":(hideIfNoPrevNext?"":''+nextText+""));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'":"");var buttonPanel=(showButtonPanel)?'
'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'":"")+(isRTL?"":controls)+"
":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="=5?' class="ui-datepicker-week-end"':"")+'>'+dayNamesMin[day]+""}calender+=thead+"";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDatemaxDate);tbody+='";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+""}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="
=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?''+printDate.getDate()+"":'=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+""))+"
"+(isMultiMonth?""+((numMonths[0]>0&&col==numMonths[1]-1)?'
':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||" ",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("
")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||" ");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("
").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e
').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("
");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("
")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('
').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(cthis._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"
",spinner:"Loading…",tabTemplate:'
  • #{label}
  • '}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else + options.data = q; // data is the query string for 'post' + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i].apply(options, [data, status, xhr || $form, $form]); + }; + + // are there files to upload? + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + var multipart = false; +// var mp = 'multipart/form-data'; +// multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if ((files.length && options.iframe !== false) || options.iframe || found || multipart) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else + $.ajax(options); + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[name=submit]', form).length) { + alert('Error: Form elements must not be named "submit".'); + return; + } + + var opts = $.extend({}, $.ajaxSettings, options); + var s = $.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $('