From 7c0c0cd2f13550d3a8013b5ffd18c3b58ab708e8 Mon Sep 17 00:00:00 2001 From: lonalore Date: Thu, 26 Jan 2017 12:45:45 +0100 Subject: [PATCH] Use Library Manager to handle core libraries. --- bower.json | 1 - e107_admin/prefs.php | 188 +- e107_core/xml/default_install.xml | 2 +- e107_handlers/js_manager.php | 18 +- e107_handlers/library_manager.php | 205 +- e107_themes/bootstrap3/admin_theme.php | 13 +- e107_themes/bootstrap3/theme.php | 104 +- e107_themes/bootstrap3/theme_config.php | 11 +- e107_themes/bootstrap3/theme_library.php | 42 + e107_web/js/e107.js | 2765 --- .../lib/bootstrap/{ => 3.3.7}/.bower.json | 0 .../lib/bootstrap/{ => 3.3.7}/CHANGELOG.md | 0 e107_web/lib/bootstrap/{ => 3.3.7}/Gemfile | 0 .../lib/bootstrap/{ => 3.3.7}/Gemfile.lock | 0 .../lib/bootstrap/{ => 3.3.7}/Gruntfile.js | 0 .../bootstrap/{ => 3.3.7}/ISSUE_TEMPLATE.md | 0 e107_web/lib/bootstrap/{ => 3.3.7}/LICENSE | 0 e107_web/lib/bootstrap/{ => 3.3.7}/README.md | 0 e107_web/lib/bootstrap/{ => 3.3.7}/bower.json | 0 .../{ => 3.3.7}/dist/css/bootstrap-theme.css | 0 .../dist/css/bootstrap-theme.css.map | 0 .../dist/css/bootstrap-theme.min.css | 0 .../dist/css/bootstrap-theme.min.css.map | 0 .../{ => 3.3.7}/dist/css/bootstrap.css | 0 .../{ => 3.3.7}/dist/css/bootstrap.css.map | 0 .../3.3.7/dist/css/bootstrap.min.css | 6 + .../dist/css/bootstrap.min.css.map | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../{ => 3.3.7}/dist/js/bootstrap.js | 0 .../{ => 3.3.7}/dist/js/bootstrap.min.js | 0 e107_web/lib/bootstrap/3.3.7/dist/js/npm.js | 13 + .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../lib/bootstrap/{ => 3.3.7}/grunt/.jshintrc | 0 .../grunt/bs-commonjs-generator.js | 0 .../grunt/bs-glyphicons-data-generator.js | 0 .../{ => 3.3.7}/grunt/bs-lessdoc-parser.js | 0 .../grunt/bs-raw-files-generator.js | 0 .../{ => 3.3.7}/grunt/change-version.js | 0 .../{ => 3.3.7}/grunt/configBridge.json | 0 .../{ => 3.3.7}/grunt/npm-shrinkwrap.json | 0 .../{ => 3.3.7}/grunt/sauce_browsers.yml | 0 e107_web/lib/bootstrap/{ => 3.3.7}/js/.jscsrc | 0 .../lib/bootstrap/{ => 3.3.7}/js/.jshintrc | 0 .../lib/bootstrap/{ => 3.3.7}/js/affix.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/alert.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/button.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/carousel.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/collapse.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/dropdown.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/modal.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/popover.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/scrollspy.js | 0 e107_web/lib/bootstrap/{ => 3.3.7}/js/tab.js | 0 .../lib/bootstrap/{ => 3.3.7}/js/tooltip.js | 0 .../bootstrap/{ => 3.3.7}/js/transition.js | 0 .../bootstrap/{ => 3.3.7}/less/.csscomb.json | 0 .../lib/bootstrap/{ => 3.3.7}/less/.csslintrc | 0 .../bootstrap/{ => 3.3.7}/less/alerts.less | 0 .../bootstrap/{ => 3.3.7}/less/badges.less | 0 .../bootstrap/{ => 3.3.7}/less/bootstrap.less | 0 .../{ => 3.3.7}/less/breadcrumbs.less | 0 .../{ => 3.3.7}/less/button-groups.less | 0 .../bootstrap/{ => 3.3.7}/less/buttons.less | 0 .../bootstrap/{ => 3.3.7}/less/carousel.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/close.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/code.less | 0 .../less/component-animations.less | 0 .../bootstrap/{ => 3.3.7}/less/dropdowns.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/forms.less | 0 .../{ => 3.3.7}/less/glyphicons.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/grid.less | 0 .../{ => 3.3.7}/less/input-groups.less | 0 .../bootstrap/{ => 3.3.7}/less/jumbotron.less | 0 .../bootstrap/{ => 3.3.7}/less/labels.less | 0 .../{ => 3.3.7}/less/list-group.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/media.less | 0 .../bootstrap/{ => 3.3.7}/less/mixins.less | 0 .../{ => 3.3.7}/less/mixins/alerts.less | 0 .../less/mixins/background-variant.less | 0 .../less/mixins/border-radius.less | 0 .../{ => 3.3.7}/less/mixins/buttons.less | 0 .../{ => 3.3.7}/less/mixins/center-block.less | 0 .../{ => 3.3.7}/less/mixins/clearfix.less | 0 .../{ => 3.3.7}/less/mixins/forms.less | 0 .../{ => 3.3.7}/less/mixins/gradients.less | 0 .../less/mixins/grid-framework.less | 0 .../{ => 3.3.7}/less/mixins/grid.less | 0 .../{ => 3.3.7}/less/mixins/hide-text.less | 0 .../{ => 3.3.7}/less/mixins/image.less | 0 .../{ => 3.3.7}/less/mixins/labels.less | 0 .../{ => 3.3.7}/less/mixins/list-group.less | 0 .../{ => 3.3.7}/less/mixins/nav-divider.less | 0 .../less/mixins/nav-vertical-align.less | 0 .../{ => 3.3.7}/less/mixins/opacity.less | 0 .../{ => 3.3.7}/less/mixins/pagination.less | 0 .../{ => 3.3.7}/less/mixins/panels.less | 0 .../{ => 3.3.7}/less/mixins/progress-bar.less | 0 .../{ => 3.3.7}/less/mixins/reset-filter.less | 0 .../{ => 3.3.7}/less/mixins/reset-text.less | 0 .../{ => 3.3.7}/less/mixins/resize.less | 0 .../less/mixins/responsive-visibility.less | 0 .../{ => 3.3.7}/less/mixins/size.less | 0 .../{ => 3.3.7}/less/mixins/tab-focus.less | 0 .../{ => 3.3.7}/less/mixins/table-row.less | 0 .../less/mixins/text-emphasis.less | 0 .../less/mixins/text-overflow.less | 0 .../less/mixins/vendor-prefixes.less | 0 .../bootstrap/{ => 3.3.7}/less/modals.less | 0 .../bootstrap/{ => 3.3.7}/less/navbar.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/navs.less | 0 .../bootstrap/{ => 3.3.7}/less/normalize.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/pager.less | 0 .../{ => 3.3.7}/less/pagination.less | 0 .../bootstrap/{ => 3.3.7}/less/panels.less | 0 .../bootstrap/{ => 3.3.7}/less/popovers.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/print.less | 0 .../{ => 3.3.7}/less/progress-bars.less | 0 .../{ => 3.3.7}/less/responsive-embed.less | 0 .../less/responsive-utilities.less | 0 .../{ => 3.3.7}/less/scaffolding.less | 0 .../bootstrap/{ => 3.3.7}/less/tables.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/theme.less | 0 .../{ => 3.3.7}/less/thumbnails.less | 0 .../bootstrap/{ => 3.3.7}/less/tooltip.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/type.less | 0 .../bootstrap/{ => 3.3.7}/less/utilities.less | 0 .../bootstrap/{ => 3.3.7}/less/variables.less | 0 .../lib/bootstrap/{ => 3.3.7}/less/wells.less | 0 .../lib/bootstrap/{ => 3.3.7}/nuget/MyGet.ps1 | 0 .../{ => 3.3.7}/nuget/bootstrap.less.nuspec | 0 .../{ => 3.3.7}/nuget/bootstrap.nuspec | 0 e107_web/lib/bootstrap/{ => 3.3.7}/package.js | 0 .../lib/bootstrap/{ => 3.3.7}/package.json | 0 .../lib/bootstrap/dist/css/bootstrap.min.css | 6 - e107_web/lib/bootstrap/dist/js/npm.js | 13 - e107_web/lib/jquery-ui/AUTHORS.txt | 333 + e107_web/lib/jquery-ui/LICENSE.txt | 43 + .../images/ui-icons_444444_256x240.png | Bin 0 -> 7006 bytes .../images/ui-icons_555555_256x240.png | Bin 0 -> 7074 bytes .../images/ui-icons_777620_256x240.png | Bin 0 -> 4676 bytes .../images/ui-icons_777777_256x240.png | Bin 0 -> 7013 bytes .../images/ui-icons_cc0000_256x240.png | Bin 0 -> 4632 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6313 bytes e107_web/lib/jquery-ui/jquery-ui.css | 1312 ++ e107_web/lib/jquery-ui/jquery-ui.js | 18706 ++++++++++++++++ e107_web/lib/jquery-ui/jquery-ui.min.css | 7 + e107_web/lib/jquery-ui/jquery-ui.min.js | 13 + .../lib/jquery-ui/jquery-ui.structure.css | 886 + .../lib/jquery-ui/jquery-ui.structure.min.css | 5 + e107_web/lib/jquery-ui/jquery-ui.theme.css | 443 + .../lib/jquery-ui/jquery-ui.theme.min.css | 5 + e107_web/lib/jquery-ui/package.json | 74 + 160 files changed, 22190 insertions(+), 3024 deletions(-) create mode 100644 e107_themes/bootstrap3/theme_library.php delete mode 100644 e107_web/js/e107.js rename e107_web/lib/bootstrap/{ => 3.3.7}/.bower.json (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/CHANGELOG.md (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/Gemfile (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/Gemfile.lock (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/Gruntfile.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/ISSUE_TEMPLATE.md (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/LICENSE (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/README.md (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/bower.json (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap-theme.css (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap-theme.css.map (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap-theme.min.css (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap-theme.min.css.map (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap.css (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap.css.map (100%) create mode 100644 e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/css/bootstrap.min.css.map (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/fonts/glyphicons-halflings-regular.eot (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/fonts/glyphicons-halflings-regular.svg (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/fonts/glyphicons-halflings-regular.ttf (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/fonts/glyphicons-halflings-regular.woff (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/fonts/glyphicons-halflings-regular.woff2 (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/js/bootstrap.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/dist/js/bootstrap.min.js (100%) create mode 100644 e107_web/lib/bootstrap/3.3.7/dist/js/npm.js rename e107_web/lib/bootstrap/{ => 3.3.7}/fonts/glyphicons-halflings-regular.eot (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/fonts/glyphicons-halflings-regular.svg (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/fonts/glyphicons-halflings-regular.ttf (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/fonts/glyphicons-halflings-regular.woff (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/fonts/glyphicons-halflings-regular.woff2 (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/.jshintrc (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/bs-commonjs-generator.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/bs-glyphicons-data-generator.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/bs-lessdoc-parser.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/bs-raw-files-generator.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/change-version.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/configBridge.json (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/npm-shrinkwrap.json (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/grunt/sauce_browsers.yml (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/.jscsrc (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/.jshintrc (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/affix.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/alert.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/button.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/carousel.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/collapse.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/dropdown.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/modal.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/popover.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/scrollspy.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/tab.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/tooltip.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/js/transition.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/.csscomb.json (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/.csslintrc (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/alerts.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/badges.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/bootstrap.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/breadcrumbs.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/button-groups.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/buttons.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/carousel.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/close.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/code.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/component-animations.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/dropdowns.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/forms.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/glyphicons.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/grid.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/input-groups.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/jumbotron.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/labels.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/list-group.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/media.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/alerts.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/background-variant.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/border-radius.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/buttons.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/center-block.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/clearfix.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/forms.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/gradients.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/grid-framework.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/grid.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/hide-text.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/image.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/labels.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/list-group.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/nav-divider.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/nav-vertical-align.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/opacity.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/pagination.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/panels.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/progress-bar.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/reset-filter.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/reset-text.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/resize.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/responsive-visibility.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/size.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/tab-focus.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/table-row.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/text-emphasis.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/text-overflow.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/mixins/vendor-prefixes.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/modals.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/navbar.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/navs.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/normalize.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/pager.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/pagination.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/panels.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/popovers.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/print.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/progress-bars.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/responsive-embed.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/responsive-utilities.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/scaffolding.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/tables.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/theme.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/thumbnails.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/tooltip.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/type.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/utilities.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/variables.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/less/wells.less (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/nuget/MyGet.ps1 (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/nuget/bootstrap.less.nuspec (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/nuget/bootstrap.nuspec (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/package.js (100%) rename e107_web/lib/bootstrap/{ => 3.3.7}/package.json (100%) delete mode 100644 e107_web/lib/bootstrap/dist/css/bootstrap.min.css delete mode 100644 e107_web/lib/bootstrap/dist/js/npm.js create mode 100644 e107_web/lib/jquery-ui/AUTHORS.txt create mode 100644 e107_web/lib/jquery-ui/LICENSE.txt create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_444444_256x240.png create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_555555_256x240.png create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_777620_256x240.png create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_777777_256x240.png create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_cc0000_256x240.png create mode 100644 e107_web/lib/jquery-ui/images/ui-icons_ffffff_256x240.png create mode 100644 e107_web/lib/jquery-ui/jquery-ui.css create mode 100644 e107_web/lib/jquery-ui/jquery-ui.js create mode 100644 e107_web/lib/jquery-ui/jquery-ui.min.css create mode 100644 e107_web/lib/jquery-ui/jquery-ui.min.js create mode 100644 e107_web/lib/jquery-ui/jquery-ui.structure.css create mode 100644 e107_web/lib/jquery-ui/jquery-ui.structure.min.css create mode 100644 e107_web/lib/jquery-ui/jquery-ui.theme.css create mode 100644 e107_web/lib/jquery-ui/jquery-ui.theme.min.css create mode 100644 e107_web/lib/jquery-ui/package.json diff --git a/bower.json b/bower.json index c7dba795a..df87756db 100644 --- a/bower.json +++ b/bower.json @@ -20,7 +20,6 @@ "dependencies": { "jquery": "2.x", "jquery-once": "2.x", - "bootstrap": "3.x", "bootstrap-switch": "3.x", "font-awesome": "4.x" } diff --git a/e107_admin/prefs.php b/e107_admin/prefs.php index 01f5a2aa0..8e67d9a7f 100644 --- a/e107_admin/prefs.php +++ b/e107_admin/prefs.php @@ -189,13 +189,16 @@ if(isset($_POST['updateprefs'])) } $core_pref->update($key, $newValue); - /*if($newValue != $core_pref->get($key)) - { // Changed value - $core_pref->set($key, $newValue); - $prefChanges[$key] = $newValue; - }*/ } + + if($core_pref->dataHasChanged()) + { + // Need to clear cache in order to refresh library information. + e107::getCache()->clearAll('system'); + } + $core_pref->save(false); + // special case, do session cleanup, logout, redirect to login screen if($sessionRegenerate) { @@ -1671,67 +1674,51 @@ $text .= " $text .= " - "; - - - - - -// Javascript Control -$text .= " + "; + + +if(E107_DEBUG_LEVEL > 0) +{ + // TODO - remove these old JS settings completely! + + // Javascript Control + $text .= "
- ".PRFLAN_242." + " . PRFLAN_242 . " "; - - $js_options = array( - 'auto' => PRFLAN_243, // load based on dependency - 'admin' => PRFLAN_244, // Always load in admin - 'front' => PRFLAN_245, // Always load in front-end - 'all' => PRFLAN_246, // Always load in admin and front-end - 'none' => PRFLAN_247 // disabled - ); - - - //TODO FIXME - // ie. e107 Core Minimum: JS similar to e107 v1.0 should be loaded "e_js.php" (no framwork dependency) - // with basic functions like SyncWithServerTime() and expandit(), externalLinks() etc. - - $js_types = array( - array('id' => 'jquery', 'name'=> 'jQuery (local)'), - array('id' => 'prototype', 'name'=> 'Prototype (local)'), - - ); - - //TODO // separate switch for CDN.. or automatic fall-back. - - - - foreach($js_types as $arr) - { - // $k = $arr['path']; - $k = $arr['id']; - $name = $arr['name']; - $text .= " - - - "; - } - - $text .= " - -
".$name."".$frm->radio("e_jslib_core[{$k}]", $js_options, $pref['e_jslib_core'][$k])."
"; + $js_options = array( + 'auto' => PRFLAN_243, // load based on dependency + 'admin' => PRFLAN_244, // Always load in admin + 'front' => PRFLAN_245, // Always load in front-end + 'all' => PRFLAN_246, // Always load in admin and front-end + 'none' => PRFLAN_247 // disabled + ); - if(E107_DEBUG_LEVEL > 0) + $js_types = array( + array('id' => 'jquery', 'name' => 'jQuery (local)'), + array('id' => 'prototype', 'name' => 'Prototype (local)'), + ); + + foreach($js_types as $arr) { + // $k = $arr['path']; + $k = $arr['id']; + $name = $arr['name']; + $text .= " + " . $name . " + " . $frm->radio("e_jslib_core[{$k}]", $js_options, $pref['e_jslib_core'][$k]) . " + "; + } - - $text .= " + $text .= " + + @@ -1742,49 +1729,53 @@ $text .= " - + - + - + - + - "; - - $text .= " -
".PRFLAN_248."" . PRFLAN_248 . " - ".$frm->radio_switch('e_jslib_nocombine', $pref['e_jslib_nocombine'], LAN_YES, LAN_NO)." -
".PRFLAN_249."
+ " . $frm->radio_switch('e_jslib_nocombine', $pref['e_jslib_nocombine'], LAN_YES, LAN_NO) . " +
" . PRFLAN_249 . "
".PRFLAN_250."" . PRFLAN_250 . " - ".$frm->radio_switch('e_jslib_gzip', $pref['e_jslib_gzip'], LAN_YES, LAN_NO)." -
".PRFLAN_251."
+ " . $frm->radio_switch('e_jslib_gzip', $pref['e_jslib_gzip'], LAN_YES, LAN_NO) . " +
" . PRFLAN_251 . "
".PRFLAN_252."" . PRFLAN_252 . " - ".$frm->radio_switch('e_jslib_nocache', $pref['e_jslib_nocache'], LAN_YES, LAN_NO)." -
".PRFLAN_251."
+ " . $frm->radio_switch('e_jslib_nocache', $pref['e_jslib_nocache'], LAN_YES, LAN_NO) . " +
" . PRFLAN_251 . "
".PRFLAN_253."" . PRFLAN_253 . " - ".$frm->radio_switch('e_jslib_nobcache', $pref['e_jslib_nobcache'], LAN_YES, LAN_NO)." -
".PRFLAN_251."
+ " . $frm->radio_switch('e_jslib_nobcache', $pref['e_jslib_nobcache'], LAN_YES, LAN_NO) . " +
" . PRFLAN_251 . "
"; + "; - } - else - { - $text .= "
". - $frm->hidden('e_jslib_nocombine',1). - $frm->hidden('e_jslib_nocache', 1). - $frm->hidden('e_jslib_nobcache',1). - $frm->hidden('e_jslib_gzip',0). - "
"; + $text .= "
"; +} +else +{ + $text .= "
"; + $text .= $frm->hidden('e_jslib_core[jquery]', 'all'); + $text .= $frm->hidden('e_jslib_core[prototype]', 'none'); + $text .= $frm->hidden('e_jslib_nocombine', 1); + $text .= $frm->hidden('e_jslib_nocache', 1); + $text .= $frm->hidden('e_jslib_nobcache', 1); + $text .= $frm->hidden('e_jslib_gzip', 0); + $text .= "
"; +} - } +/** + * @addtogroup CDN settings + * @{ + */ // [e_LANGUAGEDIR]/[e_LANGUAGE]/lan_library_manager.php e107::lan('core', 'library_manager'); @@ -1795,6 +1786,7 @@ $CDNproviders = array( ); $text .= ' +

' . LAN_LIBRARY_MANAGER_30 . '

@@ -1821,6 +1813,16 @@ $text .= ' // Submit button. $text .= pref_submit('javascript'); +/** + * @} End of "addtogroup CDN settings". + */ + + +/** + * @addtogroup Third-party libraries + * @{ + */ + $text .= '

' . LAN_LIBRARY_MANAGER_25 . '

'; $text .= '
'; $text .= ''; @@ -1871,11 +1873,18 @@ if(empty($libraries)) $text .= ''; $text .= '
'; - $text .= "
"; +/** + * @} End of "addtogroup Third-party libraries". + */ + + +/** + * @addtogroup Advanced Features + * @{ + */ -//Advanced Features $text .= "
".PRFLAN_149." @@ -1942,7 +1951,9 @@ $text .= "
"; -// END Advanced Features +/** + * @} End of "addtogroup Advanced Features". + */ $text .= " @@ -2004,6 +2015,11 @@ function prefs_adminmenu() e107::getNav()->admin("Basic ".LAN_OPTIONS.'--id--prev_nav', 'core-prefs-main', $var); } +/** + * @addtogroup Third-party libraries + * @{ + */ + /** * Helper function to get library's name. */ @@ -2110,3 +2126,7 @@ function libraryGetStatus($details) $text = $details['error']; return '' . $icon . ''; } + +/** + * @} End of "addtogroup Third-party libraries". + */ diff --git a/e107_core/xml/default_install.xml b/e107_core/xml/default_install.xml index a1c578cc0..f7b840d0b 100644 --- a/e107_core/xml/default_install.xml +++ b/e107_core/xml/default_install.xml @@ -91,7 +91,7 @@ 1 'none', -'jquery' => 'auto', +'jquery' => 'all', )]]> diff --git a/e107_handlers/js_manager.php b/e107_handlers/js_manager.php index e77ba043e..fc96c720c 100644 --- a/e107_handlers/js_manager.php +++ b/e107_handlers/js_manager.php @@ -1,5 +1,6 @@ array( - 'prototype/prototype.js' , - 'scriptaculous/scriptaculous.js', - 'scriptaculous/effects.js', - 'e107.js', - ), + 'prototype' => array(), // TODO remove prototype completely. 'jquery' => array(), ); @@ -233,9 +232,10 @@ class e_jsmanager $this->setInAdmin(defset('e_ADMIN_AREA', false)); $minified = deftrue('e_DEBUG') == true ? null : 'minified'; + $cdn = e107::getPref('e_jslib_cdn', true); // Use local files. - if(isset($_SERVER['E_DEV_LOCALJS']) && $_SERVER['E_DEV_LOCALJS'] === 'true' || !deftrue('e_CDN',true)) + if(isset($_SERVER['E_DEV_LOCALJS']) && $_SERVER['E_DEV_LOCALJS'] === 'true' || !deftrue('e_CDN', $cdn)) { if($this->isInAdmin()) // Admin Area. { diff --git a/e107_handlers/library_manager.php b/e107_handlers/library_manager.php index 058f024a4..58d22b1e8 100644 --- a/e107_handlers/library_manager.php +++ b/e107_handlers/library_manager.php @@ -494,10 +494,22 @@ class e_library_manager $properties['info_type'] = 'theme'; $properties['theme'] = $theme; $libraries[$machine_name] = $properties; - $themes[] = $theme; // This theme has a valid e_library implementation. + + if(!in_array($theme, $themes)) + { + $themes[] = $theme; // This theme has a valid e_library implementation. + } } } } + + if(method_exists($addonClass, 'config_alter')) + { + if(!in_array($theme, $themes)) + { + $themes[] = $theme; // This theme has a valid e_library implementation. + } + } } } } @@ -1156,21 +1168,19 @@ class e_library_manager { if(defset('e_ADMIN_AREA', false) == true) { + $coreLibrary = new core_library(); + $coreLibs = $coreLibrary->config(); + switch($library['machine_name']) { - // Force to use 'smoothness' theme for Admin UI. + // Force to use default CSS files on Admin UI. case 'cdn.jquery.ui': - $library['files']['css'] = array( - 'themes/smoothness/jquery-ui.css' => array( - 'zone' => 2, - ), - ); - - $library['variants']['minified']['files']['css'] = array( - 'themes/smoothness/jquery-ui.min.css' => array( - 'zone' => 2, - ), - ); + case 'jquery.ui': + case 'cdn.bootstrap': + case 'bootstrap': + $coreLib = $coreLibs[$library['machine_name']]; + $library['files']['css'] = $coreLib['files']['css']; + $library['variants']['minified']['files']['css'] = $coreLib['variants']['minified']['files']['css']; break; } } @@ -1186,7 +1196,21 @@ class core_library { /** - * Return information about external libraries. + * Provides information about external libraries. + * + * Provides information about: + * - jQuery (CDN). + * - jQuery (local). + * - jQuery Once (CDN) + * - jQuery Once (local) + * - jQuery UI (CDN) + * - jQuery UI (local) + * - Bootstrap (CDN) + * - Bootstrap (local) + * - Bootstrap Editable (CDN) + * - Bootstrap Editable (local) + * - Font-Awesome (CDN) + * - Font-Awesome (local) */ public function config() { @@ -1288,9 +1312,6 @@ class core_library ), ), ), - 'dependencies' => array( - 'cdn.jquery', - ), // Override library path to CDN. 'library_path' => 'https://cdn.jsdelivr.net/jquery.once/2.1.2/', ); @@ -1325,9 +1346,6 @@ class core_library ), ), ), - 'dependencies' => array( - 'jquery', - ), // Override library path. 'library_path' => '{e_WEB}lib/jquery-once/', ); @@ -1372,12 +1390,53 @@ class core_library ), ), ), - 'dependencies' => array( - 'cdn.jquery', - ), // Override library path to CDN. 'library_path' => 'https://cdn.jsdelivr.net/jquery.ui/1.11.4/', ); + + // jQuery UI (local). + $libraries['jquery.ui'] = array( + 'name' => 'jQuery UI (local)', + 'vendor_url' => 'https://jqueryui.com/', + 'version_arguments' => array( + 'file' => 'jquery-ui.js', + 'pattern' => '/v(\d\.\d+\.\d+)/', + 'lines' => 5, + ), + 'files' => array( + 'js' => array( + 'jquery-ui.js' => array( + 'zone' => 2, + 'type' => 'url', + ), + ), + 'css' => array( + 'jquery-ui.css' => array( + 'zone' => 2, + ), + ), + ), + 'variants' => array( + // All properties defined for 'minified' override top-level properties. + 'minified' => array( + 'files' => array( + 'js' => array( + 'jquery-ui.min.js' => array( + 'zone' => 2, + 'type' => 'url', + ), + ), + 'css' => array( + 'jquery-ui.min.css' => array( + 'zone' => 2, + ), + ), + ), + ), + ), + // Override library path. + 'library_path' => '{e_WEB}lib/jquery-ui/', + ); // Bootstrap (CDN). $libraries['cdn.bootstrap'] = array( @@ -1419,9 +1478,6 @@ class core_library ), ), ), - 'dependencies' => array( - 'cdn.jquery', - ), // Override library path to CDN. 'library_path' => 'https://cdn.jsdelivr.net/bootstrap/3.3.7/', ); @@ -1466,56 +1522,8 @@ class core_library ), ), ), - 'dependencies' => array( - 'jquery', - ), - ); - - // Bootstrap Editable (Local). - $libraries['bootstrap.editable'] = array( - 'name' => 'Bootstrap Editable (Local)', - 'vendor_url' => 'https://vitalets.github.io/bootstrap-editable/', - 'version_arguments' => array( - 'file' => 'js/bootstrap-editable.min.js', - 'pattern' => '/v(\d\.\d\.\d+)/', - 'lines' => 5, - ), - 'files' => array( - 'js' => array( - 'js/bootstrap-editable.js' => array( - 'zone' => 2, - 'type' => 'url', - ), - ), - 'css' => array( - 'css/bootstrap-editable.css' => array( - 'zone' => 2, - ), - ), - ), - 'variants' => array( - // All properties defined for 'minified' override top-level properties. - 'minified' => array( - 'files' => array( - 'js' => array( - 'js/bootstrap-editable.min.js' => array( - 'zone' => 2, - 'type' => 'url', - ), - ), - 'css' => array( - 'css/bootstrap-editable.min.css' => array( - 'zone' => 2, - ), - ), - ), - ), - ), - 'dependencies' => array( - 'cdn.bootstrap', // FIXME - bootstrap local version? - ), // Override library path. - 'library_path' => '{e_WEB}js/bootstrap3-editable/', + 'library_path' => '{e_WEB}lib/bootstrap/3.3.7/', ); // Bootstrap Editable (CDN). @@ -1558,13 +1566,54 @@ class core_library ), ), ), - 'dependencies' => array( - 'cdn.bootstrap', - ), // Override library path to CDN. 'library_path' => 'https://cdn.jsdelivr.net/bootstrap.editable/1.5.1/', ); + // Bootstrap Editable (local). + $libraries['bootstrap.editable'] = array( + 'name' => 'Bootstrap Editable (Local)', + 'vendor_url' => 'https://vitalets.github.io/bootstrap-editable/', + 'version_arguments' => array( + 'file' => 'js/bootstrap-editable.min.js', + 'pattern' => '/v(\d\.\d\.\d+)/', + 'lines' => 5, + ), + 'files' => array( + 'js' => array( + 'js/bootstrap-editable.js' => array( + 'zone' => 2, + 'type' => 'url', + ), + ), + 'css' => array( + 'css/bootstrap-editable.css' => array( + 'zone' => 2, + ), + ), + ), + 'variants' => array( + // All properties defined for 'minified' override top-level properties. + 'minified' => array( + 'files' => array( + 'js' => array( + 'js/bootstrap-editable.min.js' => array( + 'zone' => 2, + 'type' => 'url', + ), + ), + 'css' => array( + 'css/bootstrap-editable.min.css' => array( + 'zone' => 2, + ), + ), + ), + ), + ), + // Override library path. + 'library_path' => '{e_WEB}js/bootstrap3-editable/', + ); + // Font-Awesome (CDN). $libraries['cdn.fontawesome'] = array( 'name' => 'Font-Awesome (CDN)', diff --git a/e107_themes/bootstrap3/admin_theme.php b/e107_themes/bootstrap3/admin_theme.php index 8b2bb78b9..9d43c2b8f 100644 --- a/e107_themes/bootstrap3/admin_theme.php +++ b/e107_themes/bootstrap3/admin_theme.php @@ -6,9 +6,18 @@ define("BOOTSTRAP", 3); define('FONTAWESOME', 4); $minified = deftrue('e_DEBUG') == true ? null : 'minified'; +$cdn = e107::getPref('e_jslib_cdn', true); + +if($cdn) { + e107::library('load', 'cdn.bootstrap', $minified); + e107::library('load', 'cdn.fontawesome', $minified); +} +else +{ + e107::library('load', 'bootstrap', $minified); + e107::library('load', 'fontawesome', $minified); +} -e107::library('load', 'cdn.bootstrap', $minified); -e107::library('load', 'cdn.fontawesome', $minified); e107::library('load', 'bootstrap.editable', $minified); e107::css('theme','css/bootstrap-dark.min.css'); diff --git a/e107_themes/bootstrap3/theme.php b/e107_themes/bootstrap3/theme.php index 6f14e7332..5b3fda90b 100644 --- a/e107_themes/bootstrap3/theme.php +++ b/e107_themes/bootstrap3/theme.php @@ -1,76 +1,54 @@ set('sitetheme_pref', $theme_pref); - return $pref->dataHasChanged(); + $changed = $pref->dataHasChanged(); + + if($changed) + { + // Need to clear cache in order to refresh library information. + e107::getCache()->clearAll('system'); + } + + return $changed; } function config($type='front') diff --git a/e107_themes/bootstrap3/theme_library.php b/e107_themes/bootstrap3/theme_library.php new file mode 100644 index 000000000..680422453 --- /dev/null +++ b/e107_themes/bootstrap3/theme_library.php @@ -0,0 +1,42 @@ + - * @license MIT License - * - * @desc Retrieve the browser version - */ -(function() { - var nav = navigator, - userAgent = ua = navigator.userAgent, - v = nav.appVersion, - version = parseFloat(v); - - e107API.Browser = { - IE : (Prototype.Browser.IE) ? parseFloat(v.split("MSIE ")[1]) || 0 : 0, - Firefox : (Prototype.Browser.Gecko) ? parseFloat(ua.split("Firefox/")[1]) || 0 : 0, - Camino : (Prototype.Browser.Gecko) ? parseFloat(ua.split("Camino/")[1]) || 0 : 0, - Flock : (Prototype.Browser.Gecko) ? parseFloat(ua.split("Flock/")[1]) || 0 : 0, - Opera : (Prototype.Browser.Opera) ? version : 0, - AIR : (ua.indexOf("AdobeAIR") >= 0) ? 1 : 0, - Mozilla : (Prototype.Browser.Gecko || !this.Khtml) ? version : 0, - Khtml : (v.indexOf("Konqueror") >= 0 && this.safari) ? version : 0, - Safari : (function() { - var safari = Math.max(v.indexOf("WebKit"), v.indexOf("Safari"), 0); - return (safari) ? ( - parseFloat(v.split("Version/")[1]) || ( ( parseFloat(v.substr(safari+7)) >= 419.3 ) ? 3 : 2 ) || 2 - ) : 0; - })() - }; -})(); - -// ------------------------------------------------------------------- - -/** - * Main registry object - */ -var e107Registry = { - - //System Path - Path: e107Path, - - //Language Constants - Lan: {}, - - //Global Templates - Template: { - Core: { - //e107Helper#duplicateHTML method - duplicateHTML: '
' + - '#{duplicateBody}' + - '' + - '
' - }, - - //e107Helper#LoadingStatus class - CoreLoading: { - template: '
' + - '

' + - '#{JSLAN_CORE_LOADING_ALT}' + - '
#{JSLAN_CORE_LOADING_TEXT}' + - '

' + - '
' - } - }, - - //Cache - Cache: new Hash, - - //Cached vars - CachedVars: new Hash, - - //Global Preferences - Pref: { - Core: { - zIndex: 5 //base system z-index - } - } -} - -// ------------------------------------------------------------------- - -/** - * Global helpers - server side clonings - */ -var isset = function(varname) { - return !Object.isUndefined(varname); -} - -var varset = function(varname) { - if(Object.isUndefined(varname)) { - return (Object.isUndefined(arguments[1]) ? null : arguments[1]); - } - return varname; -} - -var varsettrue = function(varname) { - if(Object.isUndefined(varname) || !varname) { - return (Object.isUndefined(arguments[1]) ? null : arguments[1]); - } - return varname; -} - -var cachevars = function(varname, data) { - e107Registry.CachedVars.set(data) -} - -var getcachedvars = function(varname, destroy) { - if(destroy) - return clearcachedvars(varname); - return e107Registry.CachedVars.get(varname); -} - -var clearcachedvars = function(varname) { - return e107Registry.CachedVars.unset(varname); -} - -var echo = Prototype.emptyFunction, print_a = Prototype.emptyFunction, var_dump = Prototype.emptyFunction; - -// ------------------------------------------------------------------- - - -/** - * e107 custom events - */ -var e107Event = { - - fire: function(eventName, memo, element) { - if ((!element || element == document) && !document.createEvent) - { - element = $(document.documentElement); - } - else - element = $(element) || document; - memo = memo || {}; - return element.fire('e107:' + eventName, memo); - }, - - observe: function(eventName, handler, element) { - element = $(element) || document; - element.observe('e107:' + eventName, handler); - return this; - }, - - stopObserving: function(eventName, handler, element) { - element = $(element) || document; - element.stopObserving('e107:' + eventName, handler); - return this; - }, - - //Server side - e107_event aliases - trigger: function(eventName, memo, element) { - this.fire(eventName, memo, element); - }, - - register: function(eventName, handler, element) { - this.observe(eventName, handler, element); - }, - - unregister: function(eventName, handler, element) { - this.stopObserving(eventName, handler, element); - } -} - - - -/** - * EventManager - * Prototype Xtensions http://www.prototypextensions.com - * - * @desc Create custom events on your own class - */ -var e107EventManager = Class.create({ - - /** - * Initialize - * - * @desc Set scope and events hash - */ - initialize: function(scope) { - this.scope = scope; - this.events = new Hash(); - }, - - /** - * addListener - * - * @desc Add event observer - */ - addObserver: function(name) { - return this.events.set(name, new Hash()); - }, - - /** - * observe - * - * @desc Add a callback for listener 'name' - */ - observe: function(name, callback) { - var observers = this.events.get(name); - - if(!observers) observers = this.addObserver(name); - - if(!Object.isFunction(callback)) { - //throw('e107EventManager.observe : callback must be an js function'); - //surpess error - return this; - } - - var i = this.events.get(name).keys().length; - observers.set(i, callback.bind(this.scope)); - return this; - }, - - /** - * stopObserving (class improvements) - * - * @desc Remove callback for listener 'name' - */ - stopObserving: function(name, callback) { - var observers = this.events.get(name); - - if(!observers) return this; - observers.each( function(pair) { - if(pair.value == callback) { - observers.unset(pair.key); - $break; - } - }); - return this; - }, - - /** - * notify - * - * @desc Launch all callbacks for listener 'name' - */ - notify: function(name) { - var observers = this.events.get(name); - if(observers) { - var args = $A(arguments).slice(1); - //Fix - preserve order - observers.keys().sort().each( function(key) { - var callback = observers.get(key); - if(Object.isFunction(callback)) { - callback.apply(this.scope, args); - } - }); - } - return this; - } - -}); - -// ------------------------------------------------------------------- - - -/** - * Base e107 Object - interacts with the registry object - */ -var e107Base = { - - setPath: function(path_object) { - e107Registry.Path = Object.extend( this.getPathVars(), path_object || {}); - return this; - }, - - addPath: function(path_var, path) { - //don't allow overwrite - if(!e107Registry.Path[path_var]) e107Registry.Path[path_var] = path; - return this; - }, - - getPathVars: function() { - return e107Registry.Path; - }, - - getPath: function(path_name) { - return varset(e107Registry.Path[path_name]); - }, - - _addLan: function(lan_name, lan_value) { - e107Registry.Lan[lan_name] = lan_value; - return this; - }, - - _getLan: function(lan_name) { - return varsettrue(e107Registry.Lan[lan_name], lan_name); - }, - - setLan: function(lan_object) { - if(!arguments[1]) { - Object.keys(lan_object).each(function(key) { - this.addLan(key, lan_object[key]); - }, this); - return this - } - Object.extend(e107Registry.Lan, (lan_object || {})); - return this; - }, - - addLan: function(lan_name, lan_value) { - this._addLan(this.toLanName(lan_name), lan_value); - return this; - }, - - setModLan: function(mod, lan_object) { - Object.keys(lan_object).each( function(key) { - this.addModLan(mod, key, lan_object[key]); - }, this); - return this; - }, - - addModLan: function(mod, lan_name, lan_value) { - return this._addLan(this.toModLanName(mod, lan_name), lan_value); - }, - - getLan: function(lan_name) { - return this._getLan(this.toLanName(lan_name)); - }, - - getModLan: function(mod, lan_name) { - return this._getLan(this.toModLanName(mod, lan_name)); - }, - - getLanVars: function() { - return e107Registry.Lan; - }, - - getModLanVars: function(mod) { - return this.getLanFilter(this.toModLanName(mod)); - }, - - //Example e107.getLanRange('lan1 lan2 ...'); -- { LAN1: 'lan value1', LAN2: 'lan value2', ... } - getLanRange: function(lan_keys) { - var ret = {}; - $w(lan_keys).each( function(key) { - this[key.toUpperCase()] = e107.getLan(key); - }, ret); - return ret; - }, - - //Example e107.getLanFilter('lan_myplug'); -- { LAN_MYPLUG_1: 'lan value1', LAN_MYPLUG_2: 'lan value2', ... } - getLanFilter: function(filter) { - var ret = {}; - filter = filter.toUpperCase(); - $H(e107Registry.Lan).keys().each( function(key) { - if(key.startsWith(filter)) { - this[key] = e107Registry.Lan[key]; - } - }, ret); - - return ret; - }, - - setTemplate: function(mod, tmpl_object) { - mod = this.toModName(mod); - if(!varset(e107Registry.Template[mod])) { - e107Registry.Template[mod] = {}; - } - Object.extend(e107Registry.Template[mod], (tmpl_object || {})); - - return this; - }, - - addTemplate: function(mod, name, tmpl_string) { - mod = this.toModName(mod); - if(!varset(e107Registry.Template[mod])) { - e107Registry.Template[mod] = {}; - } - e107Registry.Template[mod][name] = tmpl_string; - - return this; - }, - - getTemplates: function(mod) { - return varsettrue(e107Registry.Template[this.toModName(mod)], {}); - }, - - getTemplate: function(mod, name) { - mod = this.toModName(mod); - - if(varset(e107Registry.Template[mod])) { - return varsettrue(e107Registry.Template[mod][name], ''); - } - - return ''; - }, - - setPrefs: function(mod, pref_object) { - mod = this.toModName(mod); - if(!varset(e107Registry.Pref[mod])) { - e107Registry.Pref[mod] = {}; - } - Object.extend(e107Registry.Pref[mod], (pref_object || {})); - - return this; - }, - - addPref: function(mod, pref_name, pref_value) { - mod = this.toModName(mod); - if(!varset(e107Registry.Pref[mod])) { - e107Registry.Pref[mod] = {}; - } - e107Registry.Pref[mod][pref_name] = pref_value; - - return this; - }, - - getPrefs: function(mod) { - return varsettrue(e107Registry.Pref[this.toModName(mod)], {}); - }, - - getPref: function(mod, pref_name, def) { - mod = this.toModName(mod); - if(varset(e107Registry.Pref[mod])) { - return varsettrue(e107Registry.Pref[mod][pref_name], varset(def, null)); - } - return varset(def, null); - }, - - setCache: function(cache_str, cache_item) { - this.clearCache(cache_str); - e107Registry.Cache['cache-' + cache_str] = cache_item; - return this; - }, - - getCache: function(cache_str, def) { - return varset(e107Registry.Cache['cache-' + cache_str], def); - }, - - clearCache: function(cache_str, nodestroy) { - var cached = this.getCache(cache_str); - if(!nodestroy && cached && Object.isFunction(cached['destroy'])) cached.destroy(); - e107Registry.Cache['cache-' + cache_str] = null; - delete e107Registry.Cache['cache-' + cache_str]; - return this; - }, - - parseTemplate: function(mod, name, data) { - var cacheStr = mod + '_' + name; - var cached = this.getCache(cacheStr); - if(null === cached) { - var tmp = this.getTemplate(mod, name); - cached = new Template(tmp); - this.setCache(cacheStr, cached); - } - - if(varsettrue(arguments[3])) { - data = this.getParseData(Object.clone(data || {})); - } - - try{ - return cached.evaluate(data || {}); - } catch(e) { - return ''; - } - }, - - getParseData: function (data) { - data = Object.extend(data || {}, - Object.extend(this.getLanVars(), this.getPathVars()) - ); - - return data; - }, - - parseLan: function(str) { - return String(str).interpolate(this.getLanVars()); - }, - - parsePath: function(str) { - return String(str).interpolate(this.getPathVars()); - }, - - toModName: function(mod, raw) { - return raw ? mod.dasherize() : mod.dasherize().camelize().ucfirst(); - }, - - toLanName: function(lan) { - return 'JSLAN_' + lan.underscore().toUpperCase(); - }, - - toModLanName: function(raw_mod, lan) { - return this.toLanName(raw_mod + '_' + varset(lan, '')); - } -}; - -// ------------------------------------------------------------------- - -/** - * String Extensions - * - * Methods used later in the core + e107base shorthands - */ -Object.extend(String.prototype, { - - //php like - ucfirst: function() { - return this.charAt(0).toUpperCase() + this.substring(1); - }, - - //Create element from string - Prototype UI - createElement: function() { - var wrapper = new Element('div'); wrapper.innerHTML = this; - return wrapper.down(); - }, - - parseToElement: function(data) { - return this.parseTemplate(data).createElement(); - }, - - parseTemplate: function(data) { - return this.interpolate(e107Base.getParseData(data || {})); - }, - - parsePath: function() { - return e107Base.parsePath(this); - }, - - parseLan: function() { - return e107Base.parseLan(this); - }, - - addLan: function(lan_name) { - if(lan_name) - e107Base.addLan(lan_name, this); - return e107Base.toLanName(lan_name); - }, - - addModLan: function(mod, lan_name) { - if(mod && lan_name) - e107Base.addModLan(mod, lan_name, this); - return e107Base.toModLanName(mod, lan_name); - }, - - getLan: function() { - return e107Base.getLan(this); - }, - - getModLan: function(mod) { - if(mod) - return e107Base.getModLan(mod, this); - return this; - } -}); - -// ------------------------------------------------------------------- - -/** - * e107WidgetAbstract Class - */ -var e107WidgetAbstract = Class.create(e107Base); -var e107WidgetAbstract = Class.create(e107WidgetAbstract, { - - initMod: function(modId, options, inherit) { - - this.mod = e107Base.toModName(modId, true); - if(!this.mod) { - throw 'Illegal Mod ID'; - } - - var methods = 'setTemplate addTemplate getTemplate parseTemplate setPrefs addPref getPref getPrefs getLan getLanVars addLan setLan'; - var that = this; - - //Some magic - $w(methods).each(function(method){ - var mod_method = method.gsub(/^(set|get|add|parse)(.*)$/, function(match){ - return match[1] + 'Mod' + match[2]; - }); - var parent_method = !e107Base[mod_method] ? method : mod_method; - this[mod_method] = e107Base[parent_method].bind(this, this.mod); - }.bind(that)); - - Object.extend(that, { - getModName: function(raw) { - return raw ? this.mod : e107Base.toModName(this.mod); - }, - - parseModLan: function(str) { - return String(str).interpolate(e107Base.getModLan(this.mod)); - }, - - setModCache: function(cache_str, cache_item) { - e107Base.setCache(this.getModName(true) + varsettrue(cache_str, ''), cache_item); - return this; - }, - - getModCache: function(cache_str) { - return e107Base.getCache(this.getModName(true) + varsettrue(cache_str, '')); - }, - - clearModCache: function(cache_str) { - e107Base.clearCache(this.getModName(true) + varsettrue(cache_str, '')); - return this; - } - }); - - //Merge option object (recursive) - this.setOptions(options, inherit); - - return this; - }, - - - setOptions: function(options, inherit) { - this.options = {}; - - var c = this.constructor; - - if (c.superclass && inherit) { - var chain = [], klass = c; - - while (klass = klass.superclass) - chain.push(klass); - - chain = chain.reverse(); - for (var i = 0, len = chain.length; i < len; i++) { - if(!chain[i].getModPrefs) chain[i].getModPrefs = Prototype.emptyFunction; - //global options if available - Object.extend(this.options, chain[i].getModPrefs() || {}); - } - } - - //global options if available - if(!this.getModPrefs) { this.getModPrefs = Prototype.emptyFunction; } - - Object.extend(this.options, this.getModPrefs() || {}); - return Object.extend(this.options, options || {}); - } - -}); - -// ------------------------------------------------------------------- - -/** - * Core - everything's widget! - */ -var e107Core = Class.create(e107WidgetAbstract, { - initialize: function() { - this.initMod('core'); - }, - - /** - * e107:loaded Event observer - */ - runOnLoad: function(handler, element, reload) { - e107Event.register('loaded', handler, element || document); - if(reload) - this.runOnReload(handler, element); - - return this; - }, - - /** - * Ajax after update Event observer - */ - runOnReload: function(handler, element) { - e107Event.register('ajax_update_after', handler, element || document); - return this; - } - -}); - -//e107Core instance -var e107 = new e107Core(); - -// ------------------------------------------------------------------- - -/* - * Widgets namespace - * @descr should contain only high-level classes - */ - var e107Widgets = {}; - -/** - * Utils namespace - * @descr contains low-level classes and non-widget high-level classes/objects - */ -var e107Utils = {} - -/** - * Helper namespace - * @descr includes all old e107 functions + some new helper methods/classes - */ -var e107Helper = { - fxToggle: function(el, fx) { - var opt = Object.extend( { effect: 'blind' , options: {duration: 0.5} }, fx || {}); - Effect.toggle(el, opt.effect, opt.options); - } -} - -// ------------------------------------------------------------------- - -/* - * Element extension - */ -Element.addMethods( { - fxToggle: function(element, options) { - e107Helper.fxToggle(element, options); - } -}); - -// ------------------------------------------------------------------- - -/** - * Backward compatibility - */ -Object.extend(e107Helper, { - - toggle: function(el) { - var eltoggle; - /** - * (SecretR) Notice - * - * Logic mismatch! - * Passed element/string should be always the target element (which will be toggled) - * OR - * anchor: where 'some-id' is the id of the target element - * This method will be rewritten after the core is cleaned up. After this point - * the target element will be auto-hidden (no need of class="e-hideme") - */ - - if(false === Object.isString(el) || ( - ($(el) && $(el).nodeName.toLowerCase() == 'a' && $(el).readAttribute('href')) - || - ($(el) && $(el).readAttribute('type') && $(el).readAttribute('type').toLowerCase() == 'input') /* deprecated */ - )) { - eltoggle = (function(el) { - return Try.these( - function() { var ret = $(el.readAttribute('href').substr(1)); if(ret) { return ret; } throw 'Error';}, //This will be the only valid case in the near future - function() { var ret = el.next('.e-expandme'); if(ret) { return ret; } throw 'Error';},// maybe this too? - function() { var ret = el.next('div'); if(ret) { return ret; } throw 'Error'; }, //backward compatibality - DEPRECATED - function() { return null; } //break - ) || false; - })($(el)); - } else { - var eltoggle = $(el); - } - - if(!eltoggle) return false; - - var fx = varset(arguments[1], null); - - if(false !== fx) - this.fxToggle(eltoggle, fx || {}); - else - $(eltoggle).toggle(); - - return true; - }, - - /** - * added as Element method below - * No toggle effects! - */ - downToggle: function(element, selector) { - $(element).select(varsettrue(selector, '.e-expandme')).invoke('toggle'); - return element; - }, - - /** - * Event listener - e107:loaded|e107:ajax_update_after - * @see e107Core#addOnLoad - */ - toggleObserver: function(event) { - var element = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - Element.select(element, '.e-expandit').invoke('observe', 'click', function(e) { - var element = e.findElement('a'); - if(!element) element = e.element(); - if(this.toggle(element, {})) e.stop(); - }.bindAsEventListener(e107Helper)); - }, - - /** - * Event listener - e107:loaded|e107:ajax_update_after - * Runs fxToggle against multiple elements. The trigger element is an anchor tag, IDs of the elements to be toggled are defined in - * the 'href' attribute separated by a hash character (including a leading hash), e.g. href='#id1#id2#id3' - * @see e107Core#addOnLoad - */ - toggleManyObserver: function(event) { - var element = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - Element.select(element, '.e-swapit').invoke('observe', 'click', function(e) { - var element = e.findElement('a'); - var els = element.readAttribute('href').split('#').without(''); - els.each(function(el) { - if ($(el)) { - $(el).fxToggle({ - options: { duration: 0.5, queue: { position: 'end', scope: 'toggleManyObserver'} } - }); - } - }); - e.stop(); - }.bindAsEventListener(e107Helper)); - }, - - /** - * Add fx scroll on click event - * on all '' elements - */ - scrollToObserver: function(event) { - var element = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - Element.select(element, 'a[href^=#].scroll-to:not([href=#])').invoke('observe', 'click', function(e) { - new Effect.ScrollTo(e.findElement('a').hash.substr(1)); - e.stop(); - }); - }, - - /** - * - * - */ - executeAutoSubmit: function(event) { - var element = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - Element.select(element, 'select.e-autosubmit').invoke('observe', 'change', function(e) { - e107Helper.selectAutoSubmit(e.element()); - }); - }, - - selectAutoSubmit: function(el) { - var frm = el.up('form'); - if (frm) { - if(el.value == '___reset___') { - frm.getInputs('text').each(function(r) { r.value = '' }); - frm.getInputs('password').each(function(r) { r.value = '' }); - el.value = ''; - } - frm.submit(); - } - if(el.hasClassName('reset')) el.selectedIndex = 0; - }, - - /** - * added as Element method below - */ - downHide: function(element, selector) { - $(element).select(varsettrue(selector, '.e-hideme')).invoke('hide'); - return element; - }, - - /** - * added as Element method below - */ - downShow: function(element, selector) { - $(element).select(varsettrue(selector, '.e-hideme')).invoke('show'); - return element; - }, - - //event listener - autoHide: function(event) { - var hideunder = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - if(hideunder) hideunder.downHide(); - }, - - /** - * added as Element method below - * autocomplete="off" - all major browsers except Opera(?!) - */ - noHistory: function(element) { - $(element).writeAttribute('autocomplete', 'off'); - return element; - }, - - /** - * added as Element method below - */ - downNoHistory: function(element, selector) { - $(element).select(varsettrue(selector, 'input.e-nohistory')).invoke('noHistory'); - return element; - }, - - //event listener - autoNoHistory: function(event) { - var down = event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - if(down) down.downNoHistory(); - }, - - /** - * added as Element method below - */ - externalLink: function (element) { - $(element).writeAttribute('target', '_blank'); - return element; - }, - - /** - * added as Element method below - */ - downExternalLinks: function(element) { - $(element).select('a[rel~=external]').invoke('externalLink'); - return element; - }, - - //event listener - autoExternalLinks: function (event) { - //event.element() works for IE now! - //TODO - remove memo.element references - //event.memo['element'] ? $(event.memo.element) : $$('body')[0]; - var down = event.element() != document ? event.element() : $$('body')[0]; - if(down) down.downExternalLinks(); - }, - - urlJump: function(url) { - top.window.location = url; - }, - - //TODO Widget - e107Window#confirm; - confirm: function(thetext) { - return confirm(thetext); - }, - - autoConfirm: function(event) { - - }, - - imagePreload: function(ejs_path, ejs_imageString) { - var ejs_imageArray = ejs_imageString.split(','); - for(var ejs_loadall = 0, len = ejs_imageArray.length; ejs_loadall < len; ejs_loadall++){ - var ejs_LoadedImage = new Image(); - ejs_LoadedImage.src=ejs_path + ejs_imageArray[ejs_loadall]; - } - }, - - toggleChecked: function(form, state, selector, byId) { - form = $(form); if(!form) { return; } - if(byId) selector = 'id^=' + selector; - $A(form.select('input[type=checkbox][' + selector + ']')).each(function(element) { if(!element.disabled) element.checked=state }); - }, - - //This will be replaced later with upload_ui.php own JS method - //and moved to a separate class - __dupCounter: 1, - __dupTmpTemplate: '', - //FIXME - duplicateHTML: function(copy, paste, baseid) { - if(!$(copy) || !$(paste)) { return; } - this.__dupCounter++; - var source = $($(copy).cloneNode(true)), newentry, newid, containerId, clearB; - - source.writeAttribute('id', source.readAttribute('id') + this.__dupCounter); - newid = (baseid || 'duplicated') + '-' + this.__dupCounter; - - var tmpl = this.getDuplicateTemplate(); - if(tmpl) { - var sourceInnerHTML = source.innerHTML; - source = source.update(tmpl.parseToElement({ - duplicateBody: sourceInnerHTML, - removeId: 'remove-' + newid, - baseId: baseid || '', - newId: newid, - counter: this.__dupCounter - })).down().hide(); - clearB = $(source.select('#remove-' + newid)[0]); - } else { - //see clear, clearL and clearR CSS definitions - clearB = new Element('input', { 'class': 'button', 'value': 'x', 'type': 'button', 'id': 'remove-' + newid }); //backward compat. - subject of removal - source.insert({ - top: new Element('div', {'class': 'clear'}), - bottom: clearB - }).hide(); - } - if(baseid) { - source.innerHTML = source.innerHTML.replace(new RegExp(baseid, 'g'), newid); - } - var containerId = source.identify(); - $(paste).insert(source); - //Again - the EVIL IE6 - if(!clearB) { clearB = $('remove-' + newid); } - - clearB.observe('click', function(e) { - e.stop(); - var el = e.element().up('#'+containerId); - el.fxToggle({ - effect: 'appear', - options: { - duration: 0.4, - afterFinish: function(o) { o.element.remove(); } - } - }); - }.bind(this)); - - source.fxToggle({ - effect: 'appear', - options: { duration: 0.5 } - }); - }, - - getDuplicateTemplate: function() { - if(this.__dupTmpTemplate) { - var tmpl = this.__dupTmpTemplate; - this.__dupTmpTemplate = ''; - return tmpl; - } - return e107.getModTemplate('duplicateHTML'); - }, - - setDuplicateTemplate: function(tmpl) { - return this.__dupTmpTemplate = tmpl; - }, - - previewImage: function(src_val, img_path, not_found) { - $(src_val + '_prev').src = $(src_val).value ? img_path + $(src_val).value : not_found; - return; - }, - - insertText: function(str, tagid, display) { - $(tagid).value = str.escapeHTML(); - if($(display)) { - $(display).fxToggle(); - } - }, - - appendText: function(str, tagid, display) { - $(tagid).focus().value += str.escapeHTML(); - if($(display)) { - $(display).fxToggle(); - } - }, - - //by Lokesh Dhakar - http://www.lokeshdhakar.com - getPageSize: function() { - - var xScroll, yScroll; - - if (window.innerHeight && window.scrollMaxY) { - xScroll = window.innerWidth + window.scrollMaxX; - yScroll = window.innerHeight + window.scrollMaxY; - } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac - xScroll = document.body.scrollWidth; - yScroll = document.body.scrollHeight; - } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari - xScroll = document.body.offsetWidth; - yScroll = document.body.offsetHeight; - } - - var windowWidth, windowHeight; - - if (self.innerHeight) { // all except Explorer - if(document.documentElement.clientWidth){ - windowWidth = document.documentElement.clientWidth; - } else { - windowWidth = self.innerWidth; - } - windowHeight = self.innerHeight; - } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode - windowWidth = document.documentElement.clientWidth; - windowHeight = document.documentElement.clientHeight; - } else if (document.body) { // other Explorers - windowWidth = document.body.clientWidth; - windowHeight = document.body.clientHeight; - } - - // for small pages with total height less then height of the viewport - if(yScroll < windowHeight){ - pageHeight = windowHeight; - } else { - pageHeight = yScroll; - } - - // for small pages with total width less then width of the viewport - if(xScroll < windowWidth){ - pageWidth = xScroll; - } else { - pageWidth = windowWidth; - } - - return [pageWidth,pageHeight]; - } -}); - - -// ------------------------------------------------------------------- - -/* - * Element extensions - */ -Element.addMethods( { - downNoHistory: e107Helper.downNoHistory, - downHide: e107Helper.downHide, - downShow: e107Helper.downShow, - downToggle: e107Helper.downToggle, - downExternalLinks: e107Helper.downExternalLinks, - - // -- more useful extensions - taken from Prototype UI -- - getScrollDimensions: function(element) { - element = $(element); - return { - width: element.scrollWidth, - height: element.scrollHeight - } - }, - - getScrollOffset: function(element) { - element = $(element); - return Element._returnOffset(element.scrollLeft, element.scrollTop); - }, - - setScrollOffset: function(element, offset) { - element = $(element); - if (arguments.length == 3) - offset = { left: offset, top: arguments[2] }; - element.scrollLeft = offset.left; - element.scrollTop = offset.top; - return element; - }, - - // returns "clean" numerical style (without "px") or null if style can not be resolved - // or is not numeric - getNumStyle: function(element, style) { - var value = parseFloat($(element).getStyle(style)); - return isNaN(value) ? null : value; - }, - - // (http://tobielangel.com/2007/5/22/prototype-quick-tip) - appendText: function(element, text) { - element = $(element); - element.appendChild(document.createTextNode(String.interpret(text))); - return element; - } -}); - -Object.extend(document.viewport, { - // Alias this method for consistency - getScrollOffset: document.viewport.getScrollOffsets, - - setScrollOffset: function(offset) { - Element.setScrollOffset(Prototype.Browser.WebKit ? document.body : document.documentElement, offset); - }, - - getScrollDimensions: function() { - return Element.getScrollDimensions(Prototype.Browser.WebKit ? document.body : document.documentElement); - } -}); - -Element.addMethods('INPUT', { - noHistory: e107Helper.noHistory -}); - -Element.addMethods('A', { - externalLink: e107Helper.externalLink -}); - -Element.addMethods('FORM', { - toggleChecked: e107Helper.toggleChecked -}); - -// ------------------------------------------------------------------- - -/** - * e107BB helper - */ -e107Helper.BB = { - - __selectedInputArea: null, - - store: function(textAr){ - this.__selectedInputArea = $(textAr); - }, - - /** - * New improved version - fixed scroll to top behaviour when inserting BBcodes - * @TODO - improve it further - */ - insert: function(text, emote) { - if (!this.__selectedInputArea) { - return; //[SecretR] TODO - alert the user - } - var eField = this.__selectedInputArea, - tags = this.parse(text, emote), - scrollPos, sel, newStart, newEnd = ''; - if(this.insertIE(eField, text, tags)) return; - - scrollPos = eField.scrollTop, sel = (eField.value).substring(eField.selectionStart, eField.selectionEnd); - - newStart = eField.selectionStart + tags.start.length + sel.length + tags.end.length; - if(eField.selectionStart || (!eField.selectionStart && eField.selectionEnd != eField.textLength)) { - newEnd = (eField.value).substring(eField.selectionEnd, eField.textLength); - } - eField.value = (eField.value).substring(0, eField.selectionStart) + tags.start + sel + tags.end + newEnd; - eField.focus(); eField.selectionStart = newStart; eField.selectionEnd = newStart; eField.scrollTop = scrollPos; - return; - - }, - - insertIE: function(area, text, tags) { - // IE fix - if (!document.selection) return false; - var eSelection = document.selection.createRange().text; - area.focus(); - if (eSelection) { - document.selection.createRange().text = tags.start + eSelection + tags.end; - } else { - document.selection.createRange().text = tags.start + tags.end; - } - eSelection = ''; area.blur(); area.focus(); - return true; - }, - - parse: function(text, isEmote) { - var tOpen = text, tClose = ''; - if (isEmote != true) { // Split if its a paired bbcode - var tmp = text.split('][', 2); - tOpen = varset(tmp[1]) ? tmp[0] + ']' : text; - tClose = varset(tmp[1]) ? '[' + tmp[1] : ''; - } - return { start: tOpen, end: tClose }; - }, - - //TODO VERY BAD - make it right ASAP! - help_old: function(help, tagid, nohtml){ - if(!tagid || !$(tagid)) return; - if(nohtml) { help = help.escapeHTML(); } - if($(tagid)) { $(tagid).value = help; } - else if($('helpb')) { - $('helpb').value = help; - } - }, - - //FIXME - The new BB help system - help: function(help, tagid, nohtml){ - if(nohtml) { help = help.escapeHTML(); } - if(!tagid || !$(tagid)) return; - if(help) { - var wrapper = new Element('div', {'style': 'position: relative'}).update(help); - $(tagid).update(wrapper).fxToggle(); - } else { - $(tagid).update('').fxToggle(); - } - } -}; - -//Iframe Shim - from PrototypeUI -e107Utils.IframeShim = Class.create({ - initialize: function() { - this.element = new Element('iframe',{ - style: 'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none;', - src: 'javascript:void(0);', - frameborder: 0 - }); - $(document.body).insert(this.element); - }, - hide: function() { - this.element.hide(); - return this; - }, - show: function() { - this.element.show(); - return this; - }, - positionUnder: function(element) { - var element = $(element), - offset = element.cumulativeOffset(), - dimensions = element.getDimensions(), - style = { - left: offset[0] + 'px', - top: offset[1] + 'px', - width: dimensions.width + 'px', - height: dimensions.height + 'px', - zIndex: element.getStyle('zIndex') - 1 - }; - - this.element.setStyle(style).show(); - return this; - }, - setBounds: function(bounds) { - for(prop in bounds) - bounds[prop] += 'px'; - this.element.setStyle(bounds); - return this; - }, - setSize: function(width, height) { - this.element.style.width = parseInt(width) + 'px'; - this.element.style.height = parseInt(height) + 'px'; - return this; - }, - setPosition: function(top, left) { - this.element.style.top = parseInt(top) + 'px'; - this.element.style.left = parseInt(left) + 'px'; - return this; - }, - destroy: function() { - if(this.element) - this.element.remove(); - return this; - } -}); - -// ------------------------------------------------------------------- - -/** - * Show Page/Element loading status (during AJAX call) - * - * @class e107Utils.LoadingStatus - * @widget: core-loading - * @version 1.0 - * @author SecretR - * @extends e107WidgetAbstract - * @template: 'template' - * @cache_string: 'instance-loading-status' - */ - - -('Loading') .addModLan('core-loading', 'alt'); -('Loading, please wait...').addModLan('core-loading', 'text'); - -/** - * Global Prefs - */ -e107Base.setPrefs('core-loading', { - opacity: 0.8 - //TODO - more to come! -}); - -e107Utils.LoadingStatus = Class.create(e107WidgetAbstract, { - - initialize: function(dest_element, options) { - this.initMod('core-loading', options); - this.cacheStr = 'instance-loading-status'; - - this.loading_mask_loader = false; - this.loading_mask = $('loading-mask'); - this.iframeShim = this.getModCache(this.cacheStr + '-iframe'); - this.destElement = ($(dest_element) || $$('body')[0]); - - this.re_center = this.recenter.bindAsEventListener(this); - - this.create(); - if(this.options.show_auto) - this.show(); - }, - - startObserving: function() { - Event.observe(window,"resize", this.re_center); - if(e107API.Browser.IE && e107API.Browser.IE <= 7) - Event.observe(window,"scroll", this.re_center); - return this; - }, - - stopObserving: function() { - Event.stopObserving(window, "resize", this.re_center); - if(e107API.Browser.IE && e107API.Browser.IE <= 7) - Event.stopObserving(window, "scroll", this.re_center); - return this; - }, - - set_destination: function(dest_element) { - this.destElement = $(dest_element) || $$('body')[0]; - return this; - }, - - create: function() { - if(!this.loading_mask) { - var objBody = $$('body')[0]; - this.loading_mask = this.getModTemplate('template').parseToElement().hide(); - - objBody.insert({ - bottom: this.loading_mask - }); - } - this.loading_mask.setStyle( { 'opacity': this.options.opacity, zIndex: 9000 } ); - this.loading_mask_loader = this.loading_mask.down('#loading-mask-loader'); - this.loading_mask_loader.setStyle( { /*'position': 'fixed', */zIndex: 9100 } ); - //Create iframeShim if required - this.createShim(); - return this; - }, - - show: function () { - if(this.loading_mask.visible()) return; - this.startObserving(); - this.center(); - this.loading_mask.show(); - return this; - }, - - hide: function () { - this.loading_mask.hide(); - this.stopObserving().positionShim(true); - return this; - }, - - center: function() { - //Evil IE6 - if(!this.iecenter()) { - Element.clonePosition(this.loading_mask, this.destElement); - this.fixBody().positionShim(false); - } - return this; - - }, - - recenter: function() { - if(!this.iecenter()) { - Element.clonePosition(this.loading_mask, this.destElement); - this.fixBody().positionShim(false); - } - return this; - }, - - iecenter: function() { - //TODO - actually ie7 should work without this - investigate - if(e107API.Browser.IE && e107API.Browser.IE <= 7) { - //The 'freezing' problem solved (opacity = 1 ?!) - this.loading_mask.show(); - var offset = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; - var destdim = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight; - - if(!this.lmh) this.lmh = this.loading_mask_loader.getHeight(); - var eldim = this.lmh; - var toph = parseInt(destdim/2 - eldim/2 + offset ); - this.loading_mask.setStyle({top: 0, left: 0, 'opacity': 1}); - this.fixBody(true); - this.loading_mask_loader.setStyle( { - 'position': 'absolute', - 'top': toph + 'px', - 'opacity': 1 - }); - - this.positionShim(false); - return true; - } - return false; - }, - - fixBody: function(force) { - if(force || this.destElement.nodeName.toLowerCase() == 'body') { - var ps = e107Helper.getPageSize(); - this.loading_mask.setStyle({ 'width': parseInt(ps[0]) + 'px', 'height': parseInt(ps[1]) + 'px' }); - } - return this; - }, - - createShim: function() { - if(e107API.Browser.IE && e107API.Browser.IE <= 7 && !this.iframeShim) { - this.iframeShim = new e107Utils.IframeShim().hide(); - this.setModCache(this.cacheStr +'-iframe', this.iframeShim); - } - - return this; - }, - - positionShim: function(hide) { - if(!e107API.Browser.IE || e107API.Browser.IE > 6) return this; - if(hide) { - this.iframeShim.hide(); return this; - } - this.iframeShim.positionUnder(this.loading_mask).show(); - return this; - } -}); - -/** - * Register page loading core events - */ -e107Event.register('ajax_loading_start', function(event) { - var loadingObj = e107.getModCache('ajax-loader'); - if(!loadingObj) { - loadingObj = new e107Utils.LoadingStatus(false, { show_auto: false }); - e107.setModCache('ajax-loader', loadingObj); - } - loadingObj.set_destination(event.memo.overlayPage).show(); -}); - -e107Event.register('ajax_loading_end', function(event) { - var loadingObj = e107.getModCache('ajax-loader'); - if(loadingObj) { - window.setTimeout( function(){ loadingObj.hide() }, 200); - } -}); - -/** - * e107Utils.LoadingElement - * based on Protoload by Andreas Kalsch - */ -e107Base.setPrefs('core-loading-element', { - overlayDelay: 50, - opacity: 0.8, - zIndex: 10, - className: 'element-loading-mask', - backgroundImage: '#{e_IMAGE}generic/loading_32.gif' -}); - -e107Utils.LoadingElement = { - startLoading: function(element, options) { - if(!options) options = {}; - Object.extend(options, e107Base.getPrefs('core-loading-element') || {}); - element = $(element); - - var zindex = parseInt(e107.getModPref('zIndex')) + parseInt(options.zIndex); - var cacheStr = 'core-loading-element-' + $(element).identify(); - element._waiting = true; - //can't use element._eloading for storing objects because of IE6 memory leak - var _eloading = e107Base.getCache(cacheStr); - - if (!_eloading) { - _eloading = new Element('div', { 'class': options.className }).setStyle({ - position: 'absolute', - opacity: options.opacity, - zIndex: zindex - //backgroundImage: 'url(' + options.backgroundImage.parsePath() + ')' - }); - - $$('body')[0].insert({ bottom: _eloading }); - var imgcheck = _eloading.getStyle('background-image'); - //console.log(options.backgroundImage.parsePath()); - if(!imgcheck || imgcheck == 'none') //only if not specified by CSS - _eloading.setStyle( {backgroundImage: 'url(' + options.backgroundImage.parsePath() + ')'}); - e107Base.setCache(cacheStr, _eloading); - } - window.setTimeout(( function() { - if (this._waiting) { - Element.clonePosition(_eloading, this); - _eloading.show(); - } - }).bind(element), options.overlayDelay); - - }, - - stopLoading: function(element) { - if (element._waiting) { - element._waiting = false; - var cacheStr = 'core-loading-element-' + $(element).identify(), _eloading = e107Base.getCache(cacheStr); - if($(_eloading)) $(_eloading).hide();//remove it or not? - //e107Base.clearCache(cacheStr); - } - } -}; - -Element.addMethods(e107Utils.LoadingElement); - -/** - * Register element loading core events - */ -e107Event.register('ajax_loading_element_start', function(event) { - var element = $(event.memo.overlayElement); - if(element) element.startLoading(); -}); - -e107Event.register('ajax_loading_element_end', function(event) { - var element = $(event.memo.overlayElement); - if(element) window.setTimeout( function(){ element.stopLoading() }.bind(element), 50); -}); - -// ------------------------------------------------------------------- - -// ###### START DEPRECATED - subject of removal!!! ###### - -//@see e107Helper#toggle, e107Helper#autoToggle -var expandit = function(curobj, hide) { - e107Helper.toggle(curobj, {}); - - if(hide) { //don't use it - will be removed - hide.replace(/[\s]?,[\s]?/, ' ').strip(); - $w(hide).each(function(h) { - if(Object.isElement($(h))) { $(h).hide(); } - }); - } -} - -//Use Prototype JS instead: $(id).update(txt); -var setInner = function(id, txt) { - $(id).update(txt); -} - -//@see e107Helper#confirm TODO @see e107ModalConfirm#confirm -var jsconfirm = function(thetext){ - return e107Helper.confirm(thetext); -} - -//Use Prototype JS instead e.g.: $(tagid).value = str; $(display).hide(); -var insertext = function(str, tagid, display) { - e107Helper.insertText(str, tagid, display); -} - -//Use Prototype JS instead e.g.: $(tagid).focus().value += str; $(display).hide(); -var appendtext = function(str, tagid, display) { - e107Helper.appendText(str, tagid, display); -} - -//TODO - e107Window class, e107Helper#openWindow proxy -var open_window = function(url, wth, hgt) { - if('full' == wth){ - pwindow = window.open(url); - } else { - mywidth = varset(wth, 600); - myheight = varset(wth, 400); - pwindow = window.open(url,'Name', 'top=100,left=100,resizable=yes,width='+mywidth+',height='+myheight+',scrollbars=yes,menubar=yes') - } - pwindow.focus(); -} - -//TODO Window class -var closeWindow = function(form){ - if((window.opener!=null)&&(!window.opener.closed)){ - window.opener.location.reload(); - } - if(window.opener!=null) { - window.close(); - }else{setWinType(form);form.whatAction.value="Close";form.submit();} -} - - -//@see e107Helper#urljump -var urljump = function(url) { - e107Helper.urlJump(url); -} - -//@see e107Helper#imagePreload -var ejs_preload = function(ejs_path, ejs_imageString){ - e107Helper.imagePreload(ejs_path, ejs_imageString) -} - -//Use Prototype JS e.g.: $(cntfield).value = $(field).value.length; -var textCounter = function(field,cntfield) { - cntfield.value = field.value.length; -} - -//Not used anymore - seek & remove -/* -function openwindow() { - opener = window.open("htmlarea/index.php", "popup","top=50,left=100,resizable=no,width=670,height=520,scrollbars=no,menubar=no"); - opener.focus(); -} -*/ - -//@see e107Helper#toggleChecked -var setCheckboxes = function(the_form, do_check, the_cb) { //backward compatibility - e107Helper.toggleChecked(the_form, do_check, 'name^=' + the_cb.gsub(/[\[\]]/, ''), false); -} - -//@see e107Helper.BB#storeCaret -var storeCaret = function(textAr) { - e107Helper.BB.store(textAr); return; -} - -//@see e107Helper.BB#insert -var addtext = function(text, emote) { - e107Helper.BB.insert(text, emote); return; -} - -// Prompt for user input value -var addinput = function(text) { - -// quick fix to prevent JS errors - proper match was done only for latin words - var rep = text.match(/\=([^\]]*)\]/); - var val = rep ? prompt(rep[1]) : prompt('http://'); - - if(!val) - { - return; - } - var newtext = text.replace(rep[1], val); - emote = ''; - e107Helper.BB.insert(newtext, emote); return; -} - -//@see e107Helper.BB#help -var help = function(help,tagid) { - e107Helper.BB.help_old(help, tagid, true); -} - -//Use Prototype JS e.g.: $(object).addClassName(over); $(object).removeClassName(over); -var eover = function(object, over) { - $(object).writeAttribute('class', over); -} - -//@see e107Helper#duplicateHTML -var duplicateHTML = function(copy, paste, baseid) { - e107Helper.duplicateHTML(copy,paste,baseid); -} - -var preview_image = function(src_val,img_path, not_found) { - e107Helper.previewImage(src_val, img_path, not_found) -} - -var externalLinks = function () { - //already event listener -}; -// ###### END DEPRECATED ###### - -// ------------------------------------------------------------------- - -/** - * e107History - * - * Prototype Xtensions http://www.prototypextensions.com/ - */ -var e107History = { - __altered: false, - __currentHash: null, - __previousHash: null, - __iframe: false, - __title: false, - - /** - * init() - * @desc Initialize the hash. Call this method in first - */ - init: function() { - var inst = this; - var hash = location.hash.substring(1); - this.hash = $H(hash.toQueryParams()); - this.__currentHash = hash; - this.__previousHash = hash; - - this.__title = document.title; - - if(e107API.Browser.IE && e107API.Browser.IE < 8) { - document.observe('dom:loaded', function(e) { - if(!$('e107-px-historyframe')) { - e107History.__iframe = new Element('iframe', { - name : 'e107-px-historyframe', - id : 'e107-px-historyframe', - src : '', - width : '0', - height : '0', - style : { - visibility: 'hidden' - } - }); - - document.body.appendChild(e107History.__iframe); - - e107History.setHashOnIframe(inst.hash.toQueryString()); - } - }); - } - }, - - /** - * set( string name, string value ) - * - * @desc Set new value value for parameter name - */ - set: function(name, value) { - this.__previousHash = this.hash.toQueryString(); - this.hash.set(name, value); - this.apply(); - }, - - /** - * get( string $name ) - * - * @desc Get value parameter $name - */ - get: function(name) { - return this.hash.get(name); - }, - - /** - * unset( string $name ) - * - * @desc Unset parameter $name - */ - unset: function(name) { - this.hash.unset(name); - this.apply(); - }, - - /** - * update() - * - * @desc Updates this.hash with the current hash - */ - update: function() { - this.__previousHash = this.hash.toQueryString(); - var hash = window.location.hash.substring(1); - - // If IE, look in the iframe if the hash is updated - if(e107API.Browser.IE && e107API.Browser.IE < 8 && this.__iframe) { - var hashInFrame = this.getHashOnIframe(); - - if(hashInFrame != hash) { - hash = hashInFrame; - } - } - - this.hash = $H(hash.toQueryParams()); - this.__currentHash = hash; - }, - - /** - * apply() - * - * @desc Apply this.hash to location.hash - */ - apply: function() { - var newHash = this.hash.toQueryString(); - - // set new hash - window.location.hash = newHash; - - // If IE, apply new hash to frame for history - if(e107API.Browser.IE && e107API.Browser.IE < 8 && this.__iframe) { - if(this.__currentHash != newHash) - { - this.setHashOnIframe(newHash); - } - else if(newHash != this.getHashOnIframe()) - { - this.setHashOnIframe(newHash); - } - } - }, - - /** - * isAltered() - * - * @desc Return true if current hash is different of previous hash. - * this.__altered allows to force the dispatch. - */ - isAltered: function() { - if(this.__altered) { - return true; - } - this.__altered = false; - - return (e107History.__currentHash != e107History.__previousHash); - }, - - /** - * setHashOnIframe() - * - * @use For IE compatibility - * @desc Set hash value on iframe - */ - setHashOnIframe: function(hash) { - try { - var doc = e107History.__iframe.contentWindow.document; - doc.open(); - doc.write('' + hash + ''); - doc.close(); - } catch(e) {} - }, - - /** - * getHashOnIframe() - * - * @use For IE compatibility - * @desc Get hash value on iframe - */ - getHashOnIframe: function() { - var doc = this.__iframe.contentWindow.document; - if (doc && doc.body.id == 'history') { - return doc.body.innerText; - } else { - return this.hash.toQueryString(); - } - }, - - /** - * setTitle() - * - * @desc Set a new title for window - */ - setTitle: function(title) { - if(document.title) { - document.title = title; - } - }, - - /** - * getTitle() - * - * @desc Return current window title - */ - getTitle: function() { - return this.__title; - } -}; - -e107History.init(); - -/** - * History.Registry - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Used to register a callback for a parameter - */ -e107History.Registry = -{ - /** - * @desc Hash - */ - hash : new Hash(), - - /** - * set( string $config ) - * - * @desc Set new value historyId for parameter config - */ - set: function(config) { - - if(typeof(config) != 'object') { - throw('e107History.Registry.set : config must be an javascript object'); - } - - // id - if(!config.id || !Object.isString(config.id)) { - throw('e107History.Registry.set : config.id must be an string'); - } - - // onChange - if(!config.onStateChange || !Object.isFunction(config.onStateChange)) { - throw('e107History.Registry.set : config.onStateChange ' - + 'must be an javascript callback function'); - } - - // defaultValue - if(!config.defaultValue || !Object.isString(config.defaultValue)) { - config.defaultValue = ''; - } - - this.hash.set(config.id, config); - }, - - /** - * flat version of set method - * - * @desc Register callback function for historyId - */ - register: function(historyId, callback, defval) { - var config = { - id: historyId, - onStateChange: callback, - defaultValue: defval - }; - this.set(config); - }, - - /** - * get( string $id ) - * - * @desc Get value parameter $id - */ - get: function(id) { - return this.hash.get(id); - }, - - /** - * unset( string $id ) - * - * @desc Unset parameter $id - */ - unset: function(id) { - this.hash.unset(id); - } -} - -/** - * History.Observer - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Used to perform actions defined in the registry, - * according to the hash of the url. - */ -e107History.Observer = { - - /** - * @desc Interval delay in seconds - */ - delay : 0.4, - - /** - * @desc Interval timer instance - */ - interval : null, - - /** - * @desc If interval is started : true, else false - */ - started : false, - - /** - * start() - * - * @desc Start a interval timer - */ - start: function() { - if(this.started) return; - this.interval = new PeriodicalExecuter(e107History.Observer.dispatch, this.delay); - this.started = true; - }, - - /** - * stop() - * - * @desc Stop the interval timer - */ - stop: function() { - if(!this.started) return; - this.interval.stop(); - this.started = false; - }, - - /** - * dispatch() - * - * @desc This method is called each time interval, - * the dispatch of the registry is implemented only if - * the hash has been amended (optimisiation) - */ - dispatch: function() { - // Update the hash - e107History.update(); - - // Dispatch only if location.hash has been altered - if(e107History.isAltered()) { - var oldstate = String(e107History.__previousHash).toQueryParams(); - //FIXME - possible bugs/performance issues here - investigate further - e107History.hash.each(function(pair) { - var registry = e107History.Registry.get(pair.key); - //Bugfix - notify callbacks only when required - if(registry && (e107History.__altered === pair.key || oldstate[pair.key] !== pair.value)) { - registry.onStateChange.bind(e107History)( pair.value ); - } - }); - } - } -}; - -// ------------------------------------------------------------------- - -/* - * AJAX related - */ -var e107Ajax = {}; - -/** - * Ajax.History - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Provides core methods to easily manage browsing history - * with Ajax.History.Request / Updater. - */ -e107Ajax.History = { - - /** - * @desc Allowed Ajax.History prefix (for validation) - */ - types : ['Request', 'Updater'], - - cacheString: 'ajax-history-', - - /** - * observe( string type, string id, string url, object options ) - * - * @desc This method helps manage the browsing history - */ - observe: function(type, id, url, options) { - - var getter = e107.getModCache(this.cacheString + id); - var currentVersion = 0; - var output = false; - - // Type validation - if(this.types.indexOf(type) == -1) { - throw('e107Ajax.History.observer: type ' + type + ' is invalid !'); - } - - // Registry management - if(!getter) { - currentVersion = (options.history.state) ? options.history.state : 0; - var hash = new Hash(); - hash.set(currentVersion, options); - e107.setModCache(this.cacheString + id, hash); - //console.log(id, e107.getModCache(this.cacheString + id)); - } else { - currentVersion = (options.history.state) - ? options.history.state : this.getCurrentVersion(id); - getter.set(currentVersion, options); - } - - // add handler on registry - this.addCallback(type, id); - - return currentVersion; - }, - - /** - * addCallback( string type, string id ) - * - * @desc This method adds a state for request on History.Registry - */ - addCallback: function(type, id) { - - e107History.Observer.start(); - // Set history altered state to true : force dispatch - e107History.__altered = id; - - // Return void if registry is already set - if(!Object.isUndefined(e107History.Registry.get(id))) return; - - // Add this id to history registry - var cacheS = this.cacheString + id; - e107History.Registry.set({ - id: id, - onStateChange: function(state) { - var options = e107.getModCache(cacheS).get(state.toString()); - var request = null; - - if(Object.isUndefined(options)) return; - - if(options.history.cache == true && options.history.__request) { - new Ajax.Cache(options.history.__request); - } else { - - //make a request - if(type == 'Request') { - request = new Ajax.Request(options.history.__url, options); - } else if(type == 'Updater') { - request = new Ajax.Updater(options.container, options.history.__url, options); - } - options.history.__request = request; - } - - e107History.__altered = false; - - if (Object.isFunction(options.history.onStateChange)) { - options.history.onStateChange(state); - } - } - }); - }, - - /** - * getCurrentVersion( string id ) - * - * @desc This method returns the current state in history - * (if the state is not defined) - */ - getCurrentVersion: function(id) { - var getter = e107.getModCache(this.cacheString + id); - return Object.isUndefined(getter) ? 0 : getter.keys().length; - } -}; - -e107Ajax.ObjectMap = { - id : null, // set custom history value for this instance - state : false, // set custom state value for this instance - cache : false, // enable/disable history cache - onStateChange : null, // handler called on history change - __url : null, - __request : null -}; - -/** - * Ajax.Cache - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Ajax.Cache can "simulate" an Ajax request from an - * Ajax.Request/Updater made beforehand. - */ -Ajax.Cache = Class.create(Ajax.Base, { - _complete: false, - initialize: function($super, request) { - $super(request.options); - request._complete = false; - this.transport = request.transport; - this.request(request.url); - return this; - }, - - request: function(url) { - this.url = url; - this.method = this.options.method; - var params = Object.clone(this.options.parameters); - - try { - var response = new Ajax.Response(this); - - if (this.options.onCreate) this.options.onCreate(response); - Ajax.Responders.dispatch('onCreate', this, response); - - if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); - - this.onStateChange(); - } - catch (e) { - this.dispatchException(e); - } - } -}); - -Object.extend(Ajax.Cache.prototype, { - respondToReadyState : Ajax.Request.prototype.respondToReadyState, - onStateChange : Ajax.Request.prototype.onStateChange, - success : Ajax.Request.prototype.getStatus, - getStatus : Ajax.Request.prototype.getStatus, - isSameOrigin : Ajax.Request.prototype.isSameOrigin, - getHeader : Ajax.Request.prototype.getHeader, - evalResponse : Ajax.Request.prototype.evalResponse, - dispatchException : Ajax.Request.prototype.dispatchException -}); - -/** - * Ajax.Request Extended - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Just a small change: now Ajax.Request return self scope. - * It is required by Ajax.Cache - */ -Ajax.Request = Class.create(Ajax.Request, { - initialize: function($super, url, options) { - $super(url, options); - return this; - } -}); - -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -/** - * Ajax.Updater Extended - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc Just a small change: now Ajax.Updater return self scope - * It is required by Ajax.Cache - */ -Ajax.Updater = Class.create(Ajax.Updater, { - initialize: function($super, container, url, options) { - $super(container, url, options); - return this; - } -}); - - - -//Register Ajax Responder -(function() { - - var e_responder = { - onCreate: function(request) { - if(request.options['updateElement']) { - request.options.element = request.options.updateElement; - e107Event.trigger('ajax_update_before', request.options, request.options.updateElement); - } - if(request.options['overlayPage']){ - e107Event.trigger('ajax_loading_start', request.options, request.options.overlayPage); - } else if(request.options['overlayElement']) { - e107Event.trigger('ajax_loading_element_start', request.options, request.options.overlayElement); - } - }, - - onComplete: function(request) { - /*Ajax.activeRequestCount == 0 && */ - if(request.options['overlayPage']) { - e107Event.trigger('ajax_loading_end', request.options, request.options.overlayPage); - } else if(request.options['overlayElement']) { - e107Event.trigger('ajax_loading_element_end', request.options, request.options.overlayElement); - } - - if(request.options['updateElement']) { - request.options.element = request.options.updateElement; - e107Event.trigger('ajax_update_after', request.options, request.options.updateElement); - } - }, - - onException: function(request, e) { - //TODO handle exceptions - //alert('e107Ajax Exception: ' + e); - if(window.console) window.console.log('e107Ajax Exception: ' + e); - } - } - - Ajax.Responders.register(e_responder); -})(); - -/** - * e107AjaxAbstract - */ -var e107AjaxAbstract = Class.create ({ - _processResponse: function(transport) { - if(null !== transport.responseXML) { - this._handleXMLResponse(transport.responseXML); - } else if(null !== transport.responseJSON) { - this._handleJSONResponse(transport.responseJSON); - } else { - this._handleTextResponse(transport.responseText); - } - - }, - - _handleXMLResponse: function (response) { - var xfields = $A(response.getElementsByTagName('e107response')[0].childNodes); - var parsed = {}; - xfields.each( function(el) { - if (el.nodeType == 1 && el.nodeName == 'e107action' && el.getAttribute('name') && el.childNodes) { - - var action = el.getAttribute('name'), items = el.childNodes; - if(!varsettrue(parsed[action])) { - parsed[action] = {}; - } - - for(var i=0, len=items.length; i show elements with id id1,id2 and id3 - * {'writeAttribute,rel,external': 'id1,id2,id3'} -> invoke writeAttribute('rel', 'external') on elements with id id1,id2 and id3 - * {'disabled,true': 'button-el,other-button-el'} -> set disabled property of elements with id button-el,other-button-el to true - * - */ - _processResponseElementInvokeById: function(response) { - //response.key is comma separated list representing method -> args to be invoked on every element - Object.keys(response).each(function(key) { - var tmp = $A(key.split(',')), - method = tmp[0], - args = tmp.slice(1); - - //search for boolean type - $A(args).each( function(arg, i) { - switch(arg) { - case 'false': args[i] = false; break; - case 'true': args[i] = true; break; - case 'null': args[i] = null; break; - } - }); - //response.value is comma separated element id list - $A(response[key].split(',')).each( function(el) { - el = el ? $(el.strip()) : null; - if(!el) return; - - if(Object.isFunction(el[method])) - el[method].apply(el, args); - else if(typeof el[method] !== 'undefined') { - //XXX - should we allow adding values to undefined yet properties? At this time not allowed - el[method] = varset(args[0], null); - } - }); - }); - }, - - /** - * Update element by type - */ - _updateElement: function(el, data) { - el = $(el); if(!el) return; - var type = el.nodeName.toLowerCase(), itype = el.type; - if(type == 'input' || type == 'textarea') { - if(itype) itype = itype.toLowerCase(); - switch (itype) { - case 'checkbox': - case 'radio': - el.checked = (el.value == data); - break; - default: - el.value = data.unescapeHTML(); //browsers doesn't unescape entities on JS update, why?! - break; - } - - } else if(type == 'select') { - if(el.options) { - var opt = $A(el.options).find( function(op, ind) { - return op.value == data; - }); - if(opt) - el.selectedIndex = opt.index; - } - } else if(type == 'img') { - el.writeAttribute('src', data).show(); //show if hidden - }else if(el.nodeType == 1) { - el.update(data); - } - } -}); - -// ------------------------------------------------------------------- - -/** - * e107Ajax.Request - * Prototype Xtensions http://www.prototypextensions.com/ - * - * @desc @desc e107Ajax.Update wrapper, used to execute an Ajax.Request by integrating - * the management of browsing history - */ -e107Ajax.Request = Class.create({ - initialize: function(url, options) { - - this.options = {}; - Object.extend(this.options, options || {}); - if(!this.options['parameters']) - this.options['parameters'] = { 'ajax_used': 1 } - else if(!this.options.parameters['ajax_used']) - this.options['parameters']['ajax_used'] = 1; - - // only if required - if(this.options.history) { - var tmpOpt = Object.clone(e107Ajax.ObjectMap); - Object.extend(tmpOpt, this.options.history); - this.options.history = tmpOpt; - this.options.history.__url = url; - - // History id - if(Object.isUndefined(options.history.id)) - throw('e107Ajax.Request error : you must define historyId'); - - var id = this.options.history.id; - - // Enable history observer - var version = e107Ajax.History.observe('Request', id, url, this.options); - - // Set current version value for container - e107History.set(id, version); - - } else { - return new Ajax.Request(url, this.options); - } - } -}); - -/** - * e107Ajax.Updater - * - * @desc e107Ajax.Updater wrapper, used to execute an Ajax.Updater by integrating - * the management of browsing history - */ -e107Ajax.Updater = Class.create({ - initialize: function(container, url, options) { - - this.options = {}; - - Object.extend(this.options, options || {}); - if(!this.options['parameters']) - this.options['parameters'] = { 'ajax_used': 1 } - else if(!this.options.parameters['ajax_used']) - this.options['parameters']['ajax_used'] = 1; - - //required for ajax_update event trigger - this.options.updateElement = container; - - // only if required - if(this.options.history) { - var tmpOpt = Object.clone(e107Ajax.ObjectMap); - Object.extend(tmpOpt, this.options.history); - this.options.history = tmpOpt; - this.options.history.__url = url; - - // History id - if(Object.isUndefined(options.history.id)) { - var id = (Object.isString(container)) ? container : container.identify(); - this.options.history.id = id; - } else { - var id = this.options.history.id; - } - // Add container to this.options - this.options.container = container; - - // Enable history observer - var version = e107Ajax.History.observe('Updater', id, url, this.options); - - // Set current version value for container - e107History.set(id, version); - - } else { - return new Ajax.Updater(container, url, this.options); - } - } -}); - -Object.extend(e107Ajax, { - - /** - * Ajax Submit Form method - * - * @descr e107 analog to Prototpye native Form.request method - */ - submitForm: function(form, container, options, handler) { - var parm = $(form).serialize(true), - opt = Object.clone(options || {}), - url = !handler ? $(form).readAttribute('action') : String(handler).parsePath(); - - if(!opt.parameters) opt.parameters = {}; - Object.extend(opt.parameters, parm || {}); - if ($(form).hasAttribute('method') && !opt.method) opt.method = $(form).method; - if(!opt.method) opt.method = 'post'; - - if(container) - return new e107Ajax.Updater(container, url, opt); - - return new e107Ajax.Request(url, opt); - }, - - /** - * Ajax Submit Form method and auto-replace SC method - */ - submitFormSC: function(form, sc, scfile, container) { - var handler = ('#{e_FILE}e_ajax.php'), parm = { 'ajax_sc': sc, 'ajax_scfile': scfile }; - return this.submitForm(form, varsettrue(container, sc), { parameters: parm, overlayElement: varsettrue(container, sc) }, handler); - }, - - toggleUpdate: function(toggle, container, url, cacheid, options) { - container = $(container); - toggle = $(toggle); - opt = Object.clone(options || {}); - opt.method = 'post'; - - if(!toggle) return; - - if(!toggle.visible()) - { - - if(cacheid && $(cacheid)) return toggle.fxToggle(); - - opt.onComplete = function() { toggle.fxToggle() }; - if(url.startsWith('sc:')) - { - return e107Ajax.scUpdate(url.substring(3), container, opt); - } - return new e107Ajax.Updater(container, url, opt); - } - - return toggle.fxToggle(); - }, - - scUpdate: function(sc, container, options) { - var handler = ('#{e_FILE}e_ajax.php').parsePath(), parm = { 'ajax_sc': sc }; - opt = Object.clone(options || {}); - opt.method = 'post'; - if(!opt.parameters) opt.parameters = {}; - Object.extend(opt.parameters, parm || {}); - return new e107Ajax.Updater(container, handler, opt); - } -}); - -/** - * e107Ajax.fillForm - * - * @desc - */ -e107Ajax.fillForm = Class.create(e107AjaxAbstract, { - - initialize: function(form, overlay_dest, options) { - //TODO - options - this.options = Object.extend({ - start: true - }, options || {}); - - this.form = $(form); - if(!this.form) return; - - if(this.options['start']) - this.start(overlay_dest); - }, - - start: function(overlay_dest) { - e107Event.trigger("ajax_fillForm_start", {form: this.form}); - var destEl = $(overlay_dest) || false; - var C = this; - - //Ajax history is NOT supported (and shouldn't be) - var options = { - overlayPage: destEl, - - history: false, - - onSuccess: function(transport) { - try { - this._processResponse(transport); - } catch(e) { - var err_obj = { message: 'Callback Error!', extended: e, code: -1 } - e107Event.trigger("ajax_fillForm_error", {form: this.form, error: err_obj}); - } - }.bind(C), - - onFailure: function(transport) { - //We don't use transport.statusText only because of Safari!!! - var err = transport.getHeader('e107ErrorMessage') || ''; - //TODO - move error messages to the ajax responder object, convert it to an 'error' object (message, extended, code) - //Add Ajax option e.g. printErrors (true|false) - var err_obj = { message: err, extended: transport.responseText, code: transport.status } - e107Event.trigger("ajax_fillForm_error", {form: this.form, error: err_obj }); - }.bind(C) - } - Object.extend(options, this.options.request || {}); //update - allow passing request options - - this.form.submitForm(null, options, this.options.handler); - }, - - _processResponseFillForm: function(response) { - if(!response || !this.form) return; - var C = this, left_response = Object.clone(response); - this.form.getElements().each(function(el) { - var elid = el.identify(), elname = el.readAttribute('name'), data, elnameid = String(elname).gsub(/[\[\]\_]/, '-'); - - if(isset(response[elname])) { - data = response[elname]; - if(left_response[elname]) delete left_response[elname]; - } else if(isset(response[elnameid])) { - data = response[elnameid]; - if(left_response[elnameid]) delete left_response[elnameid]; - } else if(isset(response[elid])) { - data = response[elid]; - if(left_response[elid]) delete left_response[elid]; - } else { - return; - } - this._updateElement(el, data); - }.bind(C)); - - if(left_response) { //update non-form elements (by id) - Object.keys(left_response).each( function(el) { - this._updateElement(el, left_response[el]); - }.bind(C)); - } - - e107Event.trigger("ajax_fillForm_success", {form: this.form}); - } - -}); - -Element.addMethods('FORM', { - - submitForm: e107Ajax.submitForm.bind(e107Ajax), - - submitFormSC: e107Ajax.submitFormSC.bind(e107Ajax), - - fillForm: function(form, overlay_element, options) { - new e107Ajax.fillForm(form, overlay_element, options); - } -}); - -// ------------------------------------------------------------------- - -//DEPRECATED!!! Use e107Ajax.submitFormSC() || form.submitFormSC() instead -function replaceSC(sc, form, container, scfile) { - $(form).submitFormSC(sc, scfile, container); -} - -//DEPRECATED!!! Use e107Ajax.submitForm() || form.submitForm() instead -function sendInfo(handler, container, form) { - if(form) - $(form).submitForm(container, null, handler); - else - new e107Ajax.Updater(container, handler); -} - -// ------------------------------------------------------------------- - -/* - * Core Auto-load - */ -$w('autoExternalLinks autoNoHistory autoHide toggleObserver toggleManyObserver scrollToObserver executeAutoSubmit').each( function(f) { - // e107.runOnLoad(e107Helper[f], null, true); -}); diff --git a/e107_web/lib/bootstrap/.bower.json b/e107_web/lib/bootstrap/3.3.7/.bower.json similarity index 100% rename from e107_web/lib/bootstrap/.bower.json rename to e107_web/lib/bootstrap/3.3.7/.bower.json diff --git a/e107_web/lib/bootstrap/CHANGELOG.md b/e107_web/lib/bootstrap/3.3.7/CHANGELOG.md similarity index 100% rename from e107_web/lib/bootstrap/CHANGELOG.md rename to e107_web/lib/bootstrap/3.3.7/CHANGELOG.md diff --git a/e107_web/lib/bootstrap/Gemfile b/e107_web/lib/bootstrap/3.3.7/Gemfile similarity index 100% rename from e107_web/lib/bootstrap/Gemfile rename to e107_web/lib/bootstrap/3.3.7/Gemfile diff --git a/e107_web/lib/bootstrap/Gemfile.lock b/e107_web/lib/bootstrap/3.3.7/Gemfile.lock similarity index 100% rename from e107_web/lib/bootstrap/Gemfile.lock rename to e107_web/lib/bootstrap/3.3.7/Gemfile.lock diff --git a/e107_web/lib/bootstrap/Gruntfile.js b/e107_web/lib/bootstrap/3.3.7/Gruntfile.js similarity index 100% rename from e107_web/lib/bootstrap/Gruntfile.js rename to e107_web/lib/bootstrap/3.3.7/Gruntfile.js diff --git a/e107_web/lib/bootstrap/ISSUE_TEMPLATE.md b/e107_web/lib/bootstrap/3.3.7/ISSUE_TEMPLATE.md similarity index 100% rename from e107_web/lib/bootstrap/ISSUE_TEMPLATE.md rename to e107_web/lib/bootstrap/3.3.7/ISSUE_TEMPLATE.md diff --git a/e107_web/lib/bootstrap/LICENSE b/e107_web/lib/bootstrap/3.3.7/LICENSE similarity index 100% rename from e107_web/lib/bootstrap/LICENSE rename to e107_web/lib/bootstrap/3.3.7/LICENSE diff --git a/e107_web/lib/bootstrap/README.md b/e107_web/lib/bootstrap/3.3.7/README.md similarity index 100% rename from e107_web/lib/bootstrap/README.md rename to e107_web/lib/bootstrap/3.3.7/README.md diff --git a/e107_web/lib/bootstrap/bower.json b/e107_web/lib/bootstrap/3.3.7/bower.json similarity index 100% rename from e107_web/lib/bootstrap/bower.json rename to e107_web/lib/bootstrap/3.3.7/bower.json diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap-theme.css b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.css similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap-theme.css rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.css diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap-theme.css.map b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.css.map similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.css.map diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap-theme.min.css b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.min.css similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap-theme.min.css rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.min.css diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap-theme.min.css.map b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.min.css.map similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap-theme.min.css.map rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap-theme.min.css.map diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap.css b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.css similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap.css rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.css diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap.css.map b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.css.map similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap.css.map rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.css.map diff --git a/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css new file mode 100644 index 000000000..678732e46 --- /dev/null +++ b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')} .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .glyphicon-asterisk:before{content:"\002a"} .glyphicon-plus:before{content:"\002b"} .glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"} .glyphicon-minus:before{content:"\2212"} .glyphicon-cloud:before{content:"\2601"} .glyphicon-envelope:before{content:"\2709"} .glyphicon-pencil:before{content:"\270f"} .glyphicon-glass:before{content:"\e001"} .glyphicon-music:before{content:"\e002"} .glyphicon-search:before{content:"\e003"} .glyphicon-heart:before{content:"\e005"} .glyphicon-star:before{content:"\e006"} .glyphicon-star-empty:before{content:"\e007"} .glyphicon-user:before{content:"\e008"} .glyphicon-film:before{content:"\e009"} .glyphicon-th-large:before{content:"\e010"} .glyphicon-th:before{content:"\e011"} .glyphicon-th-list:before{content:"\e012"} .glyphicon-ok:before{content:"\e013"} .glyphicon-remove:before{content:"\e014"} .glyphicon-zoom-in:before{content:"\e015"} .glyphicon-zoom-out:before{content:"\e016"} .glyphicon-off:before{content:"\e017"} .glyphicon-signal:before{content:"\e018"} .glyphicon-cog:before{content:"\e019"} .glyphicon-trash:before{content:"\e020"} .glyphicon-home:before{content:"\e021"} .glyphicon-file:before{content:"\e022"} .glyphicon-time:before{content:"\e023"} .glyphicon-road:before{content:"\e024"} .glyphicon-download-alt:before{content:"\e025"} .glyphicon-download:before{content:"\e026"} .glyphicon-upload:before{content:"\e027"} .glyphicon-inbox:before{content:"\e028"} .glyphicon-play-circle:before{content:"\e029"} .glyphicon-repeat:before{content:"\e030"} .glyphicon-refresh:before{content:"\e031"} .glyphicon-list-alt:before{content:"\e032"} .glyphicon-lock:before{content:"\e033"} .glyphicon-flag:before{content:"\e034"} .glyphicon-headphones:before{content:"\e035"} .glyphicon-volume-off:before{content:"\e036"} .glyphicon-volume-down:before{content:"\e037"} .glyphicon-volume-up:before{content:"\e038"} .glyphicon-qrcode:before{content:"\e039"} .glyphicon-barcode:before{content:"\e040"} .glyphicon-tag:before{content:"\e041"} .glyphicon-tags:before{content:"\e042"} .glyphicon-book:before{content:"\e043"} .glyphicon-bookmark:before{content:"\e044"} .glyphicon-print:before{content:"\e045"} .glyphicon-camera:before{content:"\e046"} .glyphicon-font:before{content:"\e047"} .glyphicon-bold:before{content:"\e048"} .glyphicon-italic:before{content:"\e049"} .glyphicon-text-height:before{content:"\e050"} .glyphicon-text-width:before{content:"\e051"} .glyphicon-align-left:before{content:"\e052"} .glyphicon-align-center:before{content:"\e053"} .glyphicon-align-right:before{content:"\e054"} .glyphicon-align-justify:before{content:"\e055"} .glyphicon-list:before{content:"\e056"} .glyphicon-indent-left:before{content:"\e057"} .glyphicon-indent-right:before{content:"\e058"} .glyphicon-facetime-video:before{content:"\e059"} .glyphicon-picture:before{content:"\e060"} .glyphicon-map-marker:before{content:"\e062"} .glyphicon-adjust:before{content:"\e063"} .glyphicon-tint:before{content:"\e064"} .glyphicon-edit:before{content:"\e065"} .glyphicon-share:before{content:"\e066"} .glyphicon-check:before{content:"\e067"} .glyphicon-move:before{content:"\e068"} .glyphicon-step-backward:before{content:"\e069"} .glyphicon-fast-backward:before{content:"\e070"} .glyphicon-backward:before{content:"\e071"} .glyphicon-play:before{content:"\e072"} .glyphicon-pause:before{content:"\e073"} .glyphicon-stop:before{content:"\e074"} .glyphicon-forward:before{content:"\e075"} .glyphicon-fast-forward:before{content:"\e076"} .glyphicon-step-forward:before{content:"\e077"} .glyphicon-eject:before{content:"\e078"} .glyphicon-chevron-left:before{content:"\e079"} .glyphicon-chevron-right:before{content:"\e080"} .glyphicon-plus-sign:before{content:"\e081"} .glyphicon-minus-sign:before{content:"\e082"} .glyphicon-remove-sign:before{content:"\e083"} .glyphicon-ok-sign:before{content:"\e084"} .glyphicon-question-sign:before{content:"\e085"} .glyphicon-info-sign:before{content:"\e086"} .glyphicon-screenshot:before{content:"\e087"} .glyphicon-remove-circle:before{content:"\e088"} .glyphicon-ok-circle:before{content:"\e089"} .glyphicon-ban-circle:before{content:"\e090"} .glyphicon-arrow-left:before{content:"\e091"} .glyphicon-arrow-right:before{content:"\e092"} .glyphicon-arrow-up:before{content:"\e093"} .glyphicon-arrow-down:before{content:"\e094"} .glyphicon-share-alt:before{content:"\e095"} .glyphicon-resize-full:before{content:"\e096"} .glyphicon-resize-small:before{content:"\e097"} .glyphicon-exclamation-sign:before{content:"\e101"} .glyphicon-gift:before{content:"\e102"} .glyphicon-leaf:before{content:"\e103"} .glyphicon-fire:before{content:"\e104"} .glyphicon-eye-open:before{content:"\e105"} .glyphicon-eye-close:before{content:"\e106"} .glyphicon-warning-sign:before{content:"\e107"} .glyphicon-plane:before{content:"\e108"} .glyphicon-calendar:before{content:"\e109"} .glyphicon-random:before{content:"\e110"} .glyphicon-comment:before{content:"\e111"} .glyphicon-magnet:before{content:"\e112"} .glyphicon-chevron-up:before{content:"\e113"} .glyphicon-chevron-down:before{content:"\e114"} .glyphicon-retweet:before{content:"\e115"} .glyphicon-shopping-cart:before{content:"\e116"} .glyphicon-folder-close:before{content:"\e117"} .glyphicon-folder-open:before{content:"\e118"} .glyphicon-resize-vertical:before{content:"\e119"} .glyphicon-resize-horizontal:before{content:"\e120"} .glyphicon-hdd:before{content:"\e121"} .glyphicon-bullhorn:before{content:"\e122"} .glyphicon-bell:before{content:"\e123"} .glyphicon-certificate:before{content:"\e124"} .glyphicon-thumbs-up:before{content:"\e125"} .glyphicon-thumbs-down:before{content:"\e126"} .glyphicon-hand-right:before{content:"\e127"} .glyphicon-hand-left:before{content:"\e128"} .glyphicon-hand-up:before{content:"\e129"} .glyphicon-hand-down:before{content:"\e130"} .glyphicon-circle-arrow-right:before{content:"\e131"} .glyphicon-circle-arrow-left:before{content:"\e132"} .glyphicon-circle-arrow-up:before{content:"\e133"} .glyphicon-circle-arrow-down:before{content:"\e134"} .glyphicon-globe:before{content:"\e135"} .glyphicon-wrench:before{content:"\e136"} .glyphicon-tasks:before{content:"\e137"} .glyphicon-filter:before{content:"\e138"} .glyphicon-briefcase:before{content:"\e139"} .glyphicon-fullscreen:before{content:"\e140"} .glyphicon-dashboard:before{content:"\e141"} .glyphicon-paperclip:before{content:"\e142"} .glyphicon-heart-empty:before{content:"\e143"} .glyphicon-link:before{content:"\e144"} .glyphicon-phone:before{content:"\e145"} .glyphicon-pushpin:before{content:"\e146"} .glyphicon-usd:before{content:"\e148"} .glyphicon-gbp:before{content:"\e149"} .glyphicon-sort:before{content:"\e150"} .glyphicon-sort-by-alphabet:before{content:"\e151"} .glyphicon-sort-by-alphabet-alt:before{content:"\e152"} .glyphicon-sort-by-order:before{content:"\e153"} .glyphicon-sort-by-order-alt:before{content:"\e154"} .glyphicon-sort-by-attributes:before{content:"\e155"} .glyphicon-sort-by-attributes-alt:before{content:"\e156"} .glyphicon-unchecked:before{content:"\e157"} .glyphicon-expand:before{content:"\e158"} .glyphicon-collapse-down:before{content:"\e159"} .glyphicon-collapse-up:before{content:"\e160"} .glyphicon-log-in:before{content:"\e161"} .glyphicon-flash:before{content:"\e162"} .glyphicon-log-out:before{content:"\e163"} .glyphicon-new-window:before{content:"\e164"} .glyphicon-record:before{content:"\e165"} .glyphicon-save:before{content:"\e166"} .glyphicon-open:before{content:"\e167"} .glyphicon-saved:before{content:"\e168"} .glyphicon-import:before{content:"\e169"} .glyphicon-export:before{content:"\e170"} .glyphicon-send:before{content:"\e171"} .glyphicon-floppy-disk:before{content:"\e172"} .glyphicon-floppy-saved:before{content:"\e173"} .glyphicon-floppy-remove:before{content:"\e174"} .glyphicon-floppy-save:before{content:"\e175"} .glyphicon-floppy-open:before{content:"\e176"} .glyphicon-credit-card:before{content:"\e177"} .glyphicon-transfer:before{content:"\e178"} .glyphicon-cutlery:before{content:"\e179"} .glyphicon-header:before{content:"\e180"} .glyphicon-compressed:before{content:"\e181"} .glyphicon-earphone:before{content:"\e182"} .glyphicon-phone-alt:before{content:"\e183"} .glyphicon-tower:before{content:"\e184"} .glyphicon-stats:before{content:"\e185"} .glyphicon-sd-video:before{content:"\e186"} .glyphicon-hd-video:before{content:"\e187"} .glyphicon-subtitles:before{content:"\e188"} .glyphicon-sound-stereo:before{content:"\e189"} .glyphicon-sound-dolby:before{content:"\e190"} .glyphicon-sound-5-1:before{content:"\e191"} .glyphicon-sound-6-1:before{content:"\e192"} .glyphicon-sound-7-1:before{content:"\e193"} .glyphicon-copyright-mark:before{content:"\e194"} .glyphicon-registration-mark:before{content:"\e195"} .glyphicon-cloud-download:before{content:"\e197"} .glyphicon-cloud-upload:before{content:"\e198"} .glyphicon-tree-conifer:before{content:"\e199"} .glyphicon-tree-deciduous:before{content:"\e200"} .glyphicon-cd:before{content:"\e201"} .glyphicon-save-file:before{content:"\e202"} .glyphicon-open-file:before{content:"\e203"} .glyphicon-level-up:before{content:"\e204"} .glyphicon-copy:before{content:"\e205"} .glyphicon-paste:before{content:"\e206"} .glyphicon-alert:before{content:"\e209"} .glyphicon-equalizer:before{content:"\e210"} .glyphicon-king:before{content:"\e211"} .glyphicon-queen:before{content:"\e212"} .glyphicon-pawn:before{content:"\e213"} .glyphicon-bishop:before{content:"\e214"} .glyphicon-knight:before{content:"\e215"} .glyphicon-baby-formula:before{content:"\e216"} .glyphicon-tent:before{content:"\26fa"} .glyphicon-blackboard:before{content:"\e218"} .glyphicon-bed:before{content:"\e219"} .glyphicon-apple:before{content:"\f8ff"} .glyphicon-erase:before{content:"\e221"} .glyphicon-hourglass:before{content:"\231b"} .glyphicon-lamp:before{content:"\e223"} .glyphicon-duplicate:before{content:"\e224"} .glyphicon-piggy-bank:before{content:"\e225"} .glyphicon-scissors:before{content:"\e226"} .glyphicon-bitcoin:before{content:"\e227"} .glyphicon-btc:before{content:"\e227"} .glyphicon-xbt:before{content:"\e227"} .glyphicon-yen:before{content:"\00a5"} .glyphicon-jpy:before{content:"\00a5"} .glyphicon-ruble:before{content:"\20bd"} .glyphicon-rub:before{content:"\20bd"} .glyphicon-scale:before{content:"\e230"} .glyphicon-ice-lolly:before{content:"\e231"} .glyphicon-ice-lolly-tasted:before{content:"\e232"} .glyphicon-education:before{content:"\e233"} .glyphicon-option-horizontal:before{content:"\e234"} .glyphicon-option-vertical:before{content:"\e235"} .glyphicon-menu-hamburger:before{content:"\e236"} .glyphicon-modal-window:before{content:"\e237"} .glyphicon-oil:before{content:"\e238"} .glyphicon-grain:before{content:"\e239"} .glyphicon-sunglasses:before{content:"\e240"} .glyphicon-text-size:before{content:"\e241"} .glyphicon-text-color:before{content:"\e242"} .glyphicon-text-background:before{content:"\e243"} .glyphicon-object-align-top:before{content:"\e244"} .glyphicon-object-align-bottom:before{content:"\e245"} .glyphicon-object-align-horizontal:before{content:"\e246"} .glyphicon-object-align-left:before{content:"\e247"} .glyphicon-object-align-vertical:before{content:"\e248"} .glyphicon-object-align-right:before{content:"\e249"} .glyphicon-triangle-right:before{content:"\e250"} .glyphicon-triangle-left:before{content:"\e251"} .glyphicon-triangle-bottom:before{content:"\e252"} .glyphicon-triangle-top:before{content:"\e253"} .glyphicon-console:before{content:"\e254"} .glyphicon-superscript:before{content:"\e255"} .glyphicon-subscript:before{content:"\e256"} .glyphicon-menu-left:before{content:"\e257"} .glyphicon-menu-right:before{content:"\e258"} .glyphicon-menu-down:before{content:"\e259"} .glyphicon-menu-up:before{content:"\e260"} *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} :after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)} body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff} button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit} a{color:#337ab7;text-decoration:none} a:focus,a:hover{color:#23527c;text-decoration:underline} a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px} figure{margin:0} img{vertical-align:middle} .carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto} .img-rounded{border-radius:6px} .img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out} .img-circle{border-radius:50%} hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0} .sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} [role=button]{cursor:pointer} .h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit} .h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777} .h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px} .h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%} .h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px} .h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%} .h1,h1{font-size:36px} .h2,h2{font-size:30px} .h3,h3{font-size:24px} .h4,h4{font-size:18px} .h5,h5{font-size:14px} .h6,h6{font-size:12px} p{margin:0 0 10px} .lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}} .small,small{font-size:85%} .mark,mark{padding:.2em;background-color:#fcf8e3} .text-left{text-align:left} .text-right{text-align:right} .text-center{text-align:center} .text-justify{text-align:justify} .text-nowrap{white-space:nowrap} .text-lowercase{text-transform:lowercase} .text-uppercase{text-transform:uppercase} .text-capitalize{text-transform:capitalize} .text-muted{color:#777} .text-primary{color:#337ab7} a.text-primary:focus,a.text-primary:hover{color:#286090} .text-success{color:#3c763d} a.text-success:focus,a.text-success:hover{color:#2b542c} .text-info{color:#31708f} a.text-info:focus,a.text-info:hover{color:#245269} .text-warning{color:#8a6d3b} a.text-warning:focus,a.text-warning:hover{color:#66512c} .text-danger{color:#a94442} a.text-danger:focus,a.text-danger:hover{color:#843534} .bg-primary{color:#fff;background-color:#337ab7} a.bg-primary:focus,a.bg-primary:hover{background-color:#286090} .bg-success{background-color:#dff0d8} a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3} .bg-info{background-color:#d9edf7} a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee} .bg-warning{background-color:#fcf8e3} a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5} .bg-danger{background-color:#f2dede} a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9} .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee} ol,ul{margin-top:0;margin-bottom:10px} ol ol,ol ul,ul ol,ul ul{margin-bottom:0} .list-unstyled{padding-left:0;list-style:none} .list-inline{padding-left:0;margin-left:-5px;list-style:none} .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px} dl{margin-top:0;margin-bottom:20px} dd,dt{line-height:1.42857143} dt{font-weight:700} dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}} abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777} .initialism{font-size:90%;text-transform:uppercase} blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee} blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0} blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777} blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'} .blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0} .blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''} .blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'} address{margin-bottom:20px;font-style:normal;line-height:1.42857143} code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace} code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px} kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)} kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none} pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px} pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0} .pre-scrollable{max-height:340px;overflow-y:scroll} .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}} .container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto} .row{margin-right:-15px;margin-left:-15px} .col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px} .col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left} .col-xs-12{width:100%} .col-xs-11{width:91.66666667%} .col-xs-10{width:83.33333333%} .col-xs-9{width:75%} .col-xs-8{width:66.66666667%} .col-xs-7{width:58.33333333%} .col-xs-6{width:50%} .col-xs-5{width:41.66666667%} .col-xs-4{width:33.33333333%} .col-xs-3{width:25%} .col-xs-2{width:16.66666667%} .col-xs-1{width:8.33333333%} .col-xs-pull-12{right:100%} .col-xs-pull-11{right:91.66666667%} .col-xs-pull-10{right:83.33333333%} .col-xs-pull-9{right:75%} .col-xs-pull-8{right:66.66666667%} .col-xs-pull-7{right:58.33333333%} .col-xs-pull-6{right:50%} .col-xs-pull-5{right:41.66666667%} .col-xs-pull-4{right:33.33333333%} .col-xs-pull-3{right:25%} .col-xs-pull-2{right:16.66666667%} .col-xs-pull-1{right:8.33333333%} .col-xs-pull-0{right:auto} .col-xs-push-12{left:100%} .col-xs-push-11{left:91.66666667%} .col-xs-push-10{left:83.33333333%} .col-xs-push-9{left:75%} .col-xs-push-8{left:66.66666667%} .col-xs-push-7{left:58.33333333%} .col-xs-push-6{left:50%} .col-xs-push-5{left:41.66666667%} .col-xs-push-4{left:33.33333333%} .col-xs-push-3{left:25%} .col-xs-push-2{left:16.66666667%} .col-xs-push-1{left:8.33333333%} .col-xs-push-0{left:auto} .col-xs-offset-12{margin-left:100%} .col-xs-offset-11{margin-left:91.66666667%} .col-xs-offset-10{margin-left:83.33333333%} .col-xs-offset-9{margin-left:75%} .col-xs-offset-8{margin-left:66.66666667%} .col-xs-offset-7{margin-left:58.33333333%} .col-xs-offset-6{margin-left:50%} .col-xs-offset-5{margin-left:41.66666667%} .col-xs-offset-4{margin-left:33.33333333%} .col-xs-offset-3{margin-left:25%} .col-xs-offset-2{margin-left:16.66666667%} .col-xs-offset-1{margin-left:8.33333333%} .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}} table{background-color:transparent} caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left} th{text-align:left} .table{width:100%;max-width:100%;margin-bottom:20px} .table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd} .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd} .table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0} .table>tbody+tbody{border-top:2px solid #ddd} .table .table{background-color:#fff} .table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px} .table-bordered{border:1px solid #ddd} .table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd} .table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px} .table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9} .table-hover>tbody>tr:hover{background-color:#f5f5f5} table col[class*=col-]{position:static;display:table-column;float:none} table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none} .table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5} .table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8} .table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8} .table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6} .table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7} .table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3} .table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3} .table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc} .table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede} .table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc} .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}} fieldset{min-width:0;padding:0;margin:0;border:0} legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5} label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700} input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal} input[type=file]{display:block} input[type=range]{display:block;width:100%} select[multiple],select[size]{height:auto} input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px} output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555} .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s} .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)} .form-control::-moz-placeholder{color:#999;opacity:1} .form-control:-ms-input-placeholder{color:#999} .form-control::-webkit-input-placeholder{color:#999} .form-control::-ms-expand{background-color:transparent;border:0} .form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1} .form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed} textarea.form-control{height:auto} input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}} .form-group{margin-bottom:15px} .checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px} .checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer} .checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px} .checkbox+.checkbox,.radio+.radio{margin-top:-5px} .checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer} .checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px} fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed} .checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed} .checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed} .form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0} .form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0} .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px} select.input-sm{height:30px;line-height:30px} select[multiple].input-sm,textarea.input-sm{height:auto} .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px} .form-group-sm select.form-control{height:30px;line-height:30px} .form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto} .form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5} .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px} select.input-lg{height:46px;line-height:46px} select[multiple].input-lg,textarea.input-lg{height:auto} .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px} .form-group-lg select.form-control{height:46px;line-height:46px} .form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto} .form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333} .has-feedback{position:relative} .has-feedback .form-control{padding-right:42.5px} .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none} .form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px} .form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px} .has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d} .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)} .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168} .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d} .has-success .form-control-feedback{color:#3c763d} .has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b} .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)} .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b} .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b} .has-warning .form-control-feedback{color:#8a6d3b} .has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442} .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)} .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483} .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442} .has-error .form-control-feedback{color:#a94442} .has-feedback label~.form-control-feedback{top:25px} .has-feedback label.sr-only~.form-control-feedback{top:0} .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}} .form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0} .form-horizontal .checkbox,.form-horizontal .radio{min-height:27px} .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}} .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}} .btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px} .btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px} .btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none} .btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)} .btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65} a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none} .btn-default{color:#333;background-color:#fff;border-color:#ccc} .btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c} .btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad} .btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad} .btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c} .btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none} .btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc} .btn-default .badge{color:#fff;background-color:#333} .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4} .btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40} .btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74} .btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74} .btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40} .btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none} .btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4} .btn-primary .badge{color:#337ab7;background-color:#fff} .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c} .btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625} .btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439} .btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439} .btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625} .btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none} .btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c} .btn-success .badge{color:#5cb85c;background-color:#fff} .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da} .btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85} .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc} .btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc} .btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85} .btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none} .btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da} .btn-info .badge{color:#5bc0de;background-color:#fff} .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236} .btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d} .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512} .btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512} .btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d} .btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none} .btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236} .btn-warning .badge{color:#f0ad4e;background-color:#fff} .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a} .btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19} .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925} .btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925} .btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19} .btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none} .btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a} .btn-danger .badge{color:#d9534f;background-color:#fff} .btn-link{font-weight:400;color:#337ab7;border-radius:0} .btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none} .btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent} .btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent} .btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none} .btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px} .btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px} .btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px} .btn-block{display:block;width:100%} .btn-block+.btn-block{margin-top:5px} input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%} .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear} .fade.in{opacity:1} .collapse{display:none} .collapse.in{display:block} tr.collapse.in{display:table-row} tbody.collapse.in{display:table-row-group} .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility} .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent} .dropdown,.dropup{position:relative} .dropdown-toggle:focus{outline:0} .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)} .dropdown-menu.pull-right{right:0;left:auto} .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5} .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap} .dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5} .dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0} .dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777} .dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)} .open>.dropdown-menu{display:block} .open>a{outline:0} .dropdown-menu-right{right:0;left:auto} .dropdown-menu-left{right:auto;left:0} .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap} .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990} .pull-right>.dropdown-menu{right:0;left:auto} .dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9} .dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}} .btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle} .btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left} .btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2} .btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px} .btn-toolbar{margin-left:-5px} .btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left} .btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px} .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0} .btn-group>.btn:first-child{margin-left:0} .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0} .btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0} .btn-group>.btn-group{float:left} .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0} .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0} .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0} .btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0} .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px} .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px} .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)} .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none} .btn .caret{margin-left:0} .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0} .dropup .btn-lg .caret{border-width:0 5px 5px} .btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%} .btn-group-vertical>.btn-group>.btn{float:none} .btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0} .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0} .btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0} .btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px} .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0} .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0} .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0} .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate} .btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%} .btn-group-justified>.btn-group .btn{width:100%} .btn-group-justified>.btn-group .dropdown-menu{left:auto} [data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none} .input-group{position:relative;display:table;border-collapse:separate} .input-group[class*=col-]{float:none;padding-right:0;padding-left:0} .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0} .input-group .form-control:focus{z-index:3} .input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px} select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px} select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto} .input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px} select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px} select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto} .input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell} .input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0} .input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle} .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px} .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px} .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px} .input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0} .input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0} .input-group-addon:first-child{border-right:0} .input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0} .input-group-addon:last-child{border-left:0} .input-group-btn{position:relative;font-size:0;white-space:nowrap} .input-group-btn>.btn{position:relative} .input-group-btn>.btn+.btn{margin-left:-1px} .input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2} .input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px} .input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px} .nav{padding-left:0;margin-bottom:0;list-style:none} .nav>li{position:relative;display:block} .nav>li>a{position:relative;display:block;padding:10px 15px} .nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee} .nav>li.disabled>a{color:#777} .nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent} .nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7} .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5} .nav>li>a>img{max-width:none} .nav-tabs{border-bottom:1px solid #ddd} .nav-tabs>li{float:left;margin-bottom:-1px} .nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0} .nav-tabs>li>a:hover{border-color:#eee #eee #ddd} .nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent} .nav-tabs.nav-justified{width:100%;border-bottom:0} .nav-tabs.nav-justified>li{float:none} .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center} .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}} .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px} .nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}} .nav-pills>li{float:left} .nav-pills>li>a{border-radius:4px} .nav-pills>li+li{margin-left:2px} .nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7} .nav-stacked>li{float:none} .nav-stacked>li+li{margin-top:2px;margin-left:0} .nav-justified{width:100%} .nav-justified>li{float:none} .nav-justified>li>a{margin-bottom:5px;text-align:center} .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}} .nav-tabs-justified{border-bottom:0} .nav-tabs-justified>li>a{margin-right:0;border-radius:4px} .nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}} .tab-content>.tab-pane{display:none} .tab-content>.active{display:block} .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0} .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}} .navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)} .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}} .navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}} .container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}} .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}} .navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}} .navbar-fixed-top{top:0;border-width:0 0 1px} .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0} .navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px} .navbar-brand:focus,.navbar-brand:hover{text-decoration:none} .navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}} .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px} .navbar-toggle:focus{outline:0} .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px} .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}} .navbar-nav{margin:7.5px -15px} .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}} .navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}} .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0} .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0} .navbar-btn{margin-top:8px;margin-bottom:8px} .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px} .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px} .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}} .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7} .navbar-default .navbar-brand{color:#777} .navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent} .navbar-default .navbar-text{color:#777} .navbar-default .navbar-nav>li>a{color:#777} .navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent} .navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7} .navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent} .navbar-default .navbar-toggle{border-color:#ddd} .navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd} .navbar-default .navbar-toggle .icon-bar{background-color:#888} .navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7} .navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}} .navbar-default .navbar-link{color:#777} .navbar-default .navbar-link:hover{color:#333} .navbar-default .btn-link{color:#777} .navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333} .navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc} .navbar-inverse{background-color:#222;border-color:#080808} .navbar-inverse .navbar-brand{color:#9d9d9d} .navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent} .navbar-inverse .navbar-text{color:#9d9d9d} .navbar-inverse .navbar-nav>li>a{color:#9d9d9d} .navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent} .navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808} .navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent} .navbar-inverse .navbar-toggle{border-color:#333} .navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333} .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff} .navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010} .navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}} .navbar-inverse .navbar-link{color:#9d9d9d} .navbar-inverse .navbar-link:hover{color:#fff} .navbar-inverse .btn-link{color:#9d9d9d} .navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff} .navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444} .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px} .breadcrumb>li{display:inline-block} .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"} .breadcrumb>.active{color:#777} .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px} .pagination>li{display:inline} .pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd} .pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px} .pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px} .pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd} .pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7} .pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd} .pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333} .pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px} .pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px} .pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5} .pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px} .pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px} .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none} .pager li{display:inline} .pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px} .pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee} .pager .next>a,.pager .next>span{float:right} .pager .previous>a,.pager .previous>span{float:left} .pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff} .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em} a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer} .label:empty{display:none} .btn .label{position:relative;top:-1px} .label-default{background-color:#777} .label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e} .label-primary{background-color:#337ab7} .label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090} .label-success{background-color:#5cb85c} .label-success[href]:focus,.label-success[href]:hover{background-color:#449d44} .label-info{background-color:#5bc0de} .label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5} .label-warning{background-color:#f0ad4e} .label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f} .label-danger{background-color:#d9534f} .label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c} .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px} .badge:empty{display:none} .btn .badge{position:relative;top:-1px} .btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px} a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer} .list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff} .list-group-item>.badge{float:right} .list-group-item>.badge+.badge{margin-right:5px} .nav-pills>li>a>.badge{margin-left:3px} .jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee} .jumbotron .h1,.jumbotron h1{color:inherit} .jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200} .jumbotron>hr{border-top-color:#d5d5d5} .container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px} .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}} .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out} .thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto} a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7} .thumbnail .caption{padding:9px;color:#333} .alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px} .alert h4{margin-top:0;color:inherit} .alert .alert-link{font-weight:700} .alert>p,.alert>ul{margin-bottom:0} .alert>p+p{margin-top:5px} .alert-dismissable,.alert-dismissible{padding-right:35px} .alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit} .alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6} .alert-success hr{border-top-color:#c9e2b3} .alert-success .alert-link{color:#2b542c} .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1} .alert-info hr{border-top-color:#a6e1ec} .alert-info .alert-link{color:#245269} .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc} .alert-warning hr{border-top-color:#f7e1b5} .alert-warning .alert-link{color:#66512c} .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1} .alert-danger hr{border-top-color:#e4b9c0} .alert-danger .alert-link{color:#843534} @-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}} @-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}} @keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}} .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)} .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease} .progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px} .progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite} .progress-bar-success{background-color:#5cb85c} .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} .progress-bar-info{background-color:#5bc0de} .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} .progress-bar-warning{background-color:#f0ad4e} .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} .progress-bar-danger{background-color:#d9534f} .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} .media{margin-top:15px} .media:first-child{margin-top:0} .media,.media-body{overflow:hidden;zoom:1} .media-body{width:10000px} .media-object{display:block} .media-object.img-thumbnail{max-width:none} .media-right,.media>.pull-right{padding-left:10px} .media-left,.media>.pull-left{padding-right:10px} .media-body,.media-left,.media-right{display:table-cell;vertical-align:top} .media-middle{vertical-align:middle} .media-bottom{vertical-align:bottom} .media-heading{margin-top:0;margin-bottom:5px} .media-list{padding-left:0;list-style:none} .list-group{padding-left:0;margin-bottom:20px} .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd} .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px} .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px} a.list-group-item,button.list-group-item{color:#555} a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333} a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5} button.list-group-item{width:100%;text-align:left} .list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee} .list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit} .list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777} .list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7} .list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit} .list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef} .list-group-item-success{color:#3c763d;background-color:#dff0d8} a.list-group-item-success,button.list-group-item-success{color:#3c763d} a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit} a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6} a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d} .list-group-item-info{color:#31708f;background-color:#d9edf7} a.list-group-item-info,button.list-group-item-info{color:#31708f} a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit} a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3} a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f} .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3} a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b} a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit} a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc} a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b} .list-group-item-danger{color:#a94442;background-color:#f2dede} a.list-group-item-danger,button.list-group-item-danger{color:#a94442} a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit} a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc} a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442} .list-group-item-heading{margin-top:0;margin-bottom:5px} .list-group-item-text{margin-bottom:0;line-height:1.3} .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)} .panel-body{padding:15px} .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px} .panel-heading>.dropdown .dropdown-toggle{color:inherit} .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit} .panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit} .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px} .panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0} .panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0} .panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px} .panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px} .panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0} .panel-heading+.list-group .list-group-item:first-child{border-top-width:0} .list-group+.panel-footer{border-top-width:0} .panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0} .panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px} .panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px} .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px} .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px} .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px} .panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px} .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px} .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px} .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px} .panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd} .panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0} .panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0} .panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0} .panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0} .panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0} .panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0} .panel>.table-responsive{margin-bottom:0;border:0} .panel-group{margin-bottom:20px} .panel-group .panel{margin-bottom:0;border-radius:4px} .panel-group .panel+.panel{margin-top:5px} .panel-group .panel-heading{border-bottom:0} .panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd} .panel-group .panel-footer{border-top:0} .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd} .panel-default{border-color:#ddd} .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd} .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd} .panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333} .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd} .panel-primary{border-color:#337ab7} .panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7} .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7} .panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff} .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7} .panel-success{border-color:#d6e9c6} .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6} .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6} .panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d} .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6} .panel-info{border-color:#bce8f1} .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1} .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1} .panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f} .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1} .panel-warning{border-color:#faebcc} .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc} .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc} .panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b} .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc} .panel-danger{border-color:#ebccd1} .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1} .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1} .panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442} .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1} .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden} .embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0} .embed-responsive-16by9{padding-bottom:56.25%} .embed-responsive-4by3{padding-bottom:75%} .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)} .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)} .well-lg{padding:24px;border-radius:6px} .well-sm{padding:9px;border-radius:3px} .close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2} .close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5} button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0} .modal-open{overflow:hidden} .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0} .modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)} .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)} .modal-open .modal{overflow-x:hidden;overflow-y:auto} .modal-dialog{position:relative;width:auto;margin:10px} .modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)} .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000} .modal-backdrop.fade{filter:alpha(opacity=0);opacity:0} .modal-backdrop.in{filter:alpha(opacity=50);opacity:.5} .modal-header{padding:15px;border-bottom:1px solid #e5e5e5} .modal-header .close{margin-top:-2px} .modal-title{margin:0;line-height:1.42857143} .modal-body{position:relative;padding:15px} .modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5} .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px} .modal-footer .btn-group .btn+.btn{margin-left:-1px} .modal-footer .btn-block+.btn-block{margin-left:0} .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}} .tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto} .tooltip.in{filter:alpha(opacity=90);opacity:.9} .tooltip.top{padding:5px 0;margin-top:-3px} .tooltip.right{padding:0 5px;margin-left:3px} .tooltip.bottom{padding:5px 0;margin-top:3px} .tooltip.left{padding:0 5px;margin-left:-3px} .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px} .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid} .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000} .tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000} .tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000} .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000} .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000} .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000} .tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000} .tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000} .popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto} .popover.top{margin-top:-10px} .popover.right{margin-left:10px} .popover.bottom{margin-top:10px} .popover.left{margin-left:-10px} .popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0} .popover-content{padding:9px 14px} .popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid} .popover>.arrow{border-width:11px} .popover>.arrow:after{content:"";border-width:10px} .popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0} .popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0} .popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0} .popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0} .popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)} .popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff} .popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)} .popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff} .carousel{position:relative} .carousel-inner{position:relative;width:100%;overflow:hidden} .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left} .carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}} .carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block} .carousel-inner>.active{left:0} .carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%} .carousel-inner>.next{left:100%} .carousel-inner>.prev{left:-100%} .carousel-inner>.next.left,.carousel-inner>.prev.right{left:0} .carousel-inner>.active.left{left:-100%} .carousel-inner>.active.right{left:100%} .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5} .carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x} .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x} .carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9} .carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px} .carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px} .carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px} .carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1} .carousel-control .icon-prev:before{content:'\2039'} .carousel-control .icon-next:before{content:'\203a'} .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none} .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px} .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff} .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)} .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}} .btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "} .btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both} .center-block{display:block;margin-right:auto;margin-left:auto} .pull-right{float:right!important} .pull-left{float:left!important} .hide{display:none!important} .show{display:block!important} .invisible{visibility:hidden} .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} .hidden{display:none!important} .affix{position:fixed}@-ms-viewport{width:device-width} .visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important} .visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}} .visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}} .visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}} .visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}} .visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap.min.css.map b/e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css.map similarity index 100% rename from e107_web/lib/bootstrap/dist/css/bootstrap.min.css.map rename to e107_web/lib/bootstrap/3.3.7/dist/css/bootstrap.min.css.map diff --git a/e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.eot diff --git a/e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.svg diff --git a/e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.woff diff --git a/e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 b/e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from e107_web/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 rename to e107_web/lib/bootstrap/3.3.7/dist/fonts/glyphicons-halflings-regular.woff2 diff --git a/e107_web/lib/bootstrap/dist/js/bootstrap.js b/e107_web/lib/bootstrap/3.3.7/dist/js/bootstrap.js similarity index 100% rename from e107_web/lib/bootstrap/dist/js/bootstrap.js rename to e107_web/lib/bootstrap/3.3.7/dist/js/bootstrap.js diff --git a/e107_web/lib/bootstrap/dist/js/bootstrap.min.js b/e107_web/lib/bootstrap/3.3.7/dist/js/bootstrap.min.js similarity index 100% rename from e107_web/lib/bootstrap/dist/js/bootstrap.min.js rename to e107_web/lib/bootstrap/3.3.7/dist/js/bootstrap.min.js diff --git a/e107_web/lib/bootstrap/3.3.7/dist/js/npm.js b/e107_web/lib/bootstrap/3.3.7/dist/js/npm.js new file mode 100644 index 000000000..4785e0e44 --- /dev/null +++ b/e107_web/lib/bootstrap/3.3.7/dist/js/npm.js @@ -0,0 +1,13 @@ +// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. +require('.././transition.js') +require('.././alert.js') +require('.././button.js') +require('.././carousel.js') +require('.././collapse.js') +require('.././dropdown.js') +require('.././modal.js') +require('.././tooltip.js') +require('.././popover.js') +require('.././scrollspy.js') +require('.././tab.js') +require('.././affix.js') \ No newline at end of file diff --git a/e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.eot diff --git a/e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.svg diff --git a/e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.ttf diff --git a/e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff diff --git a/e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from e107_web/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to e107_web/lib/bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff2 diff --git a/e107_web/lib/bootstrap/grunt/.jshintrc b/e107_web/lib/bootstrap/3.3.7/grunt/.jshintrc similarity index 100% rename from e107_web/lib/bootstrap/grunt/.jshintrc rename to e107_web/lib/bootstrap/3.3.7/grunt/.jshintrc diff --git a/e107_web/lib/bootstrap/grunt/bs-commonjs-generator.js b/e107_web/lib/bootstrap/3.3.7/grunt/bs-commonjs-generator.js similarity index 100% rename from e107_web/lib/bootstrap/grunt/bs-commonjs-generator.js rename to e107_web/lib/bootstrap/3.3.7/grunt/bs-commonjs-generator.js diff --git a/e107_web/lib/bootstrap/grunt/bs-glyphicons-data-generator.js b/e107_web/lib/bootstrap/3.3.7/grunt/bs-glyphicons-data-generator.js similarity index 100% rename from e107_web/lib/bootstrap/grunt/bs-glyphicons-data-generator.js rename to e107_web/lib/bootstrap/3.3.7/grunt/bs-glyphicons-data-generator.js diff --git a/e107_web/lib/bootstrap/grunt/bs-lessdoc-parser.js b/e107_web/lib/bootstrap/3.3.7/grunt/bs-lessdoc-parser.js similarity index 100% rename from e107_web/lib/bootstrap/grunt/bs-lessdoc-parser.js rename to e107_web/lib/bootstrap/3.3.7/grunt/bs-lessdoc-parser.js diff --git a/e107_web/lib/bootstrap/grunt/bs-raw-files-generator.js b/e107_web/lib/bootstrap/3.3.7/grunt/bs-raw-files-generator.js similarity index 100% rename from e107_web/lib/bootstrap/grunt/bs-raw-files-generator.js rename to e107_web/lib/bootstrap/3.3.7/grunt/bs-raw-files-generator.js diff --git a/e107_web/lib/bootstrap/grunt/change-version.js b/e107_web/lib/bootstrap/3.3.7/grunt/change-version.js similarity index 100% rename from e107_web/lib/bootstrap/grunt/change-version.js rename to e107_web/lib/bootstrap/3.3.7/grunt/change-version.js diff --git a/e107_web/lib/bootstrap/grunt/configBridge.json b/e107_web/lib/bootstrap/3.3.7/grunt/configBridge.json similarity index 100% rename from e107_web/lib/bootstrap/grunt/configBridge.json rename to e107_web/lib/bootstrap/3.3.7/grunt/configBridge.json diff --git a/e107_web/lib/bootstrap/grunt/npm-shrinkwrap.json b/e107_web/lib/bootstrap/3.3.7/grunt/npm-shrinkwrap.json similarity index 100% rename from e107_web/lib/bootstrap/grunt/npm-shrinkwrap.json rename to e107_web/lib/bootstrap/3.3.7/grunt/npm-shrinkwrap.json diff --git a/e107_web/lib/bootstrap/grunt/sauce_browsers.yml b/e107_web/lib/bootstrap/3.3.7/grunt/sauce_browsers.yml similarity index 100% rename from e107_web/lib/bootstrap/grunt/sauce_browsers.yml rename to e107_web/lib/bootstrap/3.3.7/grunt/sauce_browsers.yml diff --git a/e107_web/lib/bootstrap/js/.jscsrc b/e107_web/lib/bootstrap/3.3.7/js/.jscsrc similarity index 100% rename from e107_web/lib/bootstrap/js/.jscsrc rename to e107_web/lib/bootstrap/3.3.7/js/.jscsrc diff --git a/e107_web/lib/bootstrap/js/.jshintrc b/e107_web/lib/bootstrap/3.3.7/js/.jshintrc similarity index 100% rename from e107_web/lib/bootstrap/js/.jshintrc rename to e107_web/lib/bootstrap/3.3.7/js/.jshintrc diff --git a/e107_web/lib/bootstrap/js/affix.js b/e107_web/lib/bootstrap/3.3.7/js/affix.js similarity index 100% rename from e107_web/lib/bootstrap/js/affix.js rename to e107_web/lib/bootstrap/3.3.7/js/affix.js diff --git a/e107_web/lib/bootstrap/js/alert.js b/e107_web/lib/bootstrap/3.3.7/js/alert.js similarity index 100% rename from e107_web/lib/bootstrap/js/alert.js rename to e107_web/lib/bootstrap/3.3.7/js/alert.js diff --git a/e107_web/lib/bootstrap/js/button.js b/e107_web/lib/bootstrap/3.3.7/js/button.js similarity index 100% rename from e107_web/lib/bootstrap/js/button.js rename to e107_web/lib/bootstrap/3.3.7/js/button.js diff --git a/e107_web/lib/bootstrap/js/carousel.js b/e107_web/lib/bootstrap/3.3.7/js/carousel.js similarity index 100% rename from e107_web/lib/bootstrap/js/carousel.js rename to e107_web/lib/bootstrap/3.3.7/js/carousel.js diff --git a/e107_web/lib/bootstrap/js/collapse.js b/e107_web/lib/bootstrap/3.3.7/js/collapse.js similarity index 100% rename from e107_web/lib/bootstrap/js/collapse.js rename to e107_web/lib/bootstrap/3.3.7/js/collapse.js diff --git a/e107_web/lib/bootstrap/js/dropdown.js b/e107_web/lib/bootstrap/3.3.7/js/dropdown.js similarity index 100% rename from e107_web/lib/bootstrap/js/dropdown.js rename to e107_web/lib/bootstrap/3.3.7/js/dropdown.js diff --git a/e107_web/lib/bootstrap/js/modal.js b/e107_web/lib/bootstrap/3.3.7/js/modal.js similarity index 100% rename from e107_web/lib/bootstrap/js/modal.js rename to e107_web/lib/bootstrap/3.3.7/js/modal.js diff --git a/e107_web/lib/bootstrap/js/popover.js b/e107_web/lib/bootstrap/3.3.7/js/popover.js similarity index 100% rename from e107_web/lib/bootstrap/js/popover.js rename to e107_web/lib/bootstrap/3.3.7/js/popover.js diff --git a/e107_web/lib/bootstrap/js/scrollspy.js b/e107_web/lib/bootstrap/3.3.7/js/scrollspy.js similarity index 100% rename from e107_web/lib/bootstrap/js/scrollspy.js rename to e107_web/lib/bootstrap/3.3.7/js/scrollspy.js diff --git a/e107_web/lib/bootstrap/js/tab.js b/e107_web/lib/bootstrap/3.3.7/js/tab.js similarity index 100% rename from e107_web/lib/bootstrap/js/tab.js rename to e107_web/lib/bootstrap/3.3.7/js/tab.js diff --git a/e107_web/lib/bootstrap/js/tooltip.js b/e107_web/lib/bootstrap/3.3.7/js/tooltip.js similarity index 100% rename from e107_web/lib/bootstrap/js/tooltip.js rename to e107_web/lib/bootstrap/3.3.7/js/tooltip.js diff --git a/e107_web/lib/bootstrap/js/transition.js b/e107_web/lib/bootstrap/3.3.7/js/transition.js similarity index 100% rename from e107_web/lib/bootstrap/js/transition.js rename to e107_web/lib/bootstrap/3.3.7/js/transition.js diff --git a/e107_web/lib/bootstrap/less/.csscomb.json b/e107_web/lib/bootstrap/3.3.7/less/.csscomb.json similarity index 100% rename from e107_web/lib/bootstrap/less/.csscomb.json rename to e107_web/lib/bootstrap/3.3.7/less/.csscomb.json diff --git a/e107_web/lib/bootstrap/less/.csslintrc b/e107_web/lib/bootstrap/3.3.7/less/.csslintrc similarity index 100% rename from e107_web/lib/bootstrap/less/.csslintrc rename to e107_web/lib/bootstrap/3.3.7/less/.csslintrc diff --git a/e107_web/lib/bootstrap/less/alerts.less b/e107_web/lib/bootstrap/3.3.7/less/alerts.less similarity index 100% rename from e107_web/lib/bootstrap/less/alerts.less rename to e107_web/lib/bootstrap/3.3.7/less/alerts.less diff --git a/e107_web/lib/bootstrap/less/badges.less b/e107_web/lib/bootstrap/3.3.7/less/badges.less similarity index 100% rename from e107_web/lib/bootstrap/less/badges.less rename to e107_web/lib/bootstrap/3.3.7/less/badges.less diff --git a/e107_web/lib/bootstrap/less/bootstrap.less b/e107_web/lib/bootstrap/3.3.7/less/bootstrap.less similarity index 100% rename from e107_web/lib/bootstrap/less/bootstrap.less rename to e107_web/lib/bootstrap/3.3.7/less/bootstrap.less diff --git a/e107_web/lib/bootstrap/less/breadcrumbs.less b/e107_web/lib/bootstrap/3.3.7/less/breadcrumbs.less similarity index 100% rename from e107_web/lib/bootstrap/less/breadcrumbs.less rename to e107_web/lib/bootstrap/3.3.7/less/breadcrumbs.less diff --git a/e107_web/lib/bootstrap/less/button-groups.less b/e107_web/lib/bootstrap/3.3.7/less/button-groups.less similarity index 100% rename from e107_web/lib/bootstrap/less/button-groups.less rename to e107_web/lib/bootstrap/3.3.7/less/button-groups.less diff --git a/e107_web/lib/bootstrap/less/buttons.less b/e107_web/lib/bootstrap/3.3.7/less/buttons.less similarity index 100% rename from e107_web/lib/bootstrap/less/buttons.less rename to e107_web/lib/bootstrap/3.3.7/less/buttons.less diff --git a/e107_web/lib/bootstrap/less/carousel.less b/e107_web/lib/bootstrap/3.3.7/less/carousel.less similarity index 100% rename from e107_web/lib/bootstrap/less/carousel.less rename to e107_web/lib/bootstrap/3.3.7/less/carousel.less diff --git a/e107_web/lib/bootstrap/less/close.less b/e107_web/lib/bootstrap/3.3.7/less/close.less similarity index 100% rename from e107_web/lib/bootstrap/less/close.less rename to e107_web/lib/bootstrap/3.3.7/less/close.less diff --git a/e107_web/lib/bootstrap/less/code.less b/e107_web/lib/bootstrap/3.3.7/less/code.less similarity index 100% rename from e107_web/lib/bootstrap/less/code.less rename to e107_web/lib/bootstrap/3.3.7/less/code.less diff --git a/e107_web/lib/bootstrap/less/component-animations.less b/e107_web/lib/bootstrap/3.3.7/less/component-animations.less similarity index 100% rename from e107_web/lib/bootstrap/less/component-animations.less rename to e107_web/lib/bootstrap/3.3.7/less/component-animations.less diff --git a/e107_web/lib/bootstrap/less/dropdowns.less b/e107_web/lib/bootstrap/3.3.7/less/dropdowns.less similarity index 100% rename from e107_web/lib/bootstrap/less/dropdowns.less rename to e107_web/lib/bootstrap/3.3.7/less/dropdowns.less diff --git a/e107_web/lib/bootstrap/less/forms.less b/e107_web/lib/bootstrap/3.3.7/less/forms.less similarity index 100% rename from e107_web/lib/bootstrap/less/forms.less rename to e107_web/lib/bootstrap/3.3.7/less/forms.less diff --git a/e107_web/lib/bootstrap/less/glyphicons.less b/e107_web/lib/bootstrap/3.3.7/less/glyphicons.less similarity index 100% rename from e107_web/lib/bootstrap/less/glyphicons.less rename to e107_web/lib/bootstrap/3.3.7/less/glyphicons.less diff --git a/e107_web/lib/bootstrap/less/grid.less b/e107_web/lib/bootstrap/3.3.7/less/grid.less similarity index 100% rename from e107_web/lib/bootstrap/less/grid.less rename to e107_web/lib/bootstrap/3.3.7/less/grid.less diff --git a/e107_web/lib/bootstrap/less/input-groups.less b/e107_web/lib/bootstrap/3.3.7/less/input-groups.less similarity index 100% rename from e107_web/lib/bootstrap/less/input-groups.less rename to e107_web/lib/bootstrap/3.3.7/less/input-groups.less diff --git a/e107_web/lib/bootstrap/less/jumbotron.less b/e107_web/lib/bootstrap/3.3.7/less/jumbotron.less similarity index 100% rename from e107_web/lib/bootstrap/less/jumbotron.less rename to e107_web/lib/bootstrap/3.3.7/less/jumbotron.less diff --git a/e107_web/lib/bootstrap/less/labels.less b/e107_web/lib/bootstrap/3.3.7/less/labels.less similarity index 100% rename from e107_web/lib/bootstrap/less/labels.less rename to e107_web/lib/bootstrap/3.3.7/less/labels.less diff --git a/e107_web/lib/bootstrap/less/list-group.less b/e107_web/lib/bootstrap/3.3.7/less/list-group.less similarity index 100% rename from e107_web/lib/bootstrap/less/list-group.less rename to e107_web/lib/bootstrap/3.3.7/less/list-group.less diff --git a/e107_web/lib/bootstrap/less/media.less b/e107_web/lib/bootstrap/3.3.7/less/media.less similarity index 100% rename from e107_web/lib/bootstrap/less/media.less rename to e107_web/lib/bootstrap/3.3.7/less/media.less diff --git a/e107_web/lib/bootstrap/less/mixins.less b/e107_web/lib/bootstrap/3.3.7/less/mixins.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins.less diff --git a/e107_web/lib/bootstrap/less/mixins/alerts.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/alerts.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/alerts.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/alerts.less diff --git a/e107_web/lib/bootstrap/less/mixins/background-variant.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/background-variant.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/background-variant.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/background-variant.less diff --git a/e107_web/lib/bootstrap/less/mixins/border-radius.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/border-radius.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/border-radius.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/border-radius.less diff --git a/e107_web/lib/bootstrap/less/mixins/buttons.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/buttons.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/buttons.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/buttons.less diff --git a/e107_web/lib/bootstrap/less/mixins/center-block.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/center-block.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/center-block.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/center-block.less diff --git a/e107_web/lib/bootstrap/less/mixins/clearfix.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/clearfix.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/clearfix.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/clearfix.less diff --git a/e107_web/lib/bootstrap/less/mixins/forms.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/forms.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/forms.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/forms.less diff --git a/e107_web/lib/bootstrap/less/mixins/gradients.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/gradients.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/gradients.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/gradients.less diff --git a/e107_web/lib/bootstrap/less/mixins/grid-framework.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/grid-framework.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/grid-framework.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/grid-framework.less diff --git a/e107_web/lib/bootstrap/less/mixins/grid.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/grid.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/grid.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/grid.less diff --git a/e107_web/lib/bootstrap/less/mixins/hide-text.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/hide-text.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/hide-text.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/hide-text.less diff --git a/e107_web/lib/bootstrap/less/mixins/image.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/image.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/image.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/image.less diff --git a/e107_web/lib/bootstrap/less/mixins/labels.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/labels.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/labels.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/labels.less diff --git a/e107_web/lib/bootstrap/less/mixins/list-group.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/list-group.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/list-group.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/list-group.less diff --git a/e107_web/lib/bootstrap/less/mixins/nav-divider.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/nav-divider.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/nav-divider.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/nav-divider.less diff --git a/e107_web/lib/bootstrap/less/mixins/nav-vertical-align.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/nav-vertical-align.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/nav-vertical-align.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/nav-vertical-align.less diff --git a/e107_web/lib/bootstrap/less/mixins/opacity.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/opacity.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/opacity.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/opacity.less diff --git a/e107_web/lib/bootstrap/less/mixins/pagination.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/pagination.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/pagination.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/pagination.less diff --git a/e107_web/lib/bootstrap/less/mixins/panels.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/panels.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/panels.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/panels.less diff --git a/e107_web/lib/bootstrap/less/mixins/progress-bar.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/progress-bar.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/progress-bar.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/progress-bar.less diff --git a/e107_web/lib/bootstrap/less/mixins/reset-filter.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/reset-filter.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/reset-filter.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/reset-filter.less diff --git a/e107_web/lib/bootstrap/less/mixins/reset-text.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/reset-text.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/reset-text.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/reset-text.less diff --git a/e107_web/lib/bootstrap/less/mixins/resize.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/resize.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/resize.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/resize.less diff --git a/e107_web/lib/bootstrap/less/mixins/responsive-visibility.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/responsive-visibility.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/responsive-visibility.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/responsive-visibility.less diff --git a/e107_web/lib/bootstrap/less/mixins/size.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/size.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/size.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/size.less diff --git a/e107_web/lib/bootstrap/less/mixins/tab-focus.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/tab-focus.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/tab-focus.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/tab-focus.less diff --git a/e107_web/lib/bootstrap/less/mixins/table-row.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/table-row.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/table-row.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/table-row.less diff --git a/e107_web/lib/bootstrap/less/mixins/text-emphasis.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/text-emphasis.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/text-emphasis.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/text-emphasis.less diff --git a/e107_web/lib/bootstrap/less/mixins/text-overflow.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/text-overflow.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/text-overflow.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/text-overflow.less diff --git a/e107_web/lib/bootstrap/less/mixins/vendor-prefixes.less b/e107_web/lib/bootstrap/3.3.7/less/mixins/vendor-prefixes.less similarity index 100% rename from e107_web/lib/bootstrap/less/mixins/vendor-prefixes.less rename to e107_web/lib/bootstrap/3.3.7/less/mixins/vendor-prefixes.less diff --git a/e107_web/lib/bootstrap/less/modals.less b/e107_web/lib/bootstrap/3.3.7/less/modals.less similarity index 100% rename from e107_web/lib/bootstrap/less/modals.less rename to e107_web/lib/bootstrap/3.3.7/less/modals.less diff --git a/e107_web/lib/bootstrap/less/navbar.less b/e107_web/lib/bootstrap/3.3.7/less/navbar.less similarity index 100% rename from e107_web/lib/bootstrap/less/navbar.less rename to e107_web/lib/bootstrap/3.3.7/less/navbar.less diff --git a/e107_web/lib/bootstrap/less/navs.less b/e107_web/lib/bootstrap/3.3.7/less/navs.less similarity index 100% rename from e107_web/lib/bootstrap/less/navs.less rename to e107_web/lib/bootstrap/3.3.7/less/navs.less diff --git a/e107_web/lib/bootstrap/less/normalize.less b/e107_web/lib/bootstrap/3.3.7/less/normalize.less similarity index 100% rename from e107_web/lib/bootstrap/less/normalize.less rename to e107_web/lib/bootstrap/3.3.7/less/normalize.less diff --git a/e107_web/lib/bootstrap/less/pager.less b/e107_web/lib/bootstrap/3.3.7/less/pager.less similarity index 100% rename from e107_web/lib/bootstrap/less/pager.less rename to e107_web/lib/bootstrap/3.3.7/less/pager.less diff --git a/e107_web/lib/bootstrap/less/pagination.less b/e107_web/lib/bootstrap/3.3.7/less/pagination.less similarity index 100% rename from e107_web/lib/bootstrap/less/pagination.less rename to e107_web/lib/bootstrap/3.3.7/less/pagination.less diff --git a/e107_web/lib/bootstrap/less/panels.less b/e107_web/lib/bootstrap/3.3.7/less/panels.less similarity index 100% rename from e107_web/lib/bootstrap/less/panels.less rename to e107_web/lib/bootstrap/3.3.7/less/panels.less diff --git a/e107_web/lib/bootstrap/less/popovers.less b/e107_web/lib/bootstrap/3.3.7/less/popovers.less similarity index 100% rename from e107_web/lib/bootstrap/less/popovers.less rename to e107_web/lib/bootstrap/3.3.7/less/popovers.less diff --git a/e107_web/lib/bootstrap/less/print.less b/e107_web/lib/bootstrap/3.3.7/less/print.less similarity index 100% rename from e107_web/lib/bootstrap/less/print.less rename to e107_web/lib/bootstrap/3.3.7/less/print.less diff --git a/e107_web/lib/bootstrap/less/progress-bars.less b/e107_web/lib/bootstrap/3.3.7/less/progress-bars.less similarity index 100% rename from e107_web/lib/bootstrap/less/progress-bars.less rename to e107_web/lib/bootstrap/3.3.7/less/progress-bars.less diff --git a/e107_web/lib/bootstrap/less/responsive-embed.less b/e107_web/lib/bootstrap/3.3.7/less/responsive-embed.less similarity index 100% rename from e107_web/lib/bootstrap/less/responsive-embed.less rename to e107_web/lib/bootstrap/3.3.7/less/responsive-embed.less diff --git a/e107_web/lib/bootstrap/less/responsive-utilities.less b/e107_web/lib/bootstrap/3.3.7/less/responsive-utilities.less similarity index 100% rename from e107_web/lib/bootstrap/less/responsive-utilities.less rename to e107_web/lib/bootstrap/3.3.7/less/responsive-utilities.less diff --git a/e107_web/lib/bootstrap/less/scaffolding.less b/e107_web/lib/bootstrap/3.3.7/less/scaffolding.less similarity index 100% rename from e107_web/lib/bootstrap/less/scaffolding.less rename to e107_web/lib/bootstrap/3.3.7/less/scaffolding.less diff --git a/e107_web/lib/bootstrap/less/tables.less b/e107_web/lib/bootstrap/3.3.7/less/tables.less similarity index 100% rename from e107_web/lib/bootstrap/less/tables.less rename to e107_web/lib/bootstrap/3.3.7/less/tables.less diff --git a/e107_web/lib/bootstrap/less/theme.less b/e107_web/lib/bootstrap/3.3.7/less/theme.less similarity index 100% rename from e107_web/lib/bootstrap/less/theme.less rename to e107_web/lib/bootstrap/3.3.7/less/theme.less diff --git a/e107_web/lib/bootstrap/less/thumbnails.less b/e107_web/lib/bootstrap/3.3.7/less/thumbnails.less similarity index 100% rename from e107_web/lib/bootstrap/less/thumbnails.less rename to e107_web/lib/bootstrap/3.3.7/less/thumbnails.less diff --git a/e107_web/lib/bootstrap/less/tooltip.less b/e107_web/lib/bootstrap/3.3.7/less/tooltip.less similarity index 100% rename from e107_web/lib/bootstrap/less/tooltip.less rename to e107_web/lib/bootstrap/3.3.7/less/tooltip.less diff --git a/e107_web/lib/bootstrap/less/type.less b/e107_web/lib/bootstrap/3.3.7/less/type.less similarity index 100% rename from e107_web/lib/bootstrap/less/type.less rename to e107_web/lib/bootstrap/3.3.7/less/type.less diff --git a/e107_web/lib/bootstrap/less/utilities.less b/e107_web/lib/bootstrap/3.3.7/less/utilities.less similarity index 100% rename from e107_web/lib/bootstrap/less/utilities.less rename to e107_web/lib/bootstrap/3.3.7/less/utilities.less diff --git a/e107_web/lib/bootstrap/less/variables.less b/e107_web/lib/bootstrap/3.3.7/less/variables.less similarity index 100% rename from e107_web/lib/bootstrap/less/variables.less rename to e107_web/lib/bootstrap/3.3.7/less/variables.less diff --git a/e107_web/lib/bootstrap/less/wells.less b/e107_web/lib/bootstrap/3.3.7/less/wells.less similarity index 100% rename from e107_web/lib/bootstrap/less/wells.less rename to e107_web/lib/bootstrap/3.3.7/less/wells.less diff --git a/e107_web/lib/bootstrap/nuget/MyGet.ps1 b/e107_web/lib/bootstrap/3.3.7/nuget/MyGet.ps1 similarity index 100% rename from e107_web/lib/bootstrap/nuget/MyGet.ps1 rename to e107_web/lib/bootstrap/3.3.7/nuget/MyGet.ps1 diff --git a/e107_web/lib/bootstrap/nuget/bootstrap.less.nuspec b/e107_web/lib/bootstrap/3.3.7/nuget/bootstrap.less.nuspec similarity index 100% rename from e107_web/lib/bootstrap/nuget/bootstrap.less.nuspec rename to e107_web/lib/bootstrap/3.3.7/nuget/bootstrap.less.nuspec diff --git a/e107_web/lib/bootstrap/nuget/bootstrap.nuspec b/e107_web/lib/bootstrap/3.3.7/nuget/bootstrap.nuspec similarity index 100% rename from e107_web/lib/bootstrap/nuget/bootstrap.nuspec rename to e107_web/lib/bootstrap/3.3.7/nuget/bootstrap.nuspec diff --git a/e107_web/lib/bootstrap/package.js b/e107_web/lib/bootstrap/3.3.7/package.js similarity index 100% rename from e107_web/lib/bootstrap/package.js rename to e107_web/lib/bootstrap/3.3.7/package.js diff --git a/e107_web/lib/bootstrap/package.json b/e107_web/lib/bootstrap/3.3.7/package.json similarity index 100% rename from e107_web/lib/bootstrap/package.json rename to e107_web/lib/bootstrap/3.3.7/package.json diff --git a/e107_web/lib/bootstrap/dist/css/bootstrap.min.css b/e107_web/lib/bootstrap/dist/css/bootstrap.min.css deleted file mode 100644 index ed3905e0e..000000000 --- a/e107_web/lib/bootstrap/dist/css/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/e107_web/lib/bootstrap/dist/js/npm.js b/e107_web/lib/bootstrap/dist/js/npm.js deleted file mode 100644 index bf6aa8060..000000000 --- a/e107_web/lib/bootstrap/dist/js/npm.js +++ /dev/null @@ -1,13 +0,0 @@ -// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. -require('../../js/transition.js') -require('../../js/alert.js') -require('../../js/button.js') -require('../../js/carousel.js') -require('../../js/collapse.js') -require('../../js/dropdown.js') -require('../../js/modal.js') -require('../../js/tooltip.js') -require('../../js/popover.js') -require('../../js/scrollspy.js') -require('../../js/tab.js') -require('../../js/affix.js') \ No newline at end of file diff --git a/e107_web/lib/jquery-ui/AUTHORS.txt b/e107_web/lib/jquery-ui/AUTHORS.txt new file mode 100644 index 000000000..a75056b94 --- /dev/null +++ b/e107_web/lib/jquery-ui/AUTHORS.txt @@ -0,0 +1,333 @@ +Authors ordered by first contribution +A list of current team members is available at http://jqueryui.com/about + +Paul Bakaus +Richard Worth +Yehuda Katz +Sean Catchpole +John Resig +Tane Piper +Dmitri Gaskin +Klaus Hartl +Stefan Petre +Gilles van den Hoven +Micheil Bryan Smith +Jörn Zaefferer +Marc Grabanski +Keith Wood +Brandon Aaron +Scott González +Eduardo Lundgren +Aaron Eisenberger +Joan Piedra +Bruno Basto +Remy Sharp +Bohdan Ganicky +David Bolter +Chi Cheng +Ca-Phun Ung +Ariel Flesler +Maggie Wachs +Scott Jehl +Todd Parker +Andrew Powell +Brant Burnett +Douglas Neiner +Paul Irish +Ralph Whitbeck +Thibault Duplessis +Dominique Vincent +Jack Hsu +Adam Sontag +Carl Fürstenberg +Kevin Dalman +Alberto Fernández Capel +Jacek Jędrzejewski (http://jacek.jedrzejewski.name) +Ting Kuei +Samuel Cormier-Iijima +Jon Palmer +Ben Hollis +Justin MacCarthy +Eyal Kobrigo +Tiago Freire +Diego Tres +Holger Rüprich +Ziling Zhao +Mike Alsup +Robson Braga Araujo +Pierre-Henri Ausseil +Christopher McCulloh +Andrew Newcomb +Lim Chee Aun +Jorge Barreiro +Daniel Steigerwald +John Firebaugh +John Enters +Andrey Kapitcyn +Dmitry Petrov +Eric Hynds +Chairat Sunthornwiphat +Josh Varner +Stéphane Raimbault +Jay Merrifield +J. Ryan Stinnett +Peter Heiberg +Alex Dovenmuehle +Jamie Gegerson +Raymond Schwartz +Phillip Barnes +Kyle Wilkinson +Khaled AlHourani +Marian Rudzynski +Jean-Francois Remy +Doug Blood +Filippo Cavallarin +Heiko Henning +Aliaksandr Rahalevich +Mario Visic +Xavi Ramirez +Max Schnur +Saji Nediyanchath +Corey Frang +Aaron Peterson +Ivan Peters +Mohamed Cherif Bouchelaghem +Marcos Sousa +Michael DellaNoce +George Marshall +Tobias Brunner +Martin Solli +David Petersen +Dan Heberden +William Kevin Manire +Gilmore Davidson +Michael Wu +Adam Parod +Guillaume Gautreau +Marcel Toele +Dan Streetman +Matt Hoskins +Giovanni Giacobbi +Kyle Florence +Pavol Hluchý +Hans Hillen +Mark Johnson +Trey Hunner +Shane Whittet +Edward A Faulkner +Adam Baratz +Kato Kazuyoshi +Eike Send +Kris Borchers +Eddie Monge +Israel Tsadok +Carson McDonald +Jason Davies +Garrison Locke +David Murdoch +Benjamin Scott Boyle +Jesse Baird +Jonathan Vingiano +Dylan Just +Hiroshi Tomita +Glenn Goodrich +Tarafder Ashek-E-Elahi +Ryan Neufeld +Marc Neuwirth +Philip Graham +Benjamin Sterling +Wesley Walser +Kouhei Sutou +Karl Kirch +Chris Kelly +Jason Oster +Felix Nagel +Alexander Polomoshnov +David Leal +Igor Milla +Dave Methvin +Florian Gutmann +Marwan Al Jubeh +Milan Broum +Sebastian Sauer +Gaëtan Muller +Michel Weimerskirch +William Griffiths +Stojce Slavkovski +David Soms +David De Sloovere +Michael P. Jung +Shannon Pekary +Dan Wellman +Matthew Edward Hutton +James Khoury +Rob Loach +Alberto Monteiro +Alex Rhea +Krzysztof Rosiński +Ryan Olton +Genie <386@mail.com> +Rick Waldron +Ian Simpson +Lev Kitsis +TJ VanToll +Justin Domnitz +Douglas Cerna +Bert ter Heide +Jasvir Nagra +Yuriy Khabarov <13real008@gmail.com> +Harri Kilpiö +Lado Lomidze +Amir E. Aharoni +Simon Sattes +Jo Liss +Guntupalli Karunakar +Shahyar Ghobadpour +Lukasz Lipinski +Timo Tijhof +Jason Moon +Martin Frost +Eneko Illarramendi +EungJun Yi +Courtland Allen +Viktar Varvanovich +Danny Trunk +Pavel Stetina +Michael Stay +Steven Roussey +Michael Hollis +Lee Rowlands +Timmy Willison +Karl Swedberg +Baoju Yuan +Maciej Mroziński +Luis Dalmolin +Mark Aaron Shirley +Martin Hoch +Jiayi Yang +Philipp Benjamin Köppchen +Sindre Sorhus +Bernhard Sirlinger +Jared A. Scheel +Rafael Xavier de Souza +John Chen +Robert Beuligmann +Dale Kocian +Mike Sherov +Andrew Couch +Marc-Andre Lafortune +Nate Eagle +David Souther +Mathias Stenbom +Sergey Kartashov +Avinash R +Ethan Romba +Cory Gackenheimer +Juan Pablo Kaniefsky +Roman Salnikov +Anika Henke +Samuel Bovée +Fabrício Matté +Viktor Kojouharov +Pawel Maruszczyk (http://hrabstwo.net) +Pavel Selitskas +Bjørn Johansen +Matthieu Penant +Dominic Barnes +David Sullivan +Thomas Jaggi +Vahid Sohrabloo +Travis Carden +Bruno M. Custódio +Nathanael Silverman +Christian Wenz +Steve Urmston +Zaven Muradyan +Woody Gilk +Zbigniew Motyka +Suhail Alkowaileet +Toshi MARUYAMA +David Hansen +Brian Grinstead +Christian Klammer +Steven Luscher +Gan Eng Chin +Gabriel Schulhof +Alexander Schmitz +Vilhjálmur Skúlason +Siebrand Mazeland +Mohsen Ekhtiari +Pere Orga +Jasper de Groot +Stephane Deschamps +Jyoti Deka +Andrei Picus +Ondrej Novy +Jacob McCutcheon +Monika Piotrowicz +Imants Horsts +Eric Dahl +Dave Stein +Dylan Barrell +Daniel DeGroff +Michael Wiencek +Thomas Meyer +Ruslan Yakhyaev +Brian J. Dowling +Ben Higgins +Yermo Lamers +Patrick Stapleton +Trisha Crowley +Usman Akeju +Rodrigo Menezes +Jacques Perrault +Frederik Elvhage +Will Holley +Uri Gilad +Richard Gibson +Simen Bekkhus +Chen Eshchar +Bruno Pérel +Mohammed Alshehri +Lisa Seacat DeLuca +Anne-Gaelle Colom +Adam Foster +Luke Page +Daniel Owens +Michael Orchard +Marcus Warren +Nils Heuermann +Marco Ziech +Patricia Juarez +Ben Mosher +Ablay Keldibek +Thomas Applencourt +Jiabao Wu +Eric Lee Carraway +Victor Homyakov +Myeongjin Lee +Liran Sharir +Weston Ruter +Mani Mishra +Hannah Methvin +Leonardo Balter +Benjamin Albert +Michał Gołębiowski +Alyosha Pushak +Fahad Ahmad +Matt Brundage +Francesc Baeta +Piotr Baran +Mukul Hase +Konstantin Dinev +Rand Scullard +Dan Strohl +Maksim Ryzhikov +Amine HADDAD +Amanpreet Singh +Alexey Balchunas +Peter Kehl +Peter Dave Hello +Johannes Schäfer +Ville Skyttä +Ryan Oriecuia diff --git a/e107_web/lib/jquery-ui/LICENSE.txt b/e107_web/lib/jquery-ui/LICENSE.txt new file mode 100644 index 000000000..4819e5421 --- /dev/null +++ b/e107_web/lib/jquery-ui/LICENSE.txt @@ -0,0 +1,43 @@ +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. diff --git a/e107_web/lib/jquery-ui/images/ui-icons_444444_256x240.png b/e107_web/lib/jquery-ui/images/ui-icons_444444_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..c2daae1663d47f397a01fd4166bce9b6b9ac4183 GIT binary patch literal 7006 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 W$6)X8PycD00qQC`%4LeS5&s7ix^mY5 literal 0 HcmV?d00001 diff --git a/e107_web/lib/jquery-ui/images/ui-icons_777620_256x240.png b/e107_web/lib/jquery-ui/images/ui-icons_777620_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f58d25581c605a5538fa50408fe09c4a30740d GIT binary patch literal 4676 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 literal 0 HcmV?d00001 diff --git a/e107_web/lib/jquery-ui/images/ui-icons_777777_256x240.png b/e107_web/lib/jquery-ui/images/ui-icons_777777_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1d532588b989c5fd03e7a63f7e829b017c35d3cf GIT binary patch literal 7013 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 ZrDX-T^mH1q5`RzvpbBd8WwK_0{|mNJD+vGq literal 0 HcmV?d00001 diff --git a/e107_web/lib/jquery-ui/images/ui-icons_cc0000_256x240.png b/e107_web/lib/jquery-ui/images/ui-icons_cc0000_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2825f2004d10b413a76317d47384e6139abcbe00 GIT binary patch literal 4632 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 Hjt~C}Fe}Pt literal 0 HcmV?d00001 diff --git a/e107_web/lib/jquery-ui/jquery-ui.css b/e107_web/lib/jquery-ui/jquery-ui.css new file mode 100644 index 000000000..93707f4cb --- /dev/null +++ b/e107_web/lib/jquery-ui/jquery-ui.css @@ -0,0 +1,1312 @@ +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6 +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.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:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + font-size: 100%; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: 0; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + cursor: pointer; + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-item-wrapper { + position: relative; + padding: 3px 1em 3px .4em; +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item-wrapper { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-button { + padding: .4em 1em; + display: inline-block; + position: relative; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + /* Support: IE <= 11 */ + overflow: visible; +} + +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} + +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2em; + box-sizing: border-box; + text-indent: -9999px; + white-space: nowrap; +} + +/* no icon support for input elements */ +input.ui-button.ui-button-icon-only { + text-indent: 0; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon { + position: absolute; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; +} + +.ui-button.ui-icon-notext .ui-icon { + padding: 0; + width: 2.1em; + height: 2.1em; + text-indent: -9999px; + white-space: nowrap; + +} + +input.ui-button.ui-icon-notext .ui-icon { + width: auto; + height: auto; + text-indent: 0; + white-space: normal; + padding: .4em 1em; +} + +/* workarounds */ +/* Support: Firefox 5 - 40 */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-controlgroup { + vertical-align: middle; + display: inline-block; +} +.ui-controlgroup > .ui-controlgroup-item { + float: left; + margin-left: 0; + margin-right: 0; +} +.ui-controlgroup > .ui-controlgroup-item:focus, +.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { + z-index: 9999; +} +.ui-controlgroup-vertical > .ui-controlgroup-item { + display: block; + float: none; + width: 100%; + margin-top: 0; + margin-bottom: 0; + text-align: left; +} +.ui-controlgroup-vertical .ui-controlgroup-item { + box-sizing: border-box; +} +.ui-controlgroup .ui-controlgroup-label { + padding: .4em 1em; +} +.ui-controlgroup .ui-controlgroup-label span { + font-size: 80%; +} +.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { + border-left: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { + border-top: none; +} +.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { + border-right: none; +} +.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { + border-bottom: none; +} + +/* Spinner specific style fixes */ +.ui-controlgroup-vertical .ui-spinner-input { + + /* Support: IE8 only, Android < 4.4 only */ + width: 75%; + width: calc( 100% - 2.4em ); +} +.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { + border-top-style: solid; +} + +.ui-checkboxradio-label .ui-icon-background { + box-shadow: inset 1px 1px 1px #ccc; + border-radius: .12em; + border: none; +} +.ui-checkboxradio-radio-label .ui-icon-background { + width: 16px; + height: 16px; + border-radius: 1em; + overflow: visible; + border: none; +} +.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, +.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { + background-image: none; + width: 8px; + height: 8px; + border-width: 4px; + border-style: solid; +} +.ui-checkboxradio-disabled { + pointer-events: none; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.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 { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.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, +.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%; + font-size: 0; +} + +/* 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, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-n { + height: 2px; + top: 0; +} +.ui-dialog .ui-resizable-e { + width: 2px; + right: 0; +} +.ui-dialog .ui-resizable-s { + height: 2px; + bottom: 0; +} +.ui-dialog .ui-resizable-w { + width: 2px; + left: 0; +} +.ui-dialog .ui-resizable-se, +.ui-dialog .ui-resizable-sw, +.ui-dialog .ui-resizable-ne, +.ui-dialog .ui-resizable-nw { + width: 7px; + height: 7px; +} +.ui-dialog .ui-resizable-se { + right: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-sw { + left: 0; + bottom: 0; +} +.ui-dialog .ui-resizable-ne { + right: 0; + top: 0; +} +.ui-dialog .ui-resizable-nw { + left: 0; + top: 0; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.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: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + 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; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,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"); + height: 100%; + filter: alpha(opacity=25); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-text { + display: block; + margin-right: 20px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-selectmenu-button.ui-button { + text-align: left; + white-space: nowrap; + width: 14em; +} +.ui-selectmenu-icon.ui-icon { + float: right; + margin-top: 0; +} +.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; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.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; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: .222em 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 2em; +} +.ui-spinner-button { + width: 1.6em; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top-style: none; + border-bottom-style: none; + border-right-style: none; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget.ui-widget-content { + border: 1px solid #c5c5c5; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, + +/* We use html here because we need a greater specificity to make sure disabled +works properly when clicked or hovered */ +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited, +a.ui-button, +a:link.ui-button, +a:visited.ui-button, +.ui-button { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited, +a.ui-button:hover, +a.ui-button:focus { + color: #2b2b2b; + text-decoration: none; +} + +.ui-visual-focus { + box-shadow: 0 0 3px 1px rgb(94, 158, 214); +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-icon-background, +.ui-state-active .ui-icon-background { + border: #003eff; + background-color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-checked { + border: 1px solid #dad55e; + background: #fffa90; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_444444_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon, +.ui-button:hover .ui-icon, +.ui-button:focus .ui-icon { + background-image: url("images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon, +.ui-button:active .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon, +.ui-button .ui-state-highlight.ui-icon { + background-image: url("images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cc0000_256x240.png"); +} +.ui-button .ui-icon { + background-image: url("images/ui-icons_777777_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-caret-1-n { background-position: 0 0; } +.ui-icon-caret-1-ne { background-position: -16px 0; } +.ui-icon-caret-1-e { background-position: -32px 0; } +.ui-icon-caret-1-se { background-position: -48px 0; } +.ui-icon-caret-1-s { background-position: -65px 0; } +.ui-icon-caret-1-sw { background-position: -80px 0; } +.ui-icon-caret-1-w { background-position: -96px 0; } +.ui-icon-caret-1-nw { background-position: -112px 0; } +.ui-icon-caret-2-n-s { background-position: -128px 0; } +.ui-icon-caret-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: -65px -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: -65px -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: 1px -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-on { background-position: -96px -144px; } +.ui-icon-radio-off { 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-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.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-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .003; + filter: Alpha(Opacity=.3); /* support: IE8 */ +} +.ui-widget-shadow { + -webkit-box-shadow: 0px 0px 5px #666666; + box-shadow: 0px 0px 5px #666666; +} diff --git a/e107_web/lib/jquery-ui/jquery-ui.js b/e107_web/lib/jquery-ui/jquery-ui.js new file mode 100644 index 000000000..021355237 --- /dev/null +++ b/e107_web/lib/jquery-ui/jquery-ui.js @@ -0,0 +1,18706 @@ +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.12.1"; + + +/*! + * jQuery UI Widget 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: http://api.jqueryui.com/jQuery.widget/ +//>>demos: http://jqueryui.com/widget/ + + + +var widgetUuid = 0; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // Http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( $.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "

", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + current = $( $.unique( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + this._on( options.element, { + "remove": "_untrackClassesElement" + } ); + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ).off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI Position 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +//>>label: Position +//>>group: Core +//>>description: Positions elements relative to other elements. +//>>docs: http://api.jqueryui.com/position/ +//>>demos: http://jqueryui.com/position/ + + +( function() { +var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function getDimensions( elem ) { + var raw = elem[ 0 ]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( $.isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" + + "
" ), + innerDiv = div.children()[ 0 ]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[ 0 ].clientWidth; + } + + div.remove(); + + return ( cachedScrollbarWidth = w1 - w2 ); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[ 0 ] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, + hasOffset = !isWindow && !isDocument; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: withinElement.outerWidth(), + height: withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // Make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[ 0 ].preventDefault ) { + + // Force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + + // Clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // Force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1 ) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // Calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // Reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + } ); + + // Normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each( function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + } ); + } + } ); + + if ( options.using ) { + + // Adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + } ); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // Element is wider than within + if ( data.collisionWidth > outerWidth ) { + + // Element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; + position.left += overLeft - newOverRight; + + // Element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + + // Element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + + // Too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + + // Too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + + // Adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // Element is taller than within + if ( data.collisionHeight > outerHeight ) { + + // Element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; + position.top += overTop - newOverBottom; + + // Element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + + // Element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + + // Too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + + // Too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + + // Adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +} )(); + +var position = $.ui.position; + + +/*! + * jQuery UI :data 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: http://api.jqueryui.com/data-selector/ + + +var data = $.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + } ) : + + // Support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + } +} ); + +/*! + * jQuery UI Disable Selection 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: http://api.jqueryui.com/disableSelection/ + +// This file is deprecated + + +var disableSelection = $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + + +/*! + * jQuery UI Effects 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Effects Core +//>>group: Effects +// jscs:disable maximumLineLength +//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +// jscs:enable maximumLineLength +//>>docs: http://api.jqueryui.com/category/effects-core/ +//>>demos: http://jqueryui.com/effect/ + + + +var dataSpace = "ui-effects-", + dataSpaceStyle = "ui-effects-style", + dataSpaceAnimated = "ui-effects-animated", + + // Create a local jQuery because jQuery Color relies on it and the + // global may not exist with AMD and a custom build (#10199) + jQuery = $; + +$.effects = { + effect: {} +}; + +/*! + * jQuery Color Animations v2.1.2 + * https://github.com/jquery/jquery-color + * + * Copyright 2014 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * Date: Wed Jan 16 08:47:09 2013 -0600 + */ +( function( jQuery, undefined ) { + + var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " + + "borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", + + // Plusequals test for += 100 -= 100 + rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, + + // A set of RE's that can match strings and generate color tuples. + stringParsers = [ { + re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + execResult[ 1 ], + execResult[ 2 ], + execResult[ 3 ], + execResult[ 4 ] + ]; + } + }, { + re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + parse: function( execResult ) { + return [ + execResult[ 1 ] * 2.55, + execResult[ 2 ] * 2.55, + execResult[ 3 ] * 2.55, + execResult[ 4 ] + ]; + } + }, { + + // This regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ], 16 ) + ]; + } + }, { + + // This regex ignores A-F because it's compared against an already lowercased string + re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, + parse: function( execResult ) { + return [ + parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), + parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), + parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) + ]; + } + }, { + re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, + space: "hsla", + parse: function( execResult ) { + return [ + execResult[ 1 ], + execResult[ 2 ] / 100, + execResult[ 3 ] / 100, + execResult[ 4 ] + ]; + } + } ], + + // JQuery.Color( ) + color = jQuery.Color = function( color, green, blue, alpha ) { + return new jQuery.Color.fn.parse( color, green, blue, alpha ); + }, + spaces = { + rgba: { + props: { + red: { + idx: 0, + type: "byte" + }, + green: { + idx: 1, + type: "byte" + }, + blue: { + idx: 2, + type: "byte" + } + } + }, + + hsla: { + props: { + hue: { + idx: 0, + type: "degrees" + }, + saturation: { + idx: 1, + type: "percent" + }, + lightness: { + idx: 2, + type: "percent" + } + } + } + }, + propTypes = { + "byte": { + floor: true, + max: 255 + }, + "percent": { + max: 1 + }, + "degrees": { + mod: 360, + floor: true + } + }, + support = color.support = {}, + + // Element for support tests + supportElem = jQuery( "

" )[ 0 ], + + // Colors = jQuery.Color.names + colors, + + // Local aliases of functions called often + each = jQuery.each; + +// Determine rgba support immediately +supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; +support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; + +// Define cache name and alpha properties +// for rgba and hsla spaces +each( spaces, function( spaceName, space ) { + space.cache = "_" + spaceName; + space.props.alpha = { + idx: 3, + type: "percent", + def: 1 + }; +} ); + +function clamp( value, prop, allowEmpty ) { + var type = propTypes[ prop.type ] || {}; + + if ( value == null ) { + return ( allowEmpty || !prop.def ) ? null : prop.def; + } + + // ~~ is an short way of doing floor for positive numbers + value = type.floor ? ~~value : parseFloat( value ); + + // IE will pass in empty strings as value for alpha, + // which will hit this case + if ( isNaN( value ) ) { + return prop.def; + } + + if ( type.mod ) { + + // We add mod before modding to make sure that negatives values + // get converted properly: -10 -> 350 + return ( value + type.mod ) % type.mod; + } + + // For now all property types without mod have min and max + return 0 > value ? 0 : type.max < value ? type.max : value; +} + +function stringParse( string ) { + var inst = color(), + rgba = inst._rgba = []; + + string = string.toLowerCase(); + + each( stringParsers, function( i, parser ) { + var parsed, + match = parser.re.exec( string ), + values = match && parser.parse( match ), + spaceName = parser.space || "rgba"; + + if ( values ) { + parsed = inst[ spaceName ]( values ); + + // If this was an rgba parse the assignment might happen twice + // oh well.... + inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; + rgba = inst._rgba = parsed._rgba; + + // Exit each( stringParsers ) here because we matched + return false; + } + } ); + + // Found a stringParser that handled it + if ( rgba.length ) { + + // If this came from a parsed string, force "transparent" when alpha is 0 + // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) + if ( rgba.join() === "0,0,0,0" ) { + jQuery.extend( rgba, colors.transparent ); + } + return inst; + } + + // Named colors + return colors[ string ]; +} + +color.fn = jQuery.extend( color.prototype, { + parse: function( red, green, blue, alpha ) { + if ( red === undefined ) { + this._rgba = [ null, null, null, null ]; + return this; + } + if ( red.jquery || red.nodeType ) { + red = jQuery( red ).css( green ); + green = undefined; + } + + var inst = this, + type = jQuery.type( red ), + rgba = this._rgba = []; + + // More than 1 argument specified - assume ( red, green, blue, alpha ) + if ( green !== undefined ) { + red = [ red, green, blue, alpha ]; + type = "array"; + } + + if ( type === "string" ) { + return this.parse( stringParse( red ) || colors._default ); + } + + if ( type === "array" ) { + each( spaces.rgba.props, function( key, prop ) { + rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); + } ); + return this; + } + + if ( type === "object" ) { + if ( red instanceof color ) { + each( spaces, function( spaceName, space ) { + if ( red[ space.cache ] ) { + inst[ space.cache ] = red[ space.cache ].slice(); + } + } ); + } else { + each( spaces, function( spaceName, space ) { + var cache = space.cache; + each( space.props, function( key, prop ) { + + // If the cache doesn't exist, and we know how to convert + if ( !inst[ cache ] && space.to ) { + + // If the value was null, we don't need to copy it + // if the key was alpha, we don't need to copy it either + if ( key === "alpha" || red[ key ] == null ) { + return; + } + inst[ cache ] = space.to( inst._rgba ); + } + + // This is the only case where we allow nulls for ALL properties. + // call clamp with alwaysAllowEmpty + inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); + } ); + + // Everything defined but alpha? + if ( inst[ cache ] && + jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { + + // Use the default of 1 + inst[ cache ][ 3 ] = 1; + if ( space.from ) { + inst._rgba = space.from( inst[ cache ] ); + } + } + } ); + } + return this; + } + }, + is: function( compare ) { + var is = color( compare ), + same = true, + inst = this; + + each( spaces, function( _, space ) { + var localCache, + isCache = is[ space.cache ]; + if ( isCache ) { + localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; + each( space.props, function( _, prop ) { + if ( isCache[ prop.idx ] != null ) { + same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); + return same; + } + } ); + } + return same; + } ); + return same; + }, + _space: function() { + var used = [], + inst = this; + each( spaces, function( spaceName, space ) { + if ( inst[ space.cache ] ) { + used.push( spaceName ); + } + } ); + return used.pop(); + }, + transition: function( other, distance ) { + var end = color( other ), + spaceName = end._space(), + space = spaces[ spaceName ], + startColor = this.alpha() === 0 ? color( "transparent" ) : this, + start = startColor[ space.cache ] || space.to( startColor._rgba ), + result = start.slice(); + + end = end[ space.cache ]; + each( space.props, function( key, prop ) { + var index = prop.idx, + startValue = start[ index ], + endValue = end[ index ], + type = propTypes[ prop.type ] || {}; + + // If null, don't override start value + if ( endValue === null ) { + return; + } + + // If null - use end + if ( startValue === null ) { + result[ index ] = endValue; + } else { + if ( type.mod ) { + if ( endValue - startValue > type.mod / 2 ) { + startValue += type.mod; + } else if ( startValue - endValue > type.mod / 2 ) { + startValue -= type.mod; + } + } + result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); + } + } ); + return this[ spaceName ]( result ); + }, + blend: function( opaque ) { + + // If we are already opaque - return ourself + if ( this._rgba[ 3 ] === 1 ) { + return this; + } + + var rgb = this._rgba.slice(), + a = rgb.pop(), + blend = color( opaque )._rgba; + + return color( jQuery.map( rgb, function( v, i ) { + return ( 1 - a ) * blend[ i ] + a * v; + } ) ); + }, + toRgbaString: function() { + var prefix = "rgba(", + rgba = jQuery.map( this._rgba, function( v, i ) { + return v == null ? ( i > 2 ? 1 : 0 ) : v; + } ); + + if ( rgba[ 3 ] === 1 ) { + rgba.pop(); + prefix = "rgb("; + } + + return prefix + rgba.join() + ")"; + }, + toHslaString: function() { + var prefix = "hsla(", + hsla = jQuery.map( this.hsla(), function( v, i ) { + if ( v == null ) { + v = i > 2 ? 1 : 0; + } + + // Catch 1 and 2 + if ( i && i < 3 ) { + v = Math.round( v * 100 ) + "%"; + } + return v; + } ); + + if ( hsla[ 3 ] === 1 ) { + hsla.pop(); + prefix = "hsl("; + } + return prefix + hsla.join() + ")"; + }, + toHexString: function( includeAlpha ) { + var rgba = this._rgba.slice(), + alpha = rgba.pop(); + + if ( includeAlpha ) { + rgba.push( ~~( alpha * 255 ) ); + } + + return "#" + jQuery.map( rgba, function( v ) { + + // Default to 0 when nulls exist + v = ( v || 0 ).toString( 16 ); + return v.length === 1 ? "0" + v : v; + } ).join( "" ); + }, + toString: function() { + return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); + } +} ); +color.fn.parse.prototype = color.fn; + +// Hsla conversions adapted from: +// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 + +function hue2rgb( p, q, h ) { + h = ( h + 1 ) % 1; + if ( h * 6 < 1 ) { + return p + ( q - p ) * h * 6; + } + if ( h * 2 < 1 ) { + return q; + } + if ( h * 3 < 2 ) { + return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6; + } + return p; +} + +spaces.hsla.to = function( rgba ) { + if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { + return [ null, null, null, rgba[ 3 ] ]; + } + var r = rgba[ 0 ] / 255, + g = rgba[ 1 ] / 255, + b = rgba[ 2 ] / 255, + a = rgba[ 3 ], + max = Math.max( r, g, b ), + min = Math.min( r, g, b ), + diff = max - min, + add = max + min, + l = add * 0.5, + h, s; + + if ( min === max ) { + h = 0; + } else if ( r === max ) { + h = ( 60 * ( g - b ) / diff ) + 360; + } else if ( g === max ) { + h = ( 60 * ( b - r ) / diff ) + 120; + } else { + h = ( 60 * ( r - g ) / diff ) + 240; + } + + // Chroma (diff) == 0 means greyscale which, by definition, saturation = 0% + // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) + if ( diff === 0 ) { + s = 0; + } else if ( l <= 0.5 ) { + s = diff / add; + } else { + s = diff / ( 2 - add ); + } + return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ]; +}; + +spaces.hsla.from = function( hsla ) { + if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { + return [ null, null, null, hsla[ 3 ] ]; + } + var h = hsla[ 0 ] / 360, + s = hsla[ 1 ], + l = hsla[ 2 ], + a = hsla[ 3 ], + q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, + p = 2 * l - q; + + return [ + Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), + Math.round( hue2rgb( p, q, h ) * 255 ), + Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), + a + ]; +}; + +each( spaces, function( spaceName, space ) { + var props = space.props, + cache = space.cache, + to = space.to, + from = space.from; + + // Makes rgba() and hsla() + color.fn[ spaceName ] = function( value ) { + + // Generate a cache for this space if it doesn't exist + if ( to && !this[ cache ] ) { + this[ cache ] = to( this._rgba ); + } + if ( value === undefined ) { + return this[ cache ].slice(); + } + + var ret, + type = jQuery.type( value ), + arr = ( type === "array" || type === "object" ) ? value : arguments, + local = this[ cache ].slice(); + + each( props, function( key, prop ) { + var val = arr[ type === "object" ? key : prop.idx ]; + if ( val == null ) { + val = local[ prop.idx ]; + } + local[ prop.idx ] = clamp( val, prop ); + } ); + + if ( from ) { + ret = color( from( local ) ); + ret[ cache ] = local; + return ret; + } else { + return color( local ); + } + }; + + // Makes red() green() blue() alpha() hue() saturation() lightness() + each( props, function( key, prop ) { + + // Alpha is included in more than one space + if ( color.fn[ key ] ) { + return; + } + color.fn[ key ] = function( value ) { + var vtype = jQuery.type( value ), + fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), + local = this[ fn ](), + cur = local[ prop.idx ], + match; + + if ( vtype === "undefined" ) { + return cur; + } + + if ( vtype === "function" ) { + value = value.call( this, cur ); + vtype = jQuery.type( value ); + } + if ( value == null && prop.empty ) { + return this; + } + if ( vtype === "string" ) { + match = rplusequals.exec( value ); + if ( match ) { + value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); + } + } + local[ prop.idx ] = value; + return this[ fn ]( local ); + }; + } ); +} ); + +// Add cssHook and .fx.step function for each named hook. +// accept a space separated string of properties +color.hook = function( hook ) { + var hooks = hook.split( " " ); + each( hooks, function( i, hook ) { + jQuery.cssHooks[ hook ] = { + set: function( elem, value ) { + var parsed, curElem, + backgroundColor = ""; + + if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || + ( parsed = stringParse( value ) ) ) ) { + value = color( parsed || value ); + if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { + curElem = hook === "backgroundColor" ? elem.parentNode : elem; + while ( + ( backgroundColor === "" || backgroundColor === "transparent" ) && + curElem && curElem.style + ) { + try { + backgroundColor = jQuery.css( curElem, "backgroundColor" ); + curElem = curElem.parentNode; + } catch ( e ) { + } + } + + value = value.blend( backgroundColor && backgroundColor !== "transparent" ? + backgroundColor : + "_default" ); + } + + value = value.toRgbaString(); + } + try { + elem.style[ hook ] = value; + } catch ( e ) { + + // Wrapped to prevent IE from throwing errors on "invalid" values like + // 'auto' or 'inherit' + } + } + }; + jQuery.fx.step[ hook ] = function( fx ) { + if ( !fx.colorInit ) { + fx.start = color( fx.elem, hook ); + fx.end = color( fx.end ); + fx.colorInit = true; + } + jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); + }; + } ); + +}; + +color.hook( stepHooks ); + +jQuery.cssHooks.borderColor = { + expand: function( value ) { + var expanded = {}; + + each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { + expanded[ "border" + part + "Color" ] = value; + } ); + return expanded; + } +}; + +// Basic color names only. +// Usage of any of the other color names requires adding yourself or including +// jquery.color.svg-names.js. +colors = jQuery.Color.names = { + + // 4.1. Basic color keywords + aqua: "#00ffff", + black: "#000000", + blue: "#0000ff", + fuchsia: "#ff00ff", + gray: "#808080", + green: "#008000", + lime: "#00ff00", + maroon: "#800000", + navy: "#000080", + olive: "#808000", + purple: "#800080", + red: "#ff0000", + silver: "#c0c0c0", + teal: "#008080", + white: "#ffffff", + yellow: "#ffff00", + + // 4.2.3. "transparent" color keyword + transparent: [ null, null, null, 0 ], + + _default: "#ffffff" +}; + +} )( jQuery ); + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ +( function() { + +var classAnimationActions = [ "add", "remove", "toggle" ], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }; + +$.each( + [ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], + function( _, prop ) { + $.fx.step[ prop ] = function( fx ) { + if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { + jQuery.style( fx.elem, prop, fx.end ); + fx.setAttr = true; + } + }; + } +); + +function getElementStyles( elem ) { + var key, len, + style = elem.ownerDocument.defaultView ? + elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : + elem.currentStyle, + styles = {}; + + if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { + len = style.length; + while ( len-- ) { + key = style[ len ]; + if ( typeof style[ key ] === "string" ) { + styles[ $.camelCase( key ) ] = style[ key ]; + } + } + + // Support: Opera, IE <9 + } else { + for ( key in style ) { + if ( typeof style[ key ] === "string" ) { + styles[ key ] = style[ key ]; + } + } + } + + return styles; +} + +function styleDifference( oldStyle, newStyle ) { + var diff = {}, + name, value; + + for ( name in newStyle ) { + value = newStyle[ name ]; + if ( oldStyle[ name ] !== value ) { + if ( !shorthandStyles[ name ] ) { + if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { + diff[ name ] = value; + } + } + } + } + + return diff; +} + +// Support: jQuery <1.8 +if ( !$.fn.addBack ) { + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +$.effects.animateClass = function( value, duration, easing, callback ) { + var o = $.speed( duration, easing, callback ); + + return this.queue( function() { + var animated = $( this ), + baseClass = animated.attr( "class" ) || "", + applyClassChange, + allAnimations = o.children ? animated.find( "*" ).addBack() : animated; + + // Map the animated objects to store the original styles. + allAnimations = allAnimations.map( function() { + var el = $( this ); + return { + el: el, + start: getElementStyles( this ) + }; + } ); + + // Apply class change + applyClassChange = function() { + $.each( classAnimationActions, function( i, action ) { + if ( value[ action ] ) { + animated[ action + "Class" ]( value[ action ] ); + } + } ); + }; + applyClassChange(); + + // Map all animated objects again - calculate new styles and diff + allAnimations = allAnimations.map( function() { + this.end = getElementStyles( this.el[ 0 ] ); + this.diff = styleDifference( this.start, this.end ); + return this; + } ); + + // Apply original class + animated.attr( "class", baseClass ); + + // Map all animated objects again - this time collecting a promise + allAnimations = allAnimations.map( function() { + var styleInfo = this, + dfd = $.Deferred(), + opts = $.extend( {}, o, { + queue: false, + complete: function() { + dfd.resolve( styleInfo ); + } + } ); + + this.el.animate( this.diff, opts ); + return dfd.promise(); + } ); + + // Once all animations have completed: + $.when.apply( $, allAnimations.get() ).done( function() { + + // Set the final class + applyClassChange(); + + // For each animated element, + // clear all css properties that were animated + $.each( arguments, function() { + var el = this.el; + $.each( this.diff, function( key ) { + el.css( key, "" ); + } ); + } ); + + // This is guarnteed to be there if you use jQuery.speed() + // it also handles dequeuing the next anim... + o.complete.call( animated[ 0 ] ); + } ); + } ); +}; + +$.fn.extend( { + addClass: ( function( orig ) { + return function( classNames, speed, easing, callback ) { + return speed ? + $.effects.animateClass.call( this, + { add: classNames }, speed, easing, callback ) : + orig.apply( this, arguments ); + }; + } )( $.fn.addClass ), + + removeClass: ( function( orig ) { + return function( classNames, speed, easing, callback ) { + return arguments.length > 1 ? + $.effects.animateClass.call( this, + { remove: classNames }, speed, easing, callback ) : + orig.apply( this, arguments ); + }; + } )( $.fn.removeClass ), + + toggleClass: ( function( orig ) { + return function( classNames, force, speed, easing, callback ) { + if ( typeof force === "boolean" || force === undefined ) { + if ( !speed ) { + + // Without speed parameter + return orig.apply( this, arguments ); + } else { + return $.effects.animateClass.call( this, + ( force ? { add: classNames } : { remove: classNames } ), + speed, easing, callback ); + } + } else { + + // Without force parameter + return $.effects.animateClass.call( this, + { toggle: classNames }, force, speed, easing ); + } + }; + } )( $.fn.toggleClass ), + + switchClass: function( remove, add, speed, easing, callback ) { + return $.effects.animateClass.call( this, { + add: add, + remove: remove + }, speed, easing, callback ); + } +} ); + +} )(); + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +( function() { + +if ( $.expr && $.expr.filters && $.expr.filters.animated ) { + $.expr.filters.animated = ( function( orig ) { + return function( elem ) { + return !!$( elem ).data( dataSpaceAnimated ) || orig( elem ); + }; + } )( $.expr.filters.animated ); +} + +if ( $.uiBackCompat !== false ) { + $.extend( $.effects, { + + // Saves a set of properties in a data storage + save: function( element, set ) { + var i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); + } + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function( element, set ) { + var val, i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + val = element.data( dataSpace + set[ i ] ); + element.css( set[ i ], val ); + } + } + }, + + setMode: function( el, mode ) { + if ( mode === "toggle" ) { + mode = el.is( ":hidden" ) ? "show" : "hide"; + } + return mode; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function( element ) { + + // If the element is already wrapped, return it + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + return element.parent(); + } + + // Wrap the element + var props = { + width: element.outerWidth( true ), + height: element.outerHeight( true ), + "float": element.css( "float" ) + }, + wrapper = $( "

" ) + .addClass( "ui-effects-wrapper" ) + .css( { + fontSize: "100%", + background: "transparent", + border: "none", + margin: 0, + padding: 0 + } ), + + // Store the size in case width/height are defined in % - Fixes #5245 + size = { + width: element.width(), + height: element.height() + }, + active = document.activeElement; + + // Support: Firefox + // Firefox incorrectly exposes anonymous content + // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 + try { + active.id; + } catch ( e ) { + active = document.body; + } + + element.wrap( wrapper ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + + // Hotfix for jQuery 1.4 since some change in wrap() seems to actually + // lose the reference to the wrapped element + wrapper = element.parent(); + + // Transfer positioning properties to the wrapper + if ( element.css( "position" ) === "static" ) { + wrapper.css( { position: "relative" } ); + element.css( { position: "relative" } ); + } else { + $.extend( props, { + position: element.css( "position" ), + zIndex: element.css( "z-index" ) + } ); + $.each( [ "top", "left", "bottom", "right" ], function( i, pos ) { + props[ pos ] = element.css( pos ); + if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { + props[ pos ] = "auto"; + } + } ); + element.css( { + position: "relative", + top: 0, + left: 0, + right: "auto", + bottom: "auto" + } ); + } + element.css( size ); + + return wrapper.css( props ).show(); + }, + + removeWrapper: function( element ) { + var active = document.activeElement; + + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + element.parent().replaceWith( element ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + } + + return element; + } + } ); +} + +$.extend( $.effects, { + version: "1.12.1", + + define: function( name, mode, effect ) { + if ( !effect ) { + effect = mode; + mode = "effect"; + } + + $.effects.effect[ name ] = effect; + $.effects.effect[ name ].mode = mode; + + return effect; + }, + + scaledDimensions: function( element, percent, direction ) { + if ( percent === 0 ) { + return { + height: 0, + width: 0, + outerHeight: 0, + outerWidth: 0 + }; + } + + var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1, + y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1; + + return { + height: element.height() * y, + width: element.width() * x, + outerHeight: element.outerHeight() * y, + outerWidth: element.outerWidth() * x + }; + + }, + + clipToBox: function( animation ) { + return { + width: animation.clip.right - animation.clip.left, + height: animation.clip.bottom - animation.clip.top, + left: animation.clip.left, + top: animation.clip.top + }; + }, + + // Injects recently queued functions to be first in line (after "inprogress") + unshift: function( element, queueLength, count ) { + var queue = element.queue(); + + if ( queueLength > 1 ) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queueLength, count ) ) ); + } + element.dequeue(); + }, + + saveStyle: function( element ) { + element.data( dataSpaceStyle, element[ 0 ].style.cssText ); + }, + + restoreStyle: function( element ) { + element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || ""; + element.removeData( dataSpaceStyle ); + }, + + mode: function( element, mode ) { + var hidden = element.is( ":hidden" ); + + if ( mode === "toggle" ) { + mode = hidden ? "show" : "hide"; + } + if ( hidden ? mode === "hide" : mode === "show" ) { + mode = "none"; + } + return mode; + }, + + // Translates a [top,left] array into a baseline value + getBaseline: function( origin, original ) { + var y, x; + + switch ( origin[ 0 ] ) { + case "top": + y = 0; + break; + case "middle": + y = 0.5; + break; + case "bottom": + y = 1; + break; + default: + y = origin[ 0 ] / original.height; + } + + switch ( origin[ 1 ] ) { + case "left": + x = 0; + break; + case "center": + x = 0.5; + break; + case "right": + x = 1; + break; + default: + x = origin[ 1 ] / original.width; + } + + return { + x: x, + y: y + }; + }, + + // Creates a placeholder element so that the original element can be made absolute + createPlaceholder: function( element ) { + var placeholder, + cssPosition = element.css( "position" ), + position = element.position(); + + // Lock in margins first to account for form elements, which + // will change margin if you explicitly set height + // see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380 + // Support: Safari + element.css( { + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ) + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ); + + if ( /^(static|relative)/.test( cssPosition ) ) { + cssPosition = "absolute"; + + placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( { + + // Convert inline to inline block to account for inline elements + // that turn to inline block based on content (like img) + display: /^(inline|ruby)/.test( element.css( "display" ) ) ? + "inline-block" : + "block", + visibility: "hidden", + + // Margins need to be set to account for margin collapse + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ), + "float": element.css( "float" ) + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ) + .addClass( "ui-effects-placeholder" ); + + element.data( dataSpace + "placeholder", placeholder ); + } + + element.css( { + position: cssPosition, + left: position.left, + top: position.top + } ); + + return placeholder; + }, + + removePlaceholder: function( element ) { + var dataKey = dataSpace + "placeholder", + placeholder = element.data( dataKey ); + + if ( placeholder ) { + placeholder.remove(); + element.removeData( dataKey ); + } + }, + + // Removes a placeholder if it exists and restores + // properties that were modified during placeholder creation + cleanUp: function( element ) { + $.effects.restoreStyle( element ); + $.effects.removePlaceholder( element ); + }, + + setTransition: function( element, list, factor, value ) { + value = value || {}; + $.each( list, function( i, x ) { + var unit = element.cssUnit( x ); + if ( unit[ 0 ] > 0 ) { + value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; + } + } ); + return value; + } +} ); + +// Return an effect options object for the given parameters: +function _normalizeArguments( effect, options, speed, callback ) { + + // Allow passing all options as the first parameter + if ( $.isPlainObject( effect ) ) { + options = effect; + effect = effect.effect; + } + + // Convert to an object + effect = { effect: effect }; + + // Catch (effect, null, ...) + if ( options == null ) { + options = {}; + } + + // Catch (effect, callback) + if ( $.isFunction( options ) ) { + callback = options; + speed = null; + options = {}; + } + + // Catch (effect, speed, ?) + if ( typeof options === "number" || $.fx.speeds[ options ] ) { + callback = speed; + speed = options; + options = {}; + } + + // Catch (effect, options, callback) + if ( $.isFunction( speed ) ) { + callback = speed; + speed = null; + } + + // Add options to effect + if ( options ) { + $.extend( effect, options ); + } + + speed = speed || options.duration; + effect.duration = $.fx.off ? 0 : + typeof speed === "number" ? speed : + speed in $.fx.speeds ? $.fx.speeds[ speed ] : + $.fx.speeds._default; + + effect.complete = callback || options.complete; + + return effect; +} + +function standardAnimationOption( option ) { + + // Valid standard speeds (nothing, number, named speed) + if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { + return true; + } + + // Invalid strings - treat as "normal" speed + if ( typeof option === "string" && !$.effects.effect[ option ] ) { + return true; + } + + // Complete callback + if ( $.isFunction( option ) ) { + return true; + } + + // Options hash (but not naming an effect) + if ( typeof option === "object" && !option.effect ) { + return true; + } + + // Didn't match any standard API + return false; +} + +$.fn.extend( { + effect: function( /* effect, options, speed, callback */ ) { + var args = _normalizeArguments.apply( this, arguments ), + effectMethod = $.effects.effect[ args.effect ], + defaultMode = effectMethod.mode, + queue = args.queue, + queueName = queue || "fx", + complete = args.complete, + mode = args.mode, + modes = [], + prefilter = function( next ) { + var el = $( this ), + normalizedMode = $.effects.mode( el, mode ) || defaultMode; + + // Sentinel for duck-punching the :animated psuedo-selector + el.data( dataSpaceAnimated, true ); + + // Save effect mode for later use, + // we can't just call $.effects.mode again later, + // as the .show() below destroys the initial state + modes.push( normalizedMode ); + + // See $.uiBackCompat inside of run() for removal of defaultMode in 1.13 + if ( defaultMode && ( normalizedMode === "show" || + ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { + el.show(); + } + + if ( !defaultMode || normalizedMode !== "none" ) { + $.effects.saveStyle( el ); + } + + if ( $.isFunction( next ) ) { + next(); + } + }; + + if ( $.fx.off || !effectMethod ) { + + // Delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args.duration, complete ); + } else { + return this.each( function() { + if ( complete ) { + complete.call( this ); + } + } ); + } + } + + function run( next ) { + var elem = $( this ); + + function cleanup() { + elem.removeData( dataSpaceAnimated ); + + $.effects.cleanUp( elem ); + + if ( args.mode === "hide" ) { + elem.hide(); + } + + done(); + } + + function done() { + if ( $.isFunction( complete ) ) { + complete.call( elem[ 0 ] ); + } + + if ( $.isFunction( next ) ) { + next(); + } + } + + // Override mode option on a per element basis, + // as toggle can be either show or hide depending on element state + args.mode = modes.shift(); + + if ( $.uiBackCompat !== false && !defaultMode ) { + if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, done ); + } + } else { + if ( args.mode === "none" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, cleanup ); + } + } + } + + // Run prefilter on all elements first to ensure that + // any showing or hiding happens before placeholder creation, + // which ensures that any layout changes are correctly captured. + return queue === false ? + this.each( prefilter ).each( run ) : + this.queue( queueName, prefilter ).queue( queueName, run ); + }, + + show: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "show"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.show ), + + hide: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "hide"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.hide ), + + toggle: ( function( orig ) { + return function( option ) { + if ( standardAnimationOption( option ) || typeof option === "boolean" ) { + return orig.apply( this, arguments ); + } else { + var args = _normalizeArguments.apply( this, arguments ); + args.mode = "toggle"; + return this.effect.call( this, args ); + } + }; + } )( $.fn.toggle ), + + cssUnit: function( key ) { + var style = this.css( key ), + val = []; + + $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { + if ( style.indexOf( unit ) > 0 ) { + val = [ parseFloat( style ), unit ]; + } + } ); + return val; + }, + + cssClip: function( clipObj ) { + if ( clipObj ) { + return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " + + clipObj.bottom + "px " + clipObj.left + "px)" ); + } + return parseClip( this.css( "clip" ), this ); + }, + + transfer: function( options, done ) { + var element = $( this ), + target = $( options.to ), + targetFixed = target.css( "position" ) === "fixed", + body = $( "body" ), + fixTop = targetFixed ? body.scrollTop() : 0, + fixLeft = targetFixed ? body.scrollLeft() : 0, + endPosition = target.offset(), + animation = { + top: endPosition.top - fixTop, + left: endPosition.left - fixLeft, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = element.offset(), + transfer = $( "
" ) + .appendTo( "body" ) + .addClass( options.className ) + .css( { + top: startPosition.top - fixTop, + left: startPosition.left - fixLeft, + height: element.innerHeight(), + width: element.innerWidth(), + position: targetFixed ? "fixed" : "absolute" + } ) + .animate( animation, options.duration, options.easing, function() { + transfer.remove(); + if ( $.isFunction( done ) ) { + done(); + } + } ); + } +} ); + +function parseClip( str, element ) { + var outerWidth = element.outerWidth(), + outerHeight = element.outerHeight(), + clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, + values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; + + return { + top: parseFloat( values[ 1 ] ) || 0, + right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), + bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), + left: parseFloat( values[ 4 ] ) || 0 + }; +} + +$.fx.step.clip = function( fx ) { + if ( !fx.clipInit ) { + fx.start = $( fx.elem ).cssClip(); + if ( typeof fx.end === "string" ) { + fx.end = parseClip( fx.end, fx.elem ); + } + fx.clipInit = true; + } + + $( fx.elem ).cssClip( { + top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top, + right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right, + bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom, + left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left + } ); +}; + +} )(); + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +( function() { + +// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing) + +var baseEasings = {}; + +$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { + baseEasings[ name ] = function( p ) { + return Math.pow( p, i + 2 ); + }; +} ); + +$.extend( baseEasings, { + Sine: function( p ) { + return 1 - Math.cos( p * Math.PI / 2 ); + }, + Circ: function( p ) { + return 1 - Math.sqrt( 1 - p * p ); + }, + Elastic: function( p ) { + return p === 0 || p === 1 ? p : + -Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 ); + }, + Back: function( p ) { + return p * p * ( 3 * p - 2 ); + }, + Bounce: function( p ) { + var pow2, + bounce = 4; + + while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} + return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); + } +} ); + +$.each( baseEasings, function( name, easeIn ) { + $.easing[ "easeIn" + name ] = easeIn; + $.easing[ "easeOut" + name ] = function( p ) { + return 1 - easeIn( 1 - p ); + }; + $.easing[ "easeInOut" + name ] = function( p ) { + return p < 0.5 ? + easeIn( p * 2 ) / 2 : + 1 - easeIn( p * -2 + 2 ) / 2; + }; +} ); + +} )(); + +var effect = $.effects; + + +/*! + * jQuery UI Effects Blind 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Blind Effect +//>>group: Effects +//>>description: Blinds the element. +//>>docs: http://api.jqueryui.com/blind-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) { + var map = { + up: [ "bottom", "top" ], + vertical: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + horizontal: [ "right", "left" ], + right: [ "left", "right" ] + }, + element = $( this ), + direction = options.direction || "up", + start = element.cssClip(), + animate = { clip: $.extend( {}, start ) }, + placeholder = $.effects.createPlaceholder( element ); + + animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ]; + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animate ) ); + } + + animate.clip = start; + } + + if ( placeholder ) { + placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing ); + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Bounce 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Bounce Effect +//>>group: Effects +//>>description: Bounces an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/bounce-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) { + var upAnim, downAnim, refValue, + element = $( this ), + + // Defaults: + mode = options.mode, + hide = mode === "hide", + show = mode === "show", + direction = options.direction || "up", + distance = options.distance, + times = options.times || 5, + + // Number of internal animations + anims = times * 2 + ( show || hide ? 1 : 0 ), + speed = options.duration / anims, + easing = options.easing, + + // Utility: + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ), + i = 0, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + refValue = element.css( ref ); + + // Default distance for the BIGGEST bounce is the outer Distance / 3 + if ( !distance ) { + distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; + } + + if ( show ) { + downAnim = { opacity: 1 }; + downAnim[ ref ] = refValue; + + // If we are showing, force opacity 0 and set the initial position + // then do the "first" animation + element + .css( "opacity", 0 ) + .css( ref, motion ? -distance * 2 : distance * 2 ) + .animate( downAnim, speed, easing ); + } + + // Start at the smallest distance if we are hiding + if ( hide ) { + distance = distance / Math.pow( 2, times - 1 ); + } + + downAnim = {}; + downAnim[ ref ] = refValue; + + // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here + for ( ; i < times; i++ ) { + upAnim = {}; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element + .animate( upAnim, speed, easing ) + .animate( downAnim, speed, easing ); + + distance = hide ? distance * 2 : distance / 2; + } + + // Last Bounce when Hiding + if ( hide ) { + upAnim = { opacity: 0 }; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element.animate( upAnim, speed, easing ); + } + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Clip 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Clip Effect +//>>group: Effects +//>>description: Clips the element on and off like an old TV. +//>>docs: http://api.jqueryui.com/clip-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) { + var start, + animate = {}, + element = $( this ), + direction = options.direction || "vertical", + both = direction === "both", + horizontal = both || direction === "horizontal", + vertical = both || direction === "vertical"; + + start = element.cssClip(); + animate.clip = { + top: vertical ? ( start.bottom - start.top ) / 2 : start.top, + right: horizontal ? ( start.right - start.left ) / 2 : start.right, + bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom, + left: horizontal ? ( start.right - start.left ) / 2 : start.left + }; + + $.effects.createPlaceholder( element ); + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + animate.clip = start; + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); + +} ); + + +/*! + * jQuery UI Effects Drop 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Drop Effect +//>>group: Effects +//>>description: Moves an element in one direction and hides it at the same time. +//>>docs: http://api.jqueryui.com/drop-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) { + + var distance, + element = $( this ), + mode = options.mode, + show = mode === "show", + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=", + oppositeMotion = ( motion === "+=" ) ? "-=" : "+=", + animation = { + opacity: 0 + }; + + $.effects.createPlaceholder( element ); + + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; + + animation[ ref ] = motion + distance; + + if ( show ) { + element.css( animation ); + + animation[ ref ] = oppositeMotion + distance; + animation.opacity = 1; + } + + // Animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Explode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Explode Effect +//>>group: Effects +// jscs:disable maximumLineLength +//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. +// jscs:enable maximumLineLength +//>>docs: http://api.jqueryui.com/explode-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) { + + var i, j, left, top, mx, my, + rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3, + cells = rows, + element = $( this ), + mode = options.mode, + show = mode === "show", + + // Show and then visibility:hidden the element before calculating offset + offset = element.show().css( "visibility", "hidden" ).offset(), + + // Width and height of a piece + width = Math.ceil( element.outerWidth() / cells ), + height = Math.ceil( element.outerHeight() / rows ), + pieces = []; + + // Children animate complete: + function childComplete() { + pieces.push( this ); + if ( pieces.length === rows * cells ) { + animComplete(); + } + } + + // Clone the element for each row and cell. + for ( i = 0; i < rows; i++ ) { // ===> + top = offset.top + i * height; + my = i - ( rows - 1 ) / 2; + + for ( j = 0; j < cells; j++ ) { // ||| + left = offset.left + j * width; + mx = j - ( cells - 1 ) / 2; + + // Create a clone of the now hidden main element that will be absolute positioned + // within a wrapper div off the -left and -top equal to size of our pieces + element + .clone() + .appendTo( "body" ) + .wrap( "
" ) + .css( { + position: "absolute", + visibility: "visible", + left: -j * width, + top: -i * height + } ) + + // Select the wrapper - make it overflow: hidden and absolute positioned based on + // where the original was located +left and +top equal to the size of pieces + .parent() + .addClass( "ui-effects-explode" ) + .css( { + position: "absolute", + overflow: "hidden", + width: width, + height: height, + left: left + ( show ? mx * width : 0 ), + top: top + ( show ? my * height : 0 ), + opacity: show ? 0 : 1 + } ) + .animate( { + left: left + ( show ? 0 : mx * width ), + top: top + ( show ? 0 : my * height ), + opacity: show ? 1 : 0 + }, options.duration || 500, options.easing, childComplete ); + } + } + + function animComplete() { + element.css( { + visibility: "visible" + } ); + $( pieces ).remove(); + done(); + } +} ); + + +/*! + * jQuery UI Effects Fade 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fade Effect +//>>group: Effects +//>>description: Fades the element. +//>>docs: http://api.jqueryui.com/fade-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) { + var show = options.mode === "show"; + + $( this ) + .css( "opacity", show ? 0 : 1 ) + .animate( { + opacity: show ? 1 : 0 + }, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Fold 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fold Effect +//>>group: Effects +//>>description: Folds an element first horizontally and then vertically. +//>>docs: http://api.jqueryui.com/fold-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) { + + // Create element + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + size = options.size || 15, + percent = /([0-9]+)%/.exec( size ), + horizFirst = !!options.horizFirst, + ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ], + duration = options.duration / 2, + + placeholder = $.effects.createPlaceholder( element ), + + start = element.cssClip(), + animation1 = { clip: $.extend( {}, start ) }, + animation2 = { clip: $.extend( {}, start ) }, + + distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ], + + queuelen = element.queue().length; + + if ( percent ) { + size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; + } + animation1.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 1 ] ] = 0; + + if ( show ) { + element.cssClip( animation2.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animation2 ) ); + } + + animation2.clip = start; + } + + // Animate + element + .queue( function( next ) { + if ( placeholder ) { + placeholder + .animate( $.effects.clipToBox( animation1 ), duration, options.easing ) + .animate( $.effects.clipToBox( animation2 ), duration, options.easing ); + } + + next(); + } ) + .animate( animation1, duration, options.easing ) + .animate( animation2, duration, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, 4 ); +} ); + + +/*! + * jQuery UI Effects Highlight 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Highlight Effect +//>>group: Effects +//>>description: Highlights the background of an element in a defined color for a custom duration. +//>>docs: http://api.jqueryui.com/highlight-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) { + var element = $( this ), + animation = { + backgroundColor: element.css( "backgroundColor" ) + }; + + if ( options.mode === "hide" ) { + animation.opacity = 0; + } + + $.effects.saveStyle( element ); + + element + .css( { + backgroundImage: "none", + backgroundColor: options.color || "#ffff99" + } ) + .animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Size 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Size Effect +//>>group: Effects +//>>description: Resize an element to a specified width and height. +//>>docs: http://api.jqueryui.com/size-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectSize = $.effects.define( "size", function( options, done ) { + + // Create element + var baseline, factor, temp, + element = $( this ), + + // Copy for children + cProps = [ "fontSize" ], + vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], + hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], + + // Set options + mode = options.mode, + restore = mode !== "effect", + scale = options.scale || "both", + origin = options.origin || [ "middle", "center" ], + position = element.css( "position" ), + pos = element.position(), + original = $.effects.scaledDimensions( element ), + from = options.from || original, + to = options.to || $.effects.scaledDimensions( element, 0 ); + + $.effects.createPlaceholder( element ); + + if ( mode === "show" ) { + temp = from; + from = to; + to = temp; + } + + // Set scaling factor + factor = { + from: { + y: from.height / original.height, + x: from.width / original.width + }, + to: { + y: to.height / original.height, + x: to.width / original.width + } + }; + + // Scale the css box + if ( scale === "box" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, vProps, factor.from.y, from ); + to = $.effects.setTransition( element, vProps, factor.to.y, to ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + from = $.effects.setTransition( element, hProps, factor.from.x, from ); + to = $.effects.setTransition( element, hProps, factor.to.x, to ); + } + } + + // Scale the content + if ( scale === "content" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, cProps, factor.from.y, from ); + to = $.effects.setTransition( element, cProps, factor.to.y, to ); + } + } + + // Adjust the position properties based on the provided origin points + if ( origin ) { + baseline = $.effects.getBaseline( origin, original ); + from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top; + from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left; + to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; + to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; + } + element.css( from ); + + // Animate the children if desired + if ( scale === "content" || scale === "both" ) { + + vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps ); + hProps = hProps.concat( [ "marginLeft", "marginRight" ] ); + + // Only animate children with width attributes specified + // TODO: is this right? should we include anything with css width specified as well + element.find( "*[width]" ).each( function() { + var child = $( this ), + childOriginal = $.effects.scaledDimensions( child ), + childFrom = { + height: childOriginal.height * factor.from.y, + width: childOriginal.width * factor.from.x, + outerHeight: childOriginal.outerHeight * factor.from.y, + outerWidth: childOriginal.outerWidth * factor.from.x + }, + childTo = { + height: childOriginal.height * factor.to.y, + width: childOriginal.width * factor.to.x, + outerHeight: childOriginal.height * factor.to.y, + outerWidth: childOriginal.width * factor.to.x + }; + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom ); + childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom ); + childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo ); + } + + if ( restore ) { + $.effects.saveStyle( child ); + } + + // Animate children + child.css( childFrom ); + child.animate( childTo, options.duration, options.easing, function() { + + // Restore children + if ( restore ) { + $.effects.restoreStyle( child ); + } + } ); + } ); + } + + // Animate + element.animate( to, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: function() { + + var offset = element.offset(); + + if ( to.opacity === 0 ) { + element.css( "opacity", from.opacity ); + } + + if ( !restore ) { + element + .css( "position", position === "static" ? "relative" : position ) + .offset( offset ); + + // Need to save style here so that automatic style restoration + // doesn't restore to the original styles from before the animation. + $.effects.saveStyle( element ); + } + + done(); + } + } ); + +} ); + + +/*! + * jQuery UI Effects Scale 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Scale Effect +//>>group: Effects +//>>description: Grows or shrinks an element and its content. +//>>docs: http://api.jqueryui.com/scale-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectScale = $.effects.define( "scale", function( options, done ) { + + // Create element + var el = $( this ), + mode = options.mode, + percent = parseInt( options.percent, 10 ) || + ( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ), + + newOptions = $.extend( true, { + from: $.effects.scaledDimensions( el ), + to: $.effects.scaledDimensions( el, percent, options.direction || "both" ), + origin: options.origin || [ "middle", "center" ] + }, options ); + + // Fade option to support puff + if ( options.fade ) { + newOptions.from.opacity = 1; + newOptions.to.opacity = 0; + } + + $.effects.effect.size.call( this, newOptions, done ); +} ); + + +/*! + * jQuery UI Effects Puff 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Puff Effect +//>>group: Effects +//>>description: Creates a puff effect by scaling the element up and hiding it at the same time. +//>>docs: http://api.jqueryui.com/puff-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) { + var newOptions = $.extend( true, {}, options, { + fade: true, + percent: parseInt( options.percent, 10 ) || 150 + } ); + + $.effects.effect.scale.call( this, newOptions, done ); +} ); + + +/*! + * jQuery UI Effects Pulsate 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Pulsate Effect +//>>group: Effects +//>>description: Pulsates an element n times by changing the opacity to zero and back. +//>>docs: http://api.jqueryui.com/pulsate-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) { + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + showhide = show || hide, + + // Showing or hiding leaves off the "last" animation + anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), + duration = options.duration / anims, + animateTo = 0, + i = 1, + queuelen = element.queue().length; + + if ( show || !element.is( ":visible" ) ) { + element.css( "opacity", 0 ).show(); + animateTo = 1; + } + + // Anims - 1 opacity "toggles" + for ( ; i < anims; i++ ) { + element.animate( { opacity: animateTo }, duration, options.easing ); + animateTo = 1 - animateTo; + } + + element.animate( { opacity: animateTo }, duration, options.easing ); + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Shake 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Shake Effect +//>>group: Effects +//>>description: Shakes an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/shake-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectShake = $.effects.define( "shake", function( options, done ) { + + var i = 1, + element = $( this ), + direction = options.direction || "left", + distance = options.distance || 20, + times = options.times || 3, + anims = times * 2 + 1, + speed = Math.round( options.duration / anims ), + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + animation = {}, + animation1 = {}, + animation2 = {}, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + // Animation + animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; + animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; + animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; + + // Animate + element.animate( animation, speed, options.easing ); + + // Shakes + for ( ; i < times; i++ ) { + element + .animate( animation1, speed, options.easing ) + .animate( animation2, speed, options.easing ); + } + + element + .animate( animation1, speed, options.easing ) + .animate( animation, speed / 2, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + + +/*! + * jQuery UI Effects Slide 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Slide Effect +//>>group: Effects +//>>description: Slides an element in and out of the viewport. +//>>docs: http://api.jqueryui.com/slide-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) { + var startClip, startRef, + element = $( this ), + map = { + up: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + right: [ "left", "right" ] + }, + mode = options.mode, + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ), + animation = {}; + + $.effects.createPlaceholder( element ); + + startClip = element.cssClip(); + startRef = element.position()[ ref ]; + + // Define hide animation + animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef; + animation.clip = element.cssClip(); + animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ]; + + // Reverse the animation if we're showing + if ( mode === "show" ) { + element.cssClip( animation.clip ); + element.css( ref, animation[ ref ] ); + animation.clip = startClip; + animation[ ref ] = startRef; + } + + // Actually animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + + +/*! + * jQuery UI Effects Transfer 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Transfer Effect +//>>group: Effects +//>>description: Displays a transfer effect from one element to another. +//>>docs: http://api.jqueryui.com/transfer-effect/ +//>>demos: http://jqueryui.com/effect/ + + + +var effect; +if ( $.uiBackCompat !== false ) { + effect = $.effects.define( "transfer", function( options, done ) { + $( this ).transfer( options, done ); + } ); +} +var effectsEffectTransfer = effect; + + +/*! + * jQuery UI Focusable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :focusable Selector +//>>group: Core +//>>description: Selects elements which can be focused. +//>>docs: http://api.jqueryui.com/focusable-selector/ + + + +// Selectors +$.ui.focusable = function( element, hasTabindex ) { + var map, mapName, img, focusableIfVisible, fieldset, + nodeName = element.nodeName.toLowerCase(); + + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" ); + return img.length > 0 && img.is( ":visible" ); + } + + if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) { + focusableIfVisible = !element.disabled; + + if ( focusableIfVisible ) { + + // Form controls within a disabled fieldset are disabled. + // However, controls within the fieldset's legend do not get disabled. + // Since controls generally aren't placed inside legends, we skip + // this portion of the check. + fieldset = $( element ).closest( "fieldset" )[ 0 ]; + if ( fieldset ) { + focusableIfVisible = !fieldset.disabled; + } + } + } else if ( "a" === nodeName ) { + focusableIfVisible = element.href || hasTabindex; + } else { + focusableIfVisible = hasTabindex; + } + + return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) ); +}; + +// Support: IE 8 only +// IE 8 doesn't resolve inherit to visible/hidden for computed values +function visible( element ) { + var visibility = element.css( "visibility" ); + while ( visibility === "inherit" ) { + element = element.parent(); + visibility = element.css( "visibility" ); + } + return visibility !== "hidden"; +} + +$.extend( $.expr[ ":" ], { + focusable: function( element ) { + return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); + } +} ); + +var focusable = $.ui.focusable; + + + + +// Support: IE8 Only +// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop +// with a string, so we need to find the proper form. +var form = $.fn.form = function() { + return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); +}; + + +/*! + * jQuery UI Form Reset Mixin 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: http://api.jqueryui.com/form-reset-mixin/ + + + +var formResetMixin = $.ui.formResetMixin = { + _formResetHandler: function() { + var form = $( this ); + + // Wait for the form reset to actually happen before refreshing + setTimeout( function() { + var instances = form.data( "ui-form-reset-instances" ); + $.each( instances, function() { + this.refresh(); + } ); + } ); + }, + + _bindFormResetHandler: function() { + this.form = this.element.form(); + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ) || []; + if ( !instances.length ) { + + // We don't use _on() here because we use a single event handler per form + this.form.on( "reset.ui-form-reset", this._formResetHandler ); + } + instances.push( this ); + this.form.data( "ui-form-reset-instances", instances ); + }, + + _unbindFormResetHandler: function() { + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ); + instances.splice( $.inArray( this, instances ), 1 ); + if ( instances.length ) { + this.form.data( "ui-form-reset-instances", instances ); + } else { + this.form + .removeData( "ui-form-reset-instances" ) + .off( "reset.ui-form-reset" ); + } + } +}; + + +/*! + * jQuery UI Support for jQuery core 1.7.x 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + */ + +//>>label: jQuery 1.7 Support +//>>group: Core +//>>description: Support version 1.7.x of jQuery core + + + +// Support: jQuery 1.7 only +// Not a great way to check versions, but since we only support 1.7+ and only +// need to detect <1.8, this is a simple check that should suffice. Checking +// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0 +// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting +// 1.7 anymore). See #11197 for why we're not using feature detection. +if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) { + + // Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight() + // Unlike jQuery Core 1.8+, these only support numeric values to set the + // dimensions in pixels + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + } ); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size ) + "px" ); + } ); + }; + + $.fn[ "outer" + name ] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size, true, margin ) + "px" ); + } ); + }; + } ); + + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +; +/*! + * jQuery UI Keycode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/ + + +var keycode = $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + + + + +// Internal use only +var escapeSelector = $.ui.escapeSelector = ( function() { + var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; + return function( selector ) { + return selector.replace( selectorEscape, "\\$1" ); + }; +} )(); + + +/*! + * jQuery UI Labels 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: http://api.jqueryui.com/labels/ + + + +var labels = $.fn.labels = function() { + var ancestor, selector, id, labels, ancestors; + + // Check control.labels first + if ( this[ 0 ].labels && this[ 0 ].labels.length ) { + return this.pushStack( this[ 0 ].labels ); + } + + // Support: IE <= 11, FF <= 37, Android <= 2.3 only + // Above browsers do not support control.labels. Everything below is to support them + // as well as document fragments. control.labels does not work on document fragments + labels = this.eq( 0 ).parents( "label" ); + + // Look for the label based on the id + id = this.attr( "id" ); + if ( id ) { + + // We don't search against the document in case the element + // is disconnected from the DOM + ancestor = this.eq( 0 ).parents().last(); + + // Get a full set of top level ancestors + ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); + + // Create a selector for the label based on the id + selector = "label[for='" + $.ui.escapeSelector( id ) + "']"; + + labels = labels.add( ancestors.find( selector ).addBack( selector ) ); + + } + + // Return whatever we have found for labels + return this.pushStack( labels ); +}; + + +/*! + * jQuery UI Scroll Parent 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: http://api.jqueryui.com/scrollParent/ + + + +var scrollParent = $.fn.scrollParent = function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + + parent.css( "overflow-x" ) ); + } ).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? + $( this[ 0 ].ownerDocument || document ) : + scrollParent; +}; + + +/*! + * jQuery UI Tabbable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :tabbable Selector +//>>group: Core +//>>description: Selects elements which can be tabbed to. +//>>docs: http://api.jqueryui.com/tabbable-selector/ + + + +var tabbable = $.extend( $.expr[ ":" ], { + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + hasTabindex = tabIndex != null; + return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex ); + } +} ); + + +/*! + * jQuery UI Unique ID 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: uniqueId +//>>group: Core +//>>description: Functions to generate and remove uniqueId's +//>>docs: http://api.jqueryui.com/uniqueId/ + + + +var uniqueId = $.fn.extend( { + uniqueId: ( function() { + var uuid = 0; + + return function() { + return this.each( function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + } ); + }; + } )(), + + removeUniqueId: function() { + return this.each( function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + } ); + } +} ); + + +/*! + * jQuery UI Accordion 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Accordion +//>>group: Widgets +// jscs:disable maximumLineLength +//>>description: Displays collapsible content panels for presenting information in a limited amount of space. +// jscs:enable maximumLineLength +//>>docs: http://api.jqueryui.com/accordion/ +//>>demos: http://jqueryui.com/accordion/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/accordion.css +//>>css.theme: ../../themes/base/theme.css + + + +var widgetsAccordion = $.widget( "ui.accordion", { + version: "1.12.1", + options: { + active: 0, + animate: {}, + classes: { + "ui-accordion-header": "ui-corner-top", + "ui-accordion-header-collapsed": "ui-corner-all", + "ui-accordion-content": "ui-corner-bottom" + }, + collapsible: false, + event: "click", + header: "> li > :first-child, > :not(li):even", + heightStyle: "auto", + icons: { + activeHeader: "ui-icon-triangle-1-s", + header: "ui-icon-triangle-1-e" + }, + + // Callbacks + activate: null, + beforeActivate: null + }, + + hideProps: { + borderTopWidth: "hide", + borderBottomWidth: "hide", + paddingTop: "hide", + paddingBottom: "hide", + height: "hide" + }, + + showProps: { + borderTopWidth: "show", + borderBottomWidth: "show", + paddingTop: "show", + paddingBottom: "show", + height: "show" + }, + + _create: function() { + var options = this.options; + + this.prevShow = this.prevHide = $(); + this._addClass( "ui-accordion", "ui-widget ui-helper-reset" ); + this.element.attr( "role", "tablist" ); + + // Don't allow collapsible: false and active: false / null + if ( !options.collapsible && ( options.active === false || options.active == null ) ) { + options.active = 0; + } + + this._processPanels(); + + // handle negative values + if ( options.active < 0 ) { + options.active += this.headers.length; + } + this._refresh(); + }, + + _getCreateEventData: function() { + return { + header: this.active, + panel: !this.active.length ? $() : this.active.next() + }; + }, + + _createIcons: function() { + var icon, children, + icons = this.options.icons; + + if ( icons ) { + icon = $( "" ); + this._addClass( icon, "ui-accordion-header-icon", "ui-icon " + icons.header ); + icon.prependTo( this.headers ); + children = this.active.children( ".ui-accordion-header-icon" ); + this._removeClass( children, icons.header ) + ._addClass( children, null, icons.activeHeader ) + ._addClass( this.headers, "ui-accordion-icons" ); + } + }, + + _destroyIcons: function() { + this._removeClass( this.headers, "ui-accordion-icons" ); + this.headers.children( ".ui-accordion-header-icon" ).remove(); + }, + + _destroy: function() { + var contents; + + // Clean up main element + this.element.removeAttr( "role" ); + + // Clean up headers + this.headers + .removeAttr( "role aria-expanded aria-selected aria-controls tabIndex" ) + .removeUniqueId(); + + this._destroyIcons(); + + // Clean up content panels + contents = this.headers.next() + .css( "display", "" ) + .removeAttr( "role aria-hidden aria-labelledby" ) + .removeUniqueId(); + + if ( this.options.heightStyle !== "content" ) { + contents.css( "height", "" ); + } + }, + + _setOption: function( key, value ) { + if ( key === "active" ) { + + // _activate() will handle invalid values and update this.options + this._activate( value ); + return; + } + + if ( key === "event" ) { + if ( this.options.event ) { + this._off( this.headers, this.options.event ); + } + this._setupEvents( value ); + } + + this._super( key, value ); + + // Setting collapsible: false while collapsed; open first panel + if ( key === "collapsible" && !value && this.options.active === false ) { + this._activate( 0 ); + } + + if ( key === "icons" ) { + this._destroyIcons(); + if ( value ) { + this._createIcons(); + } + } + }, + + _setOptionDisabled: function( value ) { + this._super( value ); + + this.element.attr( "aria-disabled", value ); + + // Support: IE8 Only + // #5332 / #6059 - opacity doesn't cascade to positioned elements in IE + // so we need to add the disabled class to the headers and panels + this._toggleClass( null, "ui-state-disabled", !!value ); + this._toggleClass( this.headers.add( this.headers.next() ), null, "ui-state-disabled", + !!value ); + }, + + _keydown: function( event ) { + if ( event.altKey || event.ctrlKey ) { + return; + } + + var keyCode = $.ui.keyCode, + length = this.headers.length, + currentIndex = this.headers.index( event.target ), + toFocus = false; + + switch ( event.keyCode ) { + case keyCode.RIGHT: + case keyCode.DOWN: + toFocus = this.headers[ ( currentIndex + 1 ) % length ]; + break; + case keyCode.LEFT: + case keyCode.UP: + toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; + break; + case keyCode.SPACE: + case keyCode.ENTER: + this._eventHandler( event ); + break; + case keyCode.HOME: + toFocus = this.headers[ 0 ]; + break; + case keyCode.END: + toFocus = this.headers[ length - 1 ]; + break; + } + + if ( toFocus ) { + $( event.target ).attr( "tabIndex", -1 ); + $( toFocus ).attr( "tabIndex", 0 ); + $( toFocus ).trigger( "focus" ); + event.preventDefault(); + } + }, + + _panelKeyDown: function( event ) { + if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) { + $( event.currentTarget ).prev().trigger( "focus" ); + } + }, + + refresh: function() { + var options = this.options; + this._processPanels(); + + // Was collapsed or no panel + if ( ( options.active === false && options.collapsible === true ) || + !this.headers.length ) { + options.active = false; + this.active = $(); + + // active false only when collapsible is true + } else if ( options.active === false ) { + this._activate( 0 ); + + // was active, but active panel is gone + } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { + + // all remaining panel are disabled + if ( this.headers.length === this.headers.find( ".ui-state-disabled" ).length ) { + options.active = false; + this.active = $(); + + // activate previous panel + } else { + this._activate( Math.max( 0, options.active - 1 ) ); + } + + // was active, active panel still exists + } else { + + // make sure active index is correct + options.active = this.headers.index( this.active ); + } + + this._destroyIcons(); + + this._refresh(); + }, + + _processPanels: function() { + var prevHeaders = this.headers, + prevPanels = this.panels; + + this.headers = this.element.find( this.options.header ); + this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed", + "ui-state-default" ); + + this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide(); + this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" ); + + // Avoid memory leaks (#10056) + if ( prevPanels ) { + this._off( prevHeaders.not( this.headers ) ); + this._off( prevPanels.not( this.panels ) ); + } + }, + + _refresh: function() { + var maxHeight, + options = this.options, + heightStyle = options.heightStyle, + parent = this.element.parent(); + + this.active = this._findActive( options.active ); + this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" ) + ._removeClass( this.active, "ui-accordion-header-collapsed" ); + this._addClass( this.active.next(), "ui-accordion-content-active" ); + this.active.next().show(); + + this.headers + .attr( "role", "tab" ) + .each( function() { + var header = $( this ), + headerId = header.uniqueId().attr( "id" ), + panel = header.next(), + panelId = panel.uniqueId().attr( "id" ); + header.attr( "aria-controls", panelId ); + panel.attr( "aria-labelledby", headerId ); + } ) + .next() + .attr( "role", "tabpanel" ); + + this.headers + .not( this.active ) + .attr( { + "aria-selected": "false", + "aria-expanded": "false", + tabIndex: -1 + } ) + .next() + .attr( { + "aria-hidden": "true" + } ) + .hide(); + + // Make sure at least one header is in the tab order + if ( !this.active.length ) { + this.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + this.active.attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ) + .next() + .attr( { + "aria-hidden": "false" + } ); + } + + this._createIcons(); + + this._setupEvents( options.event ); + + if ( heightStyle === "fill" ) { + maxHeight = parent.height(); + this.element.siblings( ":visible" ).each( function() { + var elem = $( this ), + position = elem.css( "position" ); + + if ( position === "absolute" || position === "fixed" ) { + return; + } + maxHeight -= elem.outerHeight( true ); + } ); + + this.headers.each( function() { + maxHeight -= $( this ).outerHeight( true ); + } ); + + this.headers.next() + .each( function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + } ) + .css( "overflow", "auto" ); + } else if ( heightStyle === "auto" ) { + maxHeight = 0; + this.headers.next() + .each( function() { + var isVisible = $( this ).is( ":visible" ); + if ( !isVisible ) { + $( this ).show(); + } + maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); + if ( !isVisible ) { + $( this ).hide(); + } + } ) + .height( maxHeight ); + } + }, + + _activate: function( index ) { + var active = this._findActive( index )[ 0 ]; + + // Trying to activate the already active panel + if ( active === this.active[ 0 ] ) { + return; + } + + // Trying to collapse, simulate a click on the currently active header + active = active || this.active[ 0 ]; + + this._eventHandler( { + target: active, + currentTarget: active, + preventDefault: $.noop + } ); + }, + + _findActive: function( selector ) { + return typeof selector === "number" ? this.headers.eq( selector ) : $(); + }, + + _setupEvents: function( event ) { + var events = { + keydown: "_keydown" + }; + if ( event ) { + $.each( event.split( " " ), function( index, eventName ) { + events[ eventName ] = "_eventHandler"; + } ); + } + + this._off( this.headers.add( this.headers.next() ) ); + this._on( this.headers, events ); + this._on( this.headers.next(), { keydown: "_panelKeyDown" } ); + this._hoverable( this.headers ); + this._focusable( this.headers ); + }, + + _eventHandler: function( event ) { + var activeChildren, clickedChildren, + options = this.options, + active = this.active, + clicked = $( event.currentTarget ), + clickedIsActive = clicked[ 0 ] === active[ 0 ], + collapsing = clickedIsActive && options.collapsible, + toShow = collapsing ? $() : clicked.next(), + toHide = active.next(), + eventData = { + oldHeader: active, + oldPanel: toHide, + newHeader: collapsing ? $() : clicked, + newPanel: toShow + }; + + event.preventDefault(); + + if ( + + // click on active header, but not collapsible + ( clickedIsActive && !options.collapsible ) || + + // allow canceling activation + ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { + return; + } + + options.active = collapsing ? false : this.headers.index( clicked ); + + // When the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $() : clicked; + this._toggle( eventData ); + + // Switch classes + // corner classes on the previously active header stay after the animation + this._removeClass( active, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + activeChildren = active.children( ".ui-accordion-header-icon" ); + this._removeClass( activeChildren, null, options.icons.activeHeader ) + ._addClass( activeChildren, null, options.icons.header ); + } + + if ( !clickedIsActive ) { + this._removeClass( clicked, "ui-accordion-header-collapsed" ) + ._addClass( clicked, "ui-accordion-header-active", "ui-state-active" ); + if ( options.icons ) { + clickedChildren = clicked.children( ".ui-accordion-header-icon" ); + this._removeClass( clickedChildren, null, options.icons.header ) + ._addClass( clickedChildren, null, options.icons.activeHeader ); + } + + this._addClass( clicked.next(), "ui-accordion-content-active" ); + } + }, + + _toggle: function( data ) { + var toShow = data.newPanel, + toHide = this.prevShow.length ? this.prevShow : data.oldPanel; + + // Handle activating a panel during the animation for another activation + this.prevShow.add( this.prevHide ).stop( true, true ); + this.prevShow = toShow; + this.prevHide = toHide; + + if ( this.options.animate ) { + this._animate( toShow, toHide, data ); + } else { + toHide.hide(); + toShow.show(); + this._toggleComplete( data ); + } + + toHide.attr( { + "aria-hidden": "true" + } ); + toHide.prev().attr( { + "aria-selected": "false", + "aria-expanded": "false" + } ); + + // if we're switching panels, remove the old header from the tab order + // if we're opening from collapsed state, remove the previous header from the tab order + // if we're collapsing, then keep the collapsing header in the tab order + if ( toShow.length && toHide.length ) { + toHide.prev().attr( { + "tabIndex": -1, + "aria-expanded": "false" + } ); + } else if ( toShow.length ) { + this.headers.filter( function() { + return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0; + } ) + .attr( "tabIndex", -1 ); + } + + toShow + .attr( "aria-hidden", "false" ) + .prev() + .attr( { + "aria-selected": "true", + "aria-expanded": "true", + tabIndex: 0 + } ); + }, + + _animate: function( toShow, toHide, data ) { + var total, easing, duration, + that = this, + adjust = 0, + boxSizing = toShow.css( "box-sizing" ), + down = toShow.length && + ( !toHide.length || ( toShow.index() < toHide.index() ) ), + animate = this.options.animate || {}, + options = down && animate.down || animate, + complete = function() { + that._toggleComplete( data ); + }; + + if ( typeof options === "number" ) { + duration = options; + } + if ( typeof options === "string" ) { + easing = options; + } + + // fall back from options to animation in case of partial down settings + easing = easing || options.easing || animate.easing; + duration = duration || options.duration || animate.duration; + + if ( !toHide.length ) { + return toShow.animate( this.showProps, duration, easing, complete ); + } + if ( !toShow.length ) { + return toHide.animate( this.hideProps, duration, easing, complete ); + } + + total = toShow.show().outerHeight(); + toHide.animate( this.hideProps, { + duration: duration, + easing: easing, + step: function( now, fx ) { + fx.now = Math.round( now ); + } + } ); + toShow + .hide() + .animate( this.showProps, { + duration: duration, + easing: easing, + complete: complete, + step: function( now, fx ) { + fx.now = Math.round( now ); + if ( fx.prop !== "height" ) { + if ( boxSizing === "content-box" ) { + adjust += fx.now; + } + } else if ( that.options.heightStyle !== "content" ) { + fx.now = Math.round( total - toHide.outerHeight() - adjust ); + adjust = 0; + } + } + } ); + }, + + _toggleComplete: function( data ) { + var toHide = data.oldPanel, + prev = toHide.prev(); + + this._removeClass( toHide, "ui-accordion-content-active" ); + this._removeClass( prev, "ui-accordion-header-active" ) + ._addClass( prev, "ui-accordion-header-collapsed" ); + + // Work around for rendering bug in IE (#5421) + if ( toHide.length ) { + toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className; + } + this._trigger( "activate", null, data ); + } +} ); + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an