From 158bd3ca0c789c52feaa78f125850b6b1d31c3b0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim=20D=C3=BCsterhus?= Date: Mon, 25 Jul 2011 20:17:10 +0200 Subject: [PATCH] Replaced each crlf with lf --- com.woltlab.wcf/cronjobs.xml | 136 +- com.woltlab.wcf/options.xml | 654 +- com.woltlab.wcf/package.xml | 58 +- com.woltlab.wcf/styleattributes.xml | 8366 ++++++++--------- com.woltlab.wcf/templates/documentHeader.tpl | 4 +- com.woltlab.wcf/templates/footer.tpl | 8 +- com.woltlab.wcf/templates/headInclude.tpl | 8 +- com.woltlab.wcf/templates/header.tpl | 8 +- com.woltlab.wcf/templates/headerMenu.tpl | 42 +- .../templates/optionTypeBoolean.tpl | 4 +- com.woltlab.wcf/templates/optionTypeDate.tpl | 50 +- .../templates/optionTypeMultiselect.tpl | 8 +- .../templates/optionTypeRadiobuttons.tpl | 18 +- .../templates/optionTypeSelect.tpl | 8 +- .../templates/permissionDenied.tpl | 32 +- com.woltlab.wcf/templates/redirect.tpl | 40 +- com.woltlab.wcf/templates/userException.tpl | 58 +- com.woltlab.wcf/useroptions.xml | 34 +- wcfsetup/install.php | 1508 +-- wcfsetup/install/files/acp/dereferrer.php | 54 +- wcfsetup/install/files/acp/global.php | 36 +- .../install/files/acp/images/wcfLogoWhite.svg | 532 +- wcfsetup/install/files/acp/index.php | 18 +- wcfsetup/install/files/acp/install.php | 222 +- wcfsetup/install/files/acp/js/WCF.ACP.js | 972 +- wcfsetup/install/files/acp/style/style.css | 448 +- .../install/files/acp/style/testing-reset.css | 94 +- wcfsetup/install/files/acp/style/testing.css | 2096 ++--- wcfsetup/install/files/acp/style/wcfAcp.css | 908 +- .../files/acp/templates/cronjobAdd.tpl | 374 +- .../files/acp/templates/cronjobLogList.tpl | 150 +- .../install/files/acp/templates/footer.tpl | 38 +- .../install/files/acp/templates/header.tpl | 310 +- .../install/files/acp/templates/index.tpl | 4 +- .../install/files/acp/templates/login.tpl | 120 +- .../files/acp/templates/masterPassword.tpl | 110 +- .../acp/templates/masterPasswordInit.tpl | 182 +- .../install/files/acp/templates/option.tpl | 148 +- .../files/acp/templates/optionFieldList.tpl | 42 +- .../files/acp/templates/optionImport.tpl | 158 +- .../files/acp/templates/optionTypeBoolean.tpl | 4 +- .../acp/templates/optionTypeCustomselect.tpl | 20 +- .../files/acp/templates/optionTypeDate.tpl | 50 +- .../acp/templates/optionTypeMultiselect.tpl | 8 +- .../acp/templates/optionTypeRadiobuttons.tpl | 18 +- .../files/acp/templates/optionTypeSelect.tpl | 8 +- .../files/acp/templates/optionTypeText.tpl | 2 +- .../templates/packageInstallationConfirm.tpl | 278 +- .../templates/packageInstallationSetup.tpl | 14 +- .../files/acp/templates/packageList.tpl | 210 +- .../acp/templates/packageStartInstall.tpl | 206 +- .../packageUninstallationDependencies.tpl | 272 +- .../files/acp/templates/packageUpdateAuth.tpl | 206 +- .../files/acp/templates/packageView.tpl | 468 +- .../files/acp/templates/permissionDenied.tpl | 36 +- .../files/acp/templates/setupFooter.tpl | 4 +- .../files/acp/templates/setupHeader.tpl | 90 +- .../files/acp/templates/setupWindowFooter.tpl | 4 +- .../install/files/acp/templates/success.tpl | 8 +- .../files/acp/templates/updateServerAdd.tpl | 194 +- .../files/acp/templates/updateServerList.tpl | 194 +- .../install/files/acp/templates/userAdd.tpl | 528 +- .../files/acp/templates/userAssignToGroup.tpl | 100 +- .../acp/templates/userEmailAddressExport.tpl | 178 +- .../files/acp/templates/userException.tpl | 40 +- .../files/acp/templates/userGroupAdd.tpl | 256 +- .../files/acp/templates/userGroupList.tpl | 198 +- .../install/files/acp/templates/userList.tpl | 302 +- .../install/files/acp/templates/userMail.tpl | 308 +- .../files/acp/templates/userSearch.tpl | 480 +- .../acp/templates/usersMassProcessing.tpl | 602 +- .../install/files/acp/templates/worker.tpl | 138 +- .../files/acp/templates/workerException.tpl | 26 +- .../files/acp/templates/workerFinish.tpl | 46 +- .../files/acp/templates/workerNext.tpl | 40 +- wcfsetup/install/files/global.php | 26 +- .../files/js/3rdParty/jquery-ui.min.js | 810 +- wcfsetup/install/files/js/WCF.js | 3984 ++++---- .../lib/acp/action/AJAXProxyAction.class.php | 26 +- .../acp/action/InstallPackageAction.class.php | 314 +- .../lib/acp/action/LogoutAction.class.php | 80 +- .../acp/action/OptionExportAction.class.php | 108 +- .../action/UninstallPackageAction.class.php | 298 +- .../files/lib/acp/form/ACPForm.class.php | 66 +- .../acp/form/AbstractOptionListForm.class.php | 756 +- .../lib/acp/form/CronjobAddForm.class.php | 356 +- .../lib/acp/form/CronjobEditForm.class.php | 228 +- .../files/lib/acp/form/LoginForm.class.php | 312 +- .../files/lib/acp/form/OptionForm.class.php | 306 +- .../form/PackageStartInstallForm.class.php | 452 +- .../files/lib/acp/form/UserAddForm.class.php | 680 +- .../acp/form/UserAssignToGroupForm.class.php | 276 +- .../files/lib/acp/form/UserEditForm.class.php | 400 +- .../form/UserEmailAddressExportForm.class.php | 264 +- .../lib/acp/form/UserGroupAddForm.class.php | 408 +- .../lib/acp/form/UserGroupEditForm.class.php | 286 +- .../files/lib/acp/form/UserMailForm.class.php | 330 +- .../lib/acp/form/UserOptionListForm.class.php | 174 +- .../lib/acp/form/UserSearchForm.class.php | 618 +- .../files/lib/acp/page/IndexPage.class.php | 116 +- .../lib/acp/page/PackageListPage.class.php | 188 +- .../files/lib/acp/page/PackagePage.class.php | 154 +- .../lib/acp/page/PackageViewPage.class.php | 154 +- .../acp/page/UpdateServerListPage.class.php | 168 +- .../files/lib/acp/page/UserListPage.class.php | 630 +- .../lib/action/AJAXProxyAction.class.php | 262 +- .../files/lib/action/AbstractAction.class.php | 154 +- .../lib/action/AbstractAjaxAction.class.php | 54 +- .../lib/action/AbstractDialogAction.class.php | 142 +- .../AbstractSecureObjectAction.class.php | 176 +- .../files/lib/action/IAction.class.php | 48 +- wcfsetup/install/files/lib/core.functions.php | 46 +- .../files/lib/data/DatabaseObject.class.php | 386 +- .../acp/menu/item/ACPMenuItemAction.class.php | 38 +- .../acp/menu/item/ACPMenuItemList.class.php | 38 +- .../acp/session/ACPSessionAction.class.php | 38 +- .../data/acp/session/ACPSessionList.class.php | 36 +- .../log/ACPSessionAccessLogAction.class.php | 38 +- .../data/ACPSessionDataAction.class.php | 38 +- .../session/data/ACPSessionDataList.class.php | 38 +- .../session/log/ACPSessionLogAction.class.php | 38 +- .../acp/template/ACPTemplateAction.class.php | 72 +- .../acp/template/ACPTemplateList.class.php | 38 +- .../listener/CleanupListenerAction.class.php | 38 +- .../listener/CleanupListenerList.class.php | 38 +- .../core/object/CoreObjectAction.class.php | 38 +- .../data/core/object/CoreObjectList.class.php | 38 +- .../lib/data/cronjob/CronjobAction.class.php | 202 +- .../lib/data/cronjob/CronjobList.class.php | 38 +- .../data/cronjob/log/CronjobLogList.class.php | 38 +- .../listener/EventListenerAction.class.php | 38 +- .../listener/EventListenerList.class.php | 38 +- .../lib/data/language/LanguageList.class.php | 38 +- .../category/LanguageCategoryAction.class.php | 72 +- .../category/LanguageCategoryList.class.php | 38 +- .../item/LanguageItemAction.class.php | 72 +- .../language/item/LanguageItemList.class.php | 38 +- .../lib/data/option/OptionAction.class.php | 132 +- .../lib/data/option/OptionList.class.php | 38 +- .../category/OptionCategoryAction.class.php | 72 +- .../category/OptionCategoryList.class.php | 38 +- .../lib/data/package/PackageAction.class.php | 68 +- .../lib/data/package/PackageList.class.php | 38 +- .../PackageInstallationPluginAction.class.php | 38 +- .../PackageInstallationPluginList.class.php | 38 +- .../PackageInstallationQueueAction.class.php | 110 +- .../PackageInstallationQueueList.class.php | 38 +- .../update/PackageUpdateAction.class.php | 38 +- .../update/PackageUpdateList.class.php | 38 +- .../PackageUpdateServerAction.class.php | 104 +- .../server/PackageUpdateServerList.class.php | 58 +- .../PackageUpdateVersionAction.class.php | 38 +- .../PackageUpdateVersionList.class.php | 38 +- .../data/page/location/ILocation.class.php | 70 +- .../location/PageLocationAction.class.php | 38 +- .../page/location/PageLocationList.class.php | 38 +- .../menu/item/PageMenuItemAction.class.php | 38 +- .../page/menu/item/PageMenuItemList.class.php | 38 +- .../lib/data/search/SearchAction.class.php | 38 +- .../lib/data/search/SearchList.class.php | 38 +- .../lib/data/session/SessionAction.class.php | 38 +- .../lib/data/session/SessionList.class.php | 38 +- .../session/data/SessionDataAction.class.php | 38 +- .../session/data/SessionDataList.class.php | 38 +- .../lib/data/spider/SpiderAction.class.php | 38 +- .../lib/data/spider/SpiderList.class.php | 38 +- .../files/lib/data/style/Style.class.php | 108 +- .../lib/data/style/StyleAction.class.php | 38 +- .../lib/data/style/StyleEditor.class.php | 1808 ++-- .../files/lib/data/style/StyleList.class.php | 38 +- .../data/template/TemplateAction.class.php | 72 +- .../lib/data/template/TemplateList.class.php | 38 +- .../group/TemplateGroupAction.class.php | 72 +- .../group/TemplateGroupList.class.php | 38 +- .../listener/TemplateListenerAction.class.php | 38 +- .../listener/TemplateListenerList.class.php | 38 +- .../files/lib/data/user/UserList.class.php | 38 +- .../data/user/group/UserGroupAction.class.php | 124 +- .../data/user/group/UserGroupList.class.php | 38 +- .../option/UserGroupOptionAction.class.php | 38 +- .../option/UserGroupOptionList.class.php | 38 +- .../UserGroupOptionCategoryAction.class.php | 38 +- .../UserGroupOptionCategoryList.class.php | 38 +- .../user/option/IUserOptionOutput.class.php | 88 +- .../lib/data/user/option/UserOption.class.php | 48 +- .../user/option/UserOptionAction.class.php | 38 +- .../user/option/UserOptionEditor.class.php | 280 +- .../data/user/option/UserOptionList.class.php | 38 +- .../UserOptionCategoryAction.class.php | 38 +- .../UserOptionCategoryEditor.class.php | 58 +- .../files/lib/form/AbstractForm.class.php | 216 +- .../install/files/lib/form/IForm.class.php | 68 +- .../files/lib/page/AbstractPage.class.php | 284 +- .../install/files/lib/page/IPage.class.php | 86 +- .../files/lib/page/MultipleLinkPage.class.php | 414 +- .../files/lib/page/SortablePage.class.php | 200 +- .../lib/page/util/InlineCalendar.class.php | 114 +- .../install/files/lib/system/WCF.class.php | 1148 +-- .../install/files/lib/system/WCFACP.class.php | 354 +- .../files/lib/system/WCFSetup.class.php | 2220 ++--- .../files/lib/system/auth/UserAuth.class.php | 162 +- .../lib/system/auth/UserAuthDefault.class.php | 196 +- .../lib/system/cache/CacheHandler.class.php | 336 +- .../lib/system/cache/ICacheBuilder.class.php | 42 +- .../system/cache/SetupCacheHandler.class.php | 110 +- .../builder/CacheBuilderACPMenu.class.php | 304 +- .../CacheBuilderEventListener.class.php | 154 +- .../builder/CacheBuilderLanguage.class.php | 180 +- .../builder/CacheBuilderOption.class.php | 234 +- .../builder/CacheBuilderPackage.class.php | 56 +- .../builder/CacheBuilderSpider.class.php | 56 +- .../cache/builder/CacheBuilderStyle.class.php | 136 +- .../builder/CacheBuilderTemplate.class.php | 116 +- .../builder/CacheBuilderUserGroup.class.php | 82 +- .../CacheBuilderUserGroupPermission.class.php | 246 +- .../system/cleanup/ICleanupAdapter.class.php | 40 +- .../cronjob/CleanupListenerCronjob.class.php | 42 +- .../cronjob/GetUpdateInfoCronjob.class.php | 44 +- .../lib/system/cronjob/ICronjob.class.php | 48 +- .../lib/system/database/Database.class.php | 674 +- .../database/DatabaseException.class.php | 278 +- .../database/PostgreSQLDatabase.class.php | 6 +- .../database/util/ConditionBuilder.class.php | 118 +- ...reparedStatementConditionBuilder.class.php | 150 +- .../lib/system/event/EventHandler.class.php | 394 +- .../lib/system/event/IEventListener.class.php | 46 +- .../system/exception/AJAXException.class.php | 58 +- .../exception/IPrintableException.class.php | 38 +- .../exception/IllegalLinkException.class.php | 58 +- .../exception/NamedUserException.class.php | 74 +- .../PermissionDeniedException.class.php | 58 +- .../system/exception/UserException.class.php | 40 +- .../exception/UserInputException.class.php | 116 +- .../ValidateActionException.class.php | 24 +- .../lib/system/form/FormDocument.class.php | 250 +- .../lib/system/form/IFormElement.class.php | 126 +- .../form/IFormElementContainer.class.php | 170 +- .../AbstractFormElementContainer.class.php | 234 +- .../GroupFormElementContainer.class.php | 66 +- ...pleSelectionFormElementContainer.class.php | 136 +- .../SelectionFormElementContainer.class.php | 76 +- ...gleSelectionFormElementContainer.class.php | 136 +- .../element/AbstractFormElement.class.php | 158 +- .../AbstractNamedFormElement.class.php | 128 +- .../form/element/LabelFormElement.class.php | 116 +- .../MultipleSelectionFormElement.class.php | 44 +- .../PasswordInputFormElement.class.php | 66 +- .../SingleSelectionFormElement.class.php | 44 +- .../element/TextInputFormElement.class.php | 66 +- .../lib/system/image/Thumbnail.class.php | 892 +- .../install/files/lib/system/io/FTP.class.php | 98 +- .../files/lib/system/io/File.class.php | 158 +- .../files/lib/system/io/GZipFile.class.php | 152 +- .../files/lib/system/io/RemoteFile.class.php | 158 +- .../install/files/lib/system/io/Tar.class.php | 640 +- .../files/lib/system/io/TarWriter.class.php | 540 +- .../files/lib/system/io/ZipWriter.class.php | 422 +- .../lib/system/mail/DebugMailSender.class.php | 90 +- .../files/lib/system/mail/Mail.class.php | 916 +- .../lib/system/mail/MailSender.class.php | 102 +- .../lib/system/mail/PHPMailSender.class.php | 42 +- .../lib/system/mail/SMTPMailSender.class.php | 426 +- .../lib/system/menu/ITreeMenuItem.class.php | 40 +- .../files/lib/system/menu/TreeMenu.class.php | 418 +- .../lib/system/menu/acp/ACPMenu.class.php | 60 +- .../DefaultPageMenuItemProvider.class.php | 56 +- .../menu/page/IPageMenuItemProvider.class.php | 56 +- .../lib/system/menu/page/PageMenu.class.php | 76 +- .../lib/system/option/IOptionType.class.php | 82 +- .../option/ISearchableUserOption.class.php | 68 +- .../system/option/OptionTypeBoolean.class.php | 126 +- .../option/OptionTypeCustomselect.class.php | 90 +- .../system/option/OptionTypeDate.class.php | 286 +- .../system/option/OptionTypeInteger.class.php | 44 +- .../option/OptionTypeMultiselect.class.php | 162 +- .../option/OptionTypePassword.class.php | 56 +- .../option/OptionTypeRadiobuttons.class.php | 178 +- .../system/option/OptionTypeSelect.class.php | 146 +- .../system/option/OptionTypeText.class.php | 134 +- .../option/OptionTypeTextarea.class.php | 54 +- .../option/OptionTypeTimezone.class.php | 102 +- .../group/GroupOptionTypeBoolean.class.php | 52 +- .../group/GroupOptionTypeGroups.class.php | 160 +- .../GroupOptionTypeInfiniteInteger.class.php | 44 +- ...OptionTypeInfiniteInverseInteger.class.php | 52 +- .../group/GroupOptionTypeInteger.class.php | 44 +- .../GroupOptionTypeInverseInteger.class.php | 44 +- .../group/GroupOptionTypeTextarea.class.php | 58 +- .../option/group/IGroupOptionType.class.php | 44 +- .../package/PackageInstallationStep.class.php | 192 +- .../IPackageInstallationPlugin.class.php | 70 +- ...ageMenuPackageInstallationPlugin.class.php | 94 +- ...ributesPackageInstallationPlugin.class.php | 288 +- .../StylePackageInstallationPlugin.class.php | 178 +- .../lib/system/request/Request.class.php | 192 +- .../system/request/RequestHandler.class.php | 194 +- .../system/session/SessionFactory.class.php | 130 +- .../lib/system/setup/IFileHandler.class.php | 54 +- .../lib/system/setup/Installer.class.php | 376 +- .../lib/system/setup/Uninstaller.class.php | 248 +- .../template/ITemplatePluginBlock.class.php | 78 +- .../ITemplatePluginCompiler.class.php | 60 +- .../ITemplatePluginFunction.class.php | 44 +- .../ITemplatePluginModifier.class.php | 46 +- .../ITemplatePluginPrefilter.class.php | 46 +- .../system/template/SetupTemplate.class.php | 112 +- .../template/SetupTemplateEngine.class.php | 114 +- .../template/TemplateCompiler.class.php | 86 +- .../plugin/TemplatePluginBlockLink.class.php | 112 +- .../TemplatePluginCompilerAppend.class.php | 80 +- .../TemplatePluginCompilerAssign.class.php | 80 +- .../TemplatePluginCompilerFetch.class.php | 86 +- .../TemplatePluginCompilerImplode.class.php | 120 +- .../TemplatePluginCompilerLang.class.php | 88 +- .../TemplatePluginFunctionCounter.class.php | 152 +- .../TemplatePluginFunctionCycle.class.php | 182 +- ...latePluginFunctionHtmlcheckboxes.class.php | 174 +- ...emplatePluginFunctionHtmloptions.class.php | 254 +- .../TemplatePluginFunctionPages.class.php | 438 +- .../TemplatePluginModifierConcat.class.php | 72 +- .../TemplatePluginModifierDate.class.php | 56 +- .../TemplatePluginModifierEncodejs.class.php | 80 +- .../TemplatePluginModifierFilesize.class.php | 54 +- .../TemplatePluginModifierPlainTime.class.php | 60 +- .../TemplatePluginModifierTime.class.php | 70 +- .../TemplatePluginModifierTruncate.class.php | 106 +- .../TemplatePluginPrefilterLang.class.php | 66 +- .../files/lib/util/ArrayUtil.class.php | 340 +- .../files/lib/util/BasicFileUtil.class.php | 136 +- .../files/lib/util/ClassUtil.class.php | 70 +- .../files/lib/util/CronjobUtil.class.php | 1166 +-- .../files/lib/util/ImageUtil.class.php | 110 +- .../install/files/lib/util/JSON.class.php | 92 +- .../files/lib/util/StringStack.class.php | 136 +- .../install/files/lib/util/UserUtil.class.php | 328 +- wcfsetup/install/files/lib/util/XML.class.php | 386 +- wcfsetup/install/files/options.inc.php | 48 +- wcfsetup/install/files/style/containers.css | 358 +- .../install/files/style/extra/print-rtl.css | 530 +- wcfsetup/install/files/style/extra/print.css | 530 +- wcfsetup/install/files/style/footer.css | 296 +- wcfsetup/install/files/style/forms.css | 538 +- .../install/files/style/inlineCalendar.css | 168 +- .../install/files/style/pageNavigation.css | 252 +- wcfsetup/install/files/style/tabbedMenus.css | 382 +- wcfsetup/install/lang/de-informal.xml | 1808 ++-- wcfsetup/install/lang/de.xml | 2066 ++-- wcfsetup/install/lang/en.xml | 1806 ++-- wcfsetup/setup/db/install.sql | 1654 ++-- wcfsetup/setup/lang/setup_de.xml | 328 +- wcfsetup/setup/lang/setup_en.xml | 322 +- wcfsetup/setup/license/license_en.txt | 330 +- wcfsetup/setup/template/footer.tpl | 10 +- wcfsetup/setup/template/stepConfigureDB.tpl | 154 +- wcfsetup/setup/template/stepCreateUser.tpl | 162 +- .../setup/template/stepInstallPackages.tpl | 48 +- wcfsetup/setup/template/stepNext.tpl | 62 +- wcfsetup/setup/template/stepSearchWcfDir.tpl | 232 +- .../setup/template/stepSelectLanguages.tpl | 70 +- .../template/stepSelectSetupLanguage.tpl | 70 +- wcfsetup/setup/template/stepShowLicense.tpl | 56 +- .../template/stepShowSystemRequirements.tpl | 158 +- wcfsetup/test.php | 118 +- 363 files changed, 41471 insertions(+), 41471 deletions(-) diff --git a/com.woltlab.wcf/cronjobs.xml b/com.woltlab.wcf/cronjobs.xml index dd4cc087b3..6894f4710c 100644 --- a/com.woltlab.wcf/cronjobs.xml +++ b/com.woltlab.wcf/cronjobs.xml @@ -1,69 +1,69 @@ - - - - - lib/system/cronjob/GetUpdateInfoCronjob.class.php - Gets update package information - 0 - 2 - */2 - * - * - 1 - 1 - 1 - - - - lib/system/cronjob/RefreshSearchRobotsCronjob.class.php - Refreshes list of search robots - 0 - 3 - 1 - * - * - 1 - 1 - 1 - - - - lib/system/cronjob/CleanUpCronjobLogCronjob.class.php - Deletes old entries from cronjob log. - 0 - 12 - * - * - * - 1 - 1 - 1 - - - - lib/system/cronjob/CleanUpSessionLogCronjob.class.php - Deletes old entries from session log. - 0 - 10 - * - * - * - 1 - 0 - 0 - - - - lib/system/cronjob/CleanupListenerCronjob.class.php - Executes cleanup system. - 5,20,35,50 - * - * - * - * - 1 - 0 - 0 - - + + + + + lib/system/cronjob/GetUpdateInfoCronjob.class.php + Gets update package information + 0 + 2 + */2 + * + * + 1 + 1 + 1 + + + + lib/system/cronjob/RefreshSearchRobotsCronjob.class.php + Refreshes list of search robots + 0 + 3 + 1 + * + * + 1 + 1 + 1 + + + + lib/system/cronjob/CleanUpCronjobLogCronjob.class.php + Deletes old entries from cronjob log. + 0 + 12 + * + * + * + 1 + 1 + 1 + + + + lib/system/cronjob/CleanUpSessionLogCronjob.class.php + Deletes old entries from session log. + 0 + 10 + * + * + * + 1 + 0 + 0 + + + + lib/system/cronjob/CleanupListenerCronjob.class.php + Executes cleanup system. + 5,20,35,50 + * + * + * + * + 1 + 0 + 0 + + \ No newline at end of file diff --git a/com.woltlab.wcf/options.xml b/com.woltlab.wcf/options.xml index e32eab2f17..d44d0ade02 100644 --- a/com.woltlab.wcf/options.xml +++ b/com.woltlab.wcf/options.xml @@ -1,328 +1,328 @@ - - - - - - - 1 - - - module - - - module - - - module - - - module - - - - - - message - - - - - - 2 - - - general - - - general - - - general - - - general.http - - - general.http - - - general.http - - - general - - - general - - - general.mail - - - general.mail - - - general - - - general.cache - - - general.cache - - - - - - 3 - - - - - - 4 - - - security - - - security.general - - - security - - - security - - - security - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + 1 + + + module + + + module + + + module + + + module + + + + + + message + + + + + + 2 + + + general + + + general + + + general + + + general.http + + + general.http + + + general.http + + + general + + + general + + + general.mail + + + general.mail + + + general + + + general.cache + + + general.cache + + + + + + 3 + + + + + + 4 + + + security + + + security.general + + + security + + + security + + + security + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com.woltlab.wcf/package.xml b/com.woltlab.wcf/package.xml index a5e8825468..0ab9662804 100644 --- a/com.woltlab.wcf/package.xml +++ b/com.woltlab.wcf/package.xml @@ -1,29 +1,29 @@ - - - - WoltLab Community Framework - Free web-framework, designed and developed for complex community applications. - 1 - 1 - 2.0.0 Alpha 1 - 2011-05-19 - - - - WoltLab GmbH - http://www.woltlab.com - - - - pip.xml - acpmenu.xml - groupoptions.xml - options.xml - useroptions.xml - templates.tar - eventlistener.xml - acp/install.php - cronjobs.xml - coreobject.xml - - + + + + WoltLab Community Framework + Free web-framework, designed and developed for complex community applications. + 1 + 1 + 2.0.0 Alpha 1 + 2011-05-19 + + + + WoltLab GmbH + http://www.woltlab.com + + + + pip.xml + acpmenu.xml + groupoptions.xml + options.xml + useroptions.xml + templates.tar + eventlistener.xml + acp/install.php + cronjobs.xml + coreobject.xml + + diff --git a/com.woltlab.wcf/styleattributes.xml b/com.woltlab.wcf/styleattributes.xml index 75b8e4f085..9f18c81a17 100644 --- a/com.woltlab.wcf/styleattributes.xml +++ b/com.woltlab.wcf/styleattributes.xml @@ -1,4184 +1,4184 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .border > .itemList > li:last-child > .itemListTitle]]> - - - - - .border > .itemList > li:last-child > .itemListTitle]]> - - - - - .border > .itemList > li:last-child > .itemListTitle]]> - - - - - li > .itemList > li > .itemListTitle]]> - - - - - li > .itemList > li > .itemListTitle]]> - - - - - li > .itemList > li > .itemListTitle]]> - - - - - li > .itemList > li > .itemList]]> - - - - - li > .itemList > li > .itemList]]> - - - - - li > .itemList > li > .itemList]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - span]]> - - - - - span]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a]]> - - - - - a]]> - - - - - - - - - - - - - - - - - - - - a]]> - - - - - a]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .border > .itemList > li:last-child > .itemListTitle]]> + + + + + .border > .itemList > li:last-child > .itemListTitle]]> + + + + + .border > .itemList > li:last-child > .itemListTitle]]> + + + + + li > .itemList > li > .itemListTitle]]> + + + + + li > .itemList > li > .itemListTitle]]> + + + + + li > .itemList > li > .itemListTitle]]> + + + + + li > .itemList > li > .itemList]]> + + + + + li > .itemList > li > .itemList]]> + + + + + li > .itemList > li > .itemList]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + span]]> + + + + + span]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a]]> + + + + + a]]> + + + + + + + + + + + + + + + + + + + + a]]> + + + + + a]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com.woltlab.wcf/templates/documentHeader.tpl b/com.woltlab.wcf/templates/documentHeader.tpl index e39f180c09..fc49ada05d 100644 --- a/com.woltlab.wcf/templates/documentHeader.tpl +++ b/com.woltlab.wcf/templates/documentHeader.tpl @@ -1,2 +1,2 @@ - - + + diff --git a/com.woltlab.wcf/templates/footer.tpl b/com.woltlab.wcf/templates/footer.tpl index 9f17042f6f..9d2d260af0 100644 --- a/com.woltlab.wcf/templates/footer.tpl +++ b/com.woltlab.wcf/templates/footer.tpl @@ -1,5 +1,5 @@ -
- +
+
\ No newline at end of file diff --git a/com.woltlab.wcf/templates/headInclude.tpl b/com.woltlab.wcf/templates/headInclude.tpl index 162c75db79..c0f40af94e 100644 --- a/com.woltlab.wcf/templates/headInclude.tpl +++ b/com.woltlab.wcf/templates/headInclude.tpl @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/com.woltlab.wcf/templates/header.tpl b/com.woltlab.wcf/templates/header.tpl index e63f3358e6..eae1cf6dda 100644 --- a/com.woltlab.wcf/templates/header.tpl +++ b/com.woltlab.wcf/templates/header.tpl @@ -1,5 +1,5 @@ - -
- - - - - - - - - +
+
+ + + + + + + + \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/header.tpl b/wcfsetup/install/files/acp/templates/header.tpl index 108bb7bd35..58e817665a 100644 --- a/wcfsetup/install/files/acp/templates/header.tpl +++ b/wcfsetup/install/files/acp/templates/header.tpl @@ -1,155 +1,155 @@ - - - - - {if $pageTitle|isset}{@$pageTitle}{else}{lang}wcf.global.pageTitle{/lang}{/if} - {lang}wcf.acp{/lang} - - - - - - - - {* - {if $specialStyles|isset} - - {@$specialStyles} - {/if} - *} - - - - - - - {* - - - - *} - - - - - - - - - - - -
-
- - -
+ + + + + {if $pageTitle|isset}{@$pageTitle}{else}{lang}wcf.global.pageTitle{/lang}{/if} - {lang}wcf.acp{/lang} + + + + + + + + {* + {if $specialStyles|isset} + + {@$specialStyles} + {/if} + *} + + + + + + + {* + + + + *} + + + + + + + + + + + +
+
+ + +
diff --git a/wcfsetup/install/files/acp/templates/index.tpl b/wcfsetup/install/files/acp/templates/index.tpl index cff6ff88ed..c30acad7f8 100644 --- a/wcfsetup/install/files/acp/templates/index.tpl +++ b/wcfsetup/install/files/acp/templates/index.tpl @@ -1,3 +1,3 @@ -{include file='header'} - +{include file='header'} + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/login.tpl b/wcfsetup/install/files/acp/templates/login.tpl index 1ae856c113..a54cd9651f 100644 --- a/wcfsetup/install/files/acp/templates/login.tpl +++ b/wcfsetup/install/files/acp/templates/login.tpl @@ -1,61 +1,61 @@ -{capture assign='pageTitle'}{lang}wcf.acp.login{/lang}{/capture} -{include file='setupHeader'} - - - - - -

{@$pageTitle}

- -
- -{if $errorField != ''} -

{lang}wcf.global.form.error{/lang}

-{/if} - -
-
- {lang}wcf.acp.login.data{/lang} - -
- - - - {if $errorField == 'username'} -

- - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'notFound'}{lang}wcf.user.error.username.notFound{/lang}{/if} -

- {/if} -
- - - - - - {if $errorField == 'password'} -

- - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'false'}{lang}wcf.user.error.password.false{/lang}{/if} -

- {/if} -
- - {if $additionalFields|isset}{@$additionalFields}{/if} -
- - -
- - - {@SID_INPUT_TAG} -
- - +{capture assign='pageTitle'}{lang}wcf.acp.login{/lang}{/capture} +{include file='setupHeader'} + + + + + +

{@$pageTitle}

+ +
+ +{if $errorField != ''} +

{lang}wcf.global.form.error{/lang}

+{/if} + +
+
+ {lang}wcf.acp.login.data{/lang} + +
+ + + + {if $errorField == 'username'} +

+ + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'notFound'}{lang}wcf.user.error.username.notFound{/lang}{/if} +

+ {/if} +
+ + + + + + {if $errorField == 'password'} +

+ + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'false'}{lang}wcf.user.error.password.false{/lang}{/if} +

+ {/if} +
+ + {if $additionalFields|isset}{@$additionalFields}{/if} +
+ + +
+ + + {@SID_INPUT_TAG} +
+ + {include file='setupFooter'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/masterPassword.tpl b/wcfsetup/install/files/acp/templates/masterPassword.tpl index 97867733c3..0a5232301e 100644 --- a/wcfsetup/install/files/acp/templates/masterPassword.tpl +++ b/wcfsetup/install/files/acp/templates/masterPassword.tpl @@ -1,57 +1,57 @@ -{include file='header'} - -
- -
-

{lang}wcf.acp.masterPassword.enter{/lang}

-
-
- - -{if $errorField != ''} -

{lang}wcf.global.form.error{/lang}

-{/if} - -
-
-
-
- {lang}wcf.acp.masterPassword.enter{/lang} - -
-
- -
-
- - {if $errorField == 'masterPassword'} -

- {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'invalid'}{lang}wcf.acp.masterPassword.error.invalid{/lang}{/if} -

- {/if} -
- -
- - -
- - {if $additionalFields|isset}{@$additionalFields}{/if} -
-
- -
- - - {@SID_INPUT_TAG} - -
-
+{include file='header'} + +
+ +
+

{lang}wcf.acp.masterPassword.enter{/lang}

+
+
+ + +{if $errorField != ''} +

{lang}wcf.global.form.error{/lang}

+{/if} + +
+
+
+
+ {lang}wcf.acp.masterPassword.enter{/lang} + +
+
+ +
+
+ + {if $errorField == 'masterPassword'} +

+ {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'invalid'}{lang}wcf.acp.masterPassword.error.invalid{/lang}{/if} +

+ {/if} +
+ +
+ + +
+ + {if $additionalFields|isset}{@$additionalFields}{/if} +
+
+ +
+ + + {@SID_INPUT_TAG} + +
+
- + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/masterPasswordInit.tpl b/wcfsetup/install/files/acp/templates/masterPasswordInit.tpl index 315e3165df..9f0b33d1f1 100644 --- a/wcfsetup/install/files/acp/templates/masterPasswordInit.tpl +++ b/wcfsetup/install/files/acp/templates/masterPasswordInit.tpl @@ -1,92 +1,92 @@ -{include file='header'} - - - -
- -
-

{lang}wcf.acp.masterPassword.init{/lang}

-
-
- - -{if $errorField != ''} -

{lang}wcf.global.form.error{/lang}

-{/if} - -
-
-
-
- {lang}wcf.acp.masterPassword.init{/lang} - -
-
- -
-
- - {if $errorField == 'masterPassword'} -

- {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'notSecure'}{lang}wcf.acp.masterPassword.error.notSecure{/lang}{/if} -

- {/if} -
- -
- - -
-
- -
-
- - {if $errorField == 'confirmMasterPassword'} -

- {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'notEqual'}{lang}wcf.acp.masterPassword.error.notEqual{/lang}{/if} -

- {/if} -
-
- -
-
- -
- -
-
- - {if $additionalFields|isset}{@$additionalFields}{/if} -
-
- -
- - - {@SID_INPUT_TAG} - -
-
- +{include file='header'} + + + +
+ +
+

{lang}wcf.acp.masterPassword.init{/lang}

+
+
+ + +{if $errorField != ''} +

{lang}wcf.global.form.error{/lang}

+{/if} + +
+
+
+
+ {lang}wcf.acp.masterPassword.init{/lang} + +
+
+ +
+
+ + {if $errorField == 'masterPassword'} +

+ {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'notSecure'}{lang}wcf.acp.masterPassword.error.notSecure{/lang}{/if} +

+ {/if} +
+ +
+ + +
+
+ +
+
+ + {if $errorField == 'confirmMasterPassword'} +

+ {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'notEqual'}{lang}wcf.acp.masterPassword.error.notEqual{/lang}{/if} +

+ {/if} +
+
+ +
+
+ +
+ +
+
+ + {if $additionalFields|isset}{@$additionalFields}{/if} +
+
+ +
+ + + {@SID_INPUT_TAG} + +
+
+ {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/option.tpl b/wcfsetup/install/files/acp/templates/option.tpl index db7645357e..ee638a9b8b 100644 --- a/wcfsetup/install/files/acp/templates/option.tpl +++ b/wcfsetup/install/files/acp/templates/option.tpl @@ -1,75 +1,75 @@ -{include file='header'} - - -
- -
-

{lang}wcf.acp.option.category.{$category->categoryName}{/lang}

-

{lang}wcf.acp.option.category.{$category->categoryName}.description{/lang}

-
-
- -{if $success|isset} -

{lang}wcf.acp.option.success{/lang}

-{/if} - -{if $errorField} -

{lang}wcf.global.form.error{/lang}

-{/if} - -
-
- - - {foreach from=$optionTree item=categoryLevel1} - - {/foreach} -
- -
- - - {@SID_INPUT_TAG} - -
-
- +{include file='header'} + + +
+ +
+

{lang}wcf.acp.option.category.{$category->categoryName}{/lang}

+

{lang}wcf.acp.option.category.{$category->categoryName}.description{/lang}

+
+
+ +{if $success|isset} +

{lang}wcf.acp.option.success{/lang}

+{/if} + +{if $errorField} +

{lang}wcf.global.form.error{/lang}

+{/if} + +
+
+ + + {foreach from=$optionTree item=categoryLevel1} + + {/foreach} +
+ +
+ + + {@SID_INPUT_TAG} + +
+
+ {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionFieldList.tpl b/wcfsetup/install/files/acp/templates/optionFieldList.tpl index f0a147459a..af0c56239a 100644 --- a/wcfsetup/install/files/acp/templates/optionFieldList.tpl +++ b/wcfsetup/install/files/acp/templates/optionFieldList.tpl @@ -1,22 +1,22 @@ -{foreach from=$options item=optionData} - {assign var=option value=$optionData[object]} - {if $errorType|is_array && $errorType[$option->optionName]|isset} - {assign var=error value=$errorType[$option->optionName]} - {else} - {assign var=error value=''} - {/if} -
-
-
{@$optionData[html]}
- {if $error} -

- {if $error == 'empty'} - {lang}wcf.global.error.empty{/lang} - {else} - {lang}wcf.user.option.error.{$error}{/lang} - {/if} -

- {/if} -

{lang}{@$langPrefix}{$option->optionName}.description{/lang}

-
+{foreach from=$options item=optionData} + {assign var=option value=$optionData[object]} + {if $errorType|is_array && $errorType[$option->optionName]|isset} + {assign var=error value=$errorType[$option->optionName]} + {else} + {assign var=error value=''} + {/if} +
+
+
{@$optionData[html]}
+ {if $error} +

+ {if $error == 'empty'} + {lang}wcf.global.error.empty{/lang} + {else} + {lang}wcf.user.option.error.{$error}{/lang} + {/if} +

+ {/if} +

{lang}{@$langPrefix}{$option->optionName}.description{/lang}

+
{/foreach} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionImport.tpl b/wcfsetup/install/files/acp/templates/optionImport.tpl index 7ed40a7bdf..87b2e945c1 100644 --- a/wcfsetup/install/files/acp/templates/optionImport.tpl +++ b/wcfsetup/install/files/acp/templates/optionImport.tpl @@ -1,80 +1,80 @@ -{include file='header'} - -
- -
-

{lang}wcf.acp.option.importAndExport{/lang}

-
-
- -{if $success|isset} -

{lang}wcf.acp.option.import.success{/lang}

-{/if} - -{if $errorField != ''} -

{lang}wcf.global.form.error{/lang}

-{/if} - -
-
-
-
- {lang}wcf.acp.option.import{/lang} - -
-
- -
-
- - {if $errorField == 'optionImport'} -

- {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'importFailed'}{lang}wcf.acp.option.import.error.importFailed{/lang}{/if} - {if $errorType == 'uploadFailed'}{lang}wcf.acp.option.import.error.uploadFailed{/lang}{/if} -

- {/if} -
- -
- -
- - {if $additionalFields|isset}{@$additionalFields}{/if} -
-
- -
- - - {@SID_INPUT_TAG} -
-
- -
-
-
- {lang}wcf.acp.option.export{/lang} - -
- - -
- -
- - {if $additionalFields|isset}{@$additionalFields}{/if} -
-
- +{include file='header'} + +
+ +
+

{lang}wcf.acp.option.importAndExport{/lang}

+
+
+ +{if $success|isset} +

{lang}wcf.acp.option.import.success{/lang}

+{/if} + +{if $errorField != ''} +

{lang}wcf.global.form.error{/lang}

+{/if} + +
+
+
+
+ {lang}wcf.acp.option.import{/lang} + +
+
+ +
+
+ + {if $errorField == 'optionImport'} +

+ {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'importFailed'}{lang}wcf.acp.option.import.error.importFailed{/lang}{/if} + {if $errorType == 'uploadFailed'}{lang}wcf.acp.option.import.error.uploadFailed{/lang}{/if} +

+ {/if} +
+ +
+ +
+ + {if $additionalFields|isset}{@$additionalFields}{/if} +
+
+ +
+ + + {@SID_INPUT_TAG} +
+
+ +
+
+
+ {lang}wcf.acp.option.export{/lang} + +
+ + +
+ +
+ + {if $additionalFields|isset}{@$additionalFields}{/if} +
+
+ {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeBoolean.tpl b/wcfsetup/install/files/acp/templates/optionTypeBoolean.tpl index 7e61779562..8d10251bb0 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeBoolean.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeBoolean.tpl @@ -1,3 +1,3 @@ - \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeCustomselect.tpl b/wcfsetup/install/files/acp/templates/optionTypeCustomselect.tpl index 0c4b9d6f70..768b7272d4 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeCustomselect.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeCustomselect.tpl @@ -1,11 +1,11 @@ -
    - {foreach from=$selectOptions key=key item=selectOption} -
  • - -
  • - {/foreach} -
  • - - -
  • +
      + {foreach from=$selectOptions key=key item=selectOption} +
    • + +
    • + {/foreach} +
    • + + +
    \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeDate.tpl b/wcfsetup/install/files/acp/templates/optionTypeDate.tpl index 2668c3f569..b9ad12a41b 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeDate.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeDate.tpl @@ -1,26 +1,26 @@ -
    - {foreach from=$dateInputOrder item=element} -
    - - - {if $element == 'day'} - - {/if} - - {if $element == 'month'} - - {/if} - - {if $element == 'year'} - - {/if} -
    - {/foreach} -
    -{if !$yearRequired} -

    {lang}wcf.global.date.year.notRequired{/lang}

    +
    + {foreach from=$dateInputOrder item=element} +
    + + + {if $element == 'day'} + + {/if} + + {if $element == 'month'} + + {/if} + + {if $element == 'year'} + + {/if} +
    + {/foreach} +
    +{if !$yearRequired} +

    {lang}wcf.global.date.year.notRequired{/lang}

    {/if} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeMultiselect.tpl b/wcfsetup/install/files/acp/templates/optionTypeMultiselect.tpl index 5646331295..11bbeb1156 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeMultiselect.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeMultiselect.tpl @@ -1,5 +1,5 @@ - +{foreach from=$options item=option key=key} + +{/foreach} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeRadiobuttons.tpl b/wcfsetup/install/files/acp/templates/optionTypeRadiobuttons.tpl index c115f199f6..727083a184 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeRadiobuttons.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeRadiobuttons.tpl @@ -1,10 +1,10 @@ -
      - {foreach from=$selectOptions key=key item=selectOption} -
    • - -
    • - {/foreach} +
        + {foreach from=$selectOptions key=key item=selectOption} +
      • + +
      • + {/foreach}
      \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeSelect.tpl b/wcfsetup/install/files/acp/templates/optionTypeSelect.tpl index 43f398bb99..2fefe2bf32 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeSelect.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeSelect.tpl @@ -1,5 +1,5 @@ - +{foreach from=$selectOptions key=key item=selectOption} + +{/foreach} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/optionTypeText.tpl b/wcfsetup/install/files/acp/templates/optionTypeText.tpl index d23c0341d5..2664b108a3 100644 --- a/wcfsetup/install/files/acp/templates/optionTypeText.tpl +++ b/wcfsetup/install/files/acp/templates/optionTypeText.tpl @@ -1,2 +1,2 @@ - \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/packageInstallationConfirm.tpl b/wcfsetup/install/files/acp/templates/packageInstallationConfirm.tpl index 32914537b3..dcf3cdd9ce 100644 --- a/wcfsetup/install/files/acp/templates/packageInstallationConfirm.tpl +++ b/wcfsetup/install/files/acp/templates/packageInstallationConfirm.tpl @@ -1,140 +1,140 @@ -{include file='header'} - - - -
      - -
      -

      {$archive->getPackageInfo('packageName')}

      -

      {$archive->getPackageInfo('packageDescription')}

      -
      -
      - -{if $missingPackages > 0} -

      {lang}wcf.acp.package.install.error{/lang}

      -{/if} - -{if $excludingPackages|count > 0} -
      {lang}wcf.acp.package.install.error.excludingPackages{/lang} -
        - {foreach from=$excludingPackages item=excludingPackage} -
      • {lang}wcf.acp.package.install.error.excludingPackages.excludingPackage{/lang}
      • - {/foreach} -
      -
      -{/if} - -{if $excludedPackages|count > 0} -
      {lang}wcf.acp.package.install.error.excludedPackages{/lang} -
        - {foreach from=$excludedPackages item=excludedPackage} -
      • {lang}wcf.acp.package.install.error.excludedPackages.excludedPackage{/lang}
      • - {/foreach} -
      -
      -{/if} - -
      - {lang}wcf.acp.package.view.properties{/lang} - -
      -

      {lang}wcf.acp.package.view.identifier{/lang}

      -

      {$archive->getPackageInfo('name')}

      -
      - -
      -

      {lang}wcf.acp.package.install.version{/lang}

      -

      {$archive->getPackageInfo('version')}

      -
      - -
      -

      {lang}wcf.acp.package.view.date{/lang}

      -

      {@$archive->getPackageInfo('date')|date}

      -
      - - {if $archive->getPackageInfo('packageURL') != ''} -
      -

      {lang}wcf.acp.package.view.url{/lang}

      -

      {$archive->getPackageInfo('packageURL')}

      -
      - {/if} - -
      -

      {lang}wcf.acp.package.view.author{/lang}

      -

      {if $archive->getPackageInfo('authorURL')}{$archive->getPackageInfo('author')}{else}{$archive->getPackageInfo('author')}{/if}

      -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      - -{if $updatableInstances|count > 0} -

      {lang}wcf.acp.package.install.updatableInstances.warning{/lang}

      - -
      -
      -

      {lang}wcf.acp.package.install.updatableInstances{/lang}

      -

      {lang}wcf.acp.package.install.updatableInstances.description{/lang}

      -
      -
      -
      - - - - - - - - - {foreach from=$updatableInstances item=$package} - - - - - {/foreach} - -
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{$package.packageVersion}
      -
      -{/if} - -{if $requiredPackages|count > 0} -
      -
      -

      {lang}wcf.acp.package.view.requiredPackages{/lang}

      -

      {lang}wcf.acp.package.view.requiredPackages.description{/lang}

      -
      -
      -
      - - - - - - - - - {foreach from=$requiredPackages item=$package} - - - - - {/foreach} - -
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.install.packageName{/lang}{if $package.minversion|isset}{$package.minversion}{/if}
      -
      -{/if} - -
      - - - {if $missingPackages == 0 && $excludingPackages|count == 0 && $excludedPackages|count == 0} - - {/if} -
      - +{include file='header'} + + + +
      + +
      +

      {$archive->getPackageInfo('packageName')}

      +

      {$archive->getPackageInfo('packageDescription')}

      +
      +
      + +{if $missingPackages > 0} +

      {lang}wcf.acp.package.install.error{/lang}

      +{/if} + +{if $excludingPackages|count > 0} +
      {lang}wcf.acp.package.install.error.excludingPackages{/lang} +
        + {foreach from=$excludingPackages item=excludingPackage} +
      • {lang}wcf.acp.package.install.error.excludingPackages.excludingPackage{/lang}
      • + {/foreach} +
      +
      +{/if} + +{if $excludedPackages|count > 0} +
      {lang}wcf.acp.package.install.error.excludedPackages{/lang} +
        + {foreach from=$excludedPackages item=excludedPackage} +
      • {lang}wcf.acp.package.install.error.excludedPackages.excludedPackage{/lang}
      • + {/foreach} +
      +
      +{/if} + +
      + {lang}wcf.acp.package.view.properties{/lang} + +
      +

      {lang}wcf.acp.package.view.identifier{/lang}

      +

      {$archive->getPackageInfo('name')}

      +
      + +
      +

      {lang}wcf.acp.package.install.version{/lang}

      +

      {$archive->getPackageInfo('version')}

      +
      + +
      +

      {lang}wcf.acp.package.view.date{/lang}

      +

      {@$archive->getPackageInfo('date')|date}

      +
      + + {if $archive->getPackageInfo('packageURL') != ''} +
      +

      {lang}wcf.acp.package.view.url{/lang}

      +

      {$archive->getPackageInfo('packageURL')}

      +
      + {/if} + +
      +

      {lang}wcf.acp.package.view.author{/lang}

      +

      {if $archive->getPackageInfo('authorURL')}{$archive->getPackageInfo('author')}{else}{$archive->getPackageInfo('author')}{/if}

      +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      + +{if $updatableInstances|count > 0} +

      {lang}wcf.acp.package.install.updatableInstances.warning{/lang}

      + +
      +
      +

      {lang}wcf.acp.package.install.updatableInstances{/lang}

      +

      {lang}wcf.acp.package.install.updatableInstances.description{/lang}

      +
      +
      +
      + + + + + + + + + {foreach from=$updatableInstances item=$package} + + + + + {/foreach} + +
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{$package.packageVersion}
      +
      +{/if} + +{if $requiredPackages|count > 0} +
      +
      +

      {lang}wcf.acp.package.view.requiredPackages{/lang}

      +

      {lang}wcf.acp.package.view.requiredPackages.description{/lang}

      +
      +
      +
      + + + + + + + + + {foreach from=$requiredPackages item=$package} + + + + + {/foreach} + +
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.install.packageName{/lang}{if $package.minversion|isset}{$package.minversion}{/if}
      +
      +{/if} + +
      + + + {if $missingPackages == 0 && $excludingPackages|count == 0 && $excludedPackages|count == 0} + + {/if} +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/packageInstallationSetup.tpl b/wcfsetup/install/files/acp/templates/packageInstallationSetup.tpl index aaf131d9b7..b9d9ec5ac4 100644 --- a/wcfsetup/install/files/acp/templates/packageInstallationSetup.tpl +++ b/wcfsetup/install/files/acp/templates/packageInstallationSetup.tpl @@ -1,10 +1,10 @@ -{include file='header' templateName='packageInstallationSetup'} - +{include file='header' templateName='packageInstallationSetup'} + - + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/packageList.tpl b/wcfsetup/install/files/acp/templates/packageList.tpl index 24c1c2994e..688281c6f6 100644 --- a/wcfsetup/install/files/acp/templates/packageList.tpl +++ b/wcfsetup/install/files/acp/templates/packageList.tpl @@ -1,105 +1,105 @@ -{include file='header'} - - - -
      - -
      -

      {lang}wcf.acp.package.list{/lang}

      -
      -
      - -
      - {pages print=true assign=pagesLinks link="index.php?page=PackageList&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} - - {if $__wcf->session->getPermission('admin.system.package.canInstallPackage') || $additionalLargeButtons|isset} - - {/if} -
      - -{if $packages|count > 0} -
      -

      {lang}wcf.acp.package.list.count{/lang}

      -
      -
      - - - - - - - - - - {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} - - - - {foreach from=$packages item=$package} - - - - - - - - - - {if $additionalColumns[$package->packageID]|isset}{@$additionalColumns[$package->packageID]}{/if} - - {/foreach} - -
      - {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} - - {else} - - {/if} - {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package->package != 'com.woltlab.wcf' && $package->packageID != PACKAGE_ID} - - {else} - - {/if} - - {if $additionalButtons[$package->packageID]|isset}{@$additionalButtons[$package->packageID]}{/if} - {@$package->packageID} - {if $package->standalone} - - {elseif $package->isPlugin()} - - {else} - - {/if} - - {$package->getName()}{if $package->instanceNo > 1 && $package->instanceName == ''} (#{#$package->instanceNo}){/if} - {if $package->authorURL}{$package->author}{else}{$package->author}{/if}{$package->packageVersion}{@$package->updateDate|time}
      -
      -{/if} - - - -{include file='footer'} +{include file='header'} + + + +
      + +
      +

      {lang}wcf.acp.package.list{/lang}

      +
      +
      + +
      + {pages print=true assign=pagesLinks link="index.php?page=PackageList&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} + + {if $__wcf->session->getPermission('admin.system.package.canInstallPackage') || $additionalLargeButtons|isset} + + {/if} +
      + +{if $packages|count > 0} +
      +

      {lang}wcf.acp.package.list.count{/lang}

      +
      +
      + + + + + + + + + + {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} + + + + {foreach from=$packages item=$package} + + + + + + + + + + {if $additionalColumns[$package->packageID]|isset}{@$additionalColumns[$package->packageID]}{/if} + + {/foreach} + +
      + {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} + + {else} + + {/if} + {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package->package != 'com.woltlab.wcf' && $package->packageID != PACKAGE_ID} + + {else} + + {/if} + + {if $additionalButtons[$package->packageID]|isset}{@$additionalButtons[$package->packageID]}{/if} + {@$package->packageID} + {if $package->standalone} + + {elseif $package->isPlugin()} + + {else} + + {/if} + + {$package->getName()}{if $package->instanceNo > 1 && $package->instanceName == ''} (#{#$package->instanceNo}){/if} + {if $package->authorURL}{$package->author}{else}{$package->author}{/if}{$package->packageVersion}{@$package->updateDate|time}
      +
      +{/if} + + + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/packageStartInstall.tpl b/wcfsetup/install/files/acp/templates/packageStartInstall.tpl index f077b20d76..ea31a3b2a2 100644 --- a/wcfsetup/install/files/acp/templates/packageStartInstall.tpl +++ b/wcfsetup/install/files/acp/templates/packageStartInstall.tpl @@ -1,103 +1,103 @@ -{include file='header'} - - -
      - {if $packageID == 0} - -
      -

      {lang}wcf.acp.package.startInstall{/lang}

      -
      - {else} - -
      -

      {lang}wcf.acp.package.startUpdate{/lang}

      -
      - {/if} -
      - -{if $errorField != ''} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -
      - -
      - -
      -
      -
      -
      - {lang}wcf.acp.package.startInstall.source{/lang} - -
      -
      - -
      -
      - - {if $errorField == 'uploadPackage'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'noValidPackage'}{lang}wcf.acp.package.startInstall.error.noValidPackage{/lang}{/if} - {if $errorType == 'noValidUpdate'}{lang}wcf.acp.package.startInstall.error.noValidUpdate{/lang}{/if} - {if $errorType == 'noValidInstall'}{lang}wcf.acp.package.startInstall.error.noValidInstall{/lang}{/if} - {if $errorType == 'uploadFailed'}{lang}wcf.acp.package.startInstall.error.uploadFailed{/lang}{/if} - {if $errorType == 'uniqueAlreadyInstalled'}{lang}wcf.acp.package.startInstall.error.uniqueAlreadyInstalled{/lang}{/if} - {if $errorType == 'phpRequirements'}

      {$phpRequirements|print_r}
      {/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'downloadPackage'} -

      - {if $errorType == 'notFound'}{lang}wcf.acp.package.startInstall.error.notFound{/lang}{/if} - {if $errorType == 'noValidPackage'}{lang}wcf.acp.package.startInstall.error.noValidPackage{/lang}{/if} - {if $errorType == 'noValidUpdate'}{lang}wcf.acp.package.startInstall.error.noValidUpdate{/lang}{/if} - {if $errorType == 'noValidInstall'}{lang}wcf.acp.package.startInstall.error.noValidInstall{/lang}{/if} - {if $errorType == 'uniqueAlreadyInstalled'}{lang}wcf.acp.package.startInstall.error.uniqueAlreadyInstalled{/lang}{/if} -

      - {/if} -
      - -
      - - -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      -
      - -
      - - - - {@SID_INPUT_TAG} - - {if $packageID != 0}{/if} -
      -
      - -{include file='footer'} +{include file='header'} + + +
      + {if $packageID == 0} + +
      +

      {lang}wcf.acp.package.startInstall{/lang}

      +
      + {else} + +
      +

      {lang}wcf.acp.package.startUpdate{/lang}

      +
      + {/if} +
      + +{if $errorField != ''} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +
      + +
      + +
      +
      +
      +
      + {lang}wcf.acp.package.startInstall.source{/lang} + +
      +
      + +
      +
      + + {if $errorField == 'uploadPackage'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'noValidPackage'}{lang}wcf.acp.package.startInstall.error.noValidPackage{/lang}{/if} + {if $errorType == 'noValidUpdate'}{lang}wcf.acp.package.startInstall.error.noValidUpdate{/lang}{/if} + {if $errorType == 'noValidInstall'}{lang}wcf.acp.package.startInstall.error.noValidInstall{/lang}{/if} + {if $errorType == 'uploadFailed'}{lang}wcf.acp.package.startInstall.error.uploadFailed{/lang}{/if} + {if $errorType == 'uniqueAlreadyInstalled'}{lang}wcf.acp.package.startInstall.error.uniqueAlreadyInstalled{/lang}{/if} + {if $errorType == 'phpRequirements'}

      {$phpRequirements|print_r}
      {/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'downloadPackage'} +

      + {if $errorType == 'notFound'}{lang}wcf.acp.package.startInstall.error.notFound{/lang}{/if} + {if $errorType == 'noValidPackage'}{lang}wcf.acp.package.startInstall.error.noValidPackage{/lang}{/if} + {if $errorType == 'noValidUpdate'}{lang}wcf.acp.package.startInstall.error.noValidUpdate{/lang}{/if} + {if $errorType == 'noValidInstall'}{lang}wcf.acp.package.startInstall.error.noValidInstall{/lang}{/if} + {if $errorType == 'uniqueAlreadyInstalled'}{lang}wcf.acp.package.startInstall.error.uniqueAlreadyInstalled{/lang}{/if} +

      + {/if} +
      + +
      + + +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      +
      + +
      + + + + {@SID_INPUT_TAG} + + {if $packageID != 0}{/if} +
      +
      + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/packageUninstallationDependencies.tpl b/wcfsetup/install/files/acp/templates/packageUninstallationDependencies.tpl index 4de1d5b04a..5bd8d3966e 100644 --- a/wcfsetup/install/files/acp/templates/packageUninstallationDependencies.tpl +++ b/wcfsetup/install/files/acp/templates/packageUninstallationDependencies.tpl @@ -1,137 +1,137 @@ -{include file='header'} - - - -
      - -
      -

      {lang}wcf.acp.package.uninstall{/lang}: {$packageObj->getName()}

      -

      {$packageObj->packageDescription}

      -
      -
      - -
      - {lang}wcf.acp.package.view.properties{/lang} -
      -

      {lang}wcf.acp.package.view.identifier{/lang}

      -

      {$packageObj->package}

      -
      -
      -

      {lang}wcf.acp.package.view.version{/lang}

      -

      {$packageObj->packageVersion}

      -
      - {if $packageObj->instanceNo > 0} -
      -

      {lang}wcf.acp.package.view.instanceNo{/lang}

      -

      {$packageObj->instanceNo}

      -
      - {/if} - {if $packageObj->packageDir != ''} -
      -

      {lang}wcf.acp.package.view.dir{/lang}

      -

      {$packageObj->packageDir}

      -
      - {/if} -
      -

      {lang}wcf.acp.package.view.date{/lang}

      -

      {@$packageObj->packageDate|date}

      -
      - {if $packageObj->packageURL != ''} -
      -

      {lang}wcf.acp.package.view.url{/lang}

      -

      {$packageObj->packageURL}

      -
      - {/if} - {if $packageObj->parentPackageID} -
      -

      {lang}wcf.acp.package.view.parent{/lang}

      -

      {$packageObj->getParentPackage()->getName()}

      -
      - {/if} -
      -

      {lang}wcf.acp.package.view.author{/lang}

      -

      {if $packageObj->authorURL}{$packageObj->author}{else}{$packageObj->author}{/if}

      -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      - -{if $dependentPackages|count > 0} - {if $uninstallAvailable} -

      {lang}wcf.acp.package.uninstall.dependentPackages.warning{/lang}

      - {else} -

      {lang}wcf.acp.package.uninstall.dependentPackages.error{/lang}

      - {/if} - -
      -

      {lang}wcf.acp.package.view.dependentPackages{/lang}

      -
      -
      - - - - - - - - - - {if $additionalColumns|isset}{@$additionalColumns}{/if} - - - - {foreach from=$dependentPackages item=package} - - - - - - - - - - {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} - - {/foreach} - -
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      - {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} - - {else} - - {/if} - {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} - - {else} - - {/if} - - {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} - {@$package.packageID} - {if $package.standalone} - - {elseif $package.parentPackageID} - - {else} - - {/if} - {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      -
      -{/if} - -
      - {@SID_INPUT_TAG} - - - - - -
      - +{include file='header'} + + + +
      + +
      +

      {lang}wcf.acp.package.uninstall{/lang}: {$packageObj->getName()}

      +

      {$packageObj->packageDescription}

      +
      +
      + +
      + {lang}wcf.acp.package.view.properties{/lang} +
      +

      {lang}wcf.acp.package.view.identifier{/lang}

      +

      {$packageObj->package}

      +
      +
      +

      {lang}wcf.acp.package.view.version{/lang}

      +

      {$packageObj->packageVersion}

      +
      + {if $packageObj->instanceNo > 0} +
      +

      {lang}wcf.acp.package.view.instanceNo{/lang}

      +

      {$packageObj->instanceNo}

      +
      + {/if} + {if $packageObj->packageDir != ''} +
      +

      {lang}wcf.acp.package.view.dir{/lang}

      +

      {$packageObj->packageDir}

      +
      + {/if} +
      +

      {lang}wcf.acp.package.view.date{/lang}

      +

      {@$packageObj->packageDate|date}

      +
      + {if $packageObj->packageURL != ''} +
      +

      {lang}wcf.acp.package.view.url{/lang}

      +

      {$packageObj->packageURL}

      +
      + {/if} + {if $packageObj->parentPackageID} +
      +

      {lang}wcf.acp.package.view.parent{/lang}

      +

      {$packageObj->getParentPackage()->getName()}

      +
      + {/if} +
      +

      {lang}wcf.acp.package.view.author{/lang}

      +

      {if $packageObj->authorURL}{$packageObj->author}{else}{$packageObj->author}{/if}

      +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      + +{if $dependentPackages|count > 0} + {if $uninstallAvailable} +

      {lang}wcf.acp.package.uninstall.dependentPackages.warning{/lang}

      + {else} +

      {lang}wcf.acp.package.uninstall.dependentPackages.error{/lang}

      + {/if} + +
      +

      {lang}wcf.acp.package.view.dependentPackages{/lang}

      +
      +
      + + + + + + + + + + {if $additionalColumns|isset}{@$additionalColumns}{/if} + + + + {foreach from=$dependentPackages item=package} + + + + + + + + + + {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} + + {/foreach} + +
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      + {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} + + {else} + + {/if} + {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} + + {else} + + {/if} + + {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} + {@$package.packageID} + {if $package.standalone} + + {elseif $package.parentPackageID} + + {else} + + {/if} + {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      +
      +{/if} + +
      + {@SID_INPUT_TAG} + + + + + +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/packageUpdateAuth.tpl b/wcfsetup/install/files/acp/templates/packageUpdateAuth.tpl index 183dbe12fe..29cc6213bf 100644 --- a/wcfsetup/install/files/acp/templates/packageUpdateAuth.tpl +++ b/wcfsetup/install/files/acp/templates/packageUpdateAuth.tpl @@ -1,104 +1,104 @@ -{include file='header'} - -
      - -
      -

      {lang}wcf.acp.packageUpdate.auth{/lang}

      -
      -
      - -{if $errorField != ''} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -
      -
      -
      -
      - {lang}wcf.acp.packageUpdate.auth.data{/lang} - -
      -

      {lang}wcf.acp.packageUpdate.auth.url{/lang}

      -

      {$url}

      -
      - {if $realm} -
      -

      {lang}wcf.acp.packageUpdate.auth.realm{/lang}

      -

      {$realm}

      -
      - {/if} - {if $message} -
      -

      {lang}wcf.acp.packageUpdate.auth.message{/lang}

      -

      {@$message}

      -
      - {/if} -
      - -
      - {lang}wcf.acp.packageUpdate.auth.input{/lang} - -
      -
      - -
      -
      - -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'loginPassword'} -

      - {if $errorType == 'invalid'}{lang}wcf.acp.packageUpdate.auth.error{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      - -
      - -
      - -
      -
      - -
      - - - - - {@SID_INPUT_TAG} - - - {@$postParameters} -
      -
      - +{include file='header'} + +
      + +
      +

      {lang}wcf.acp.packageUpdate.auth{/lang}

      +
      +
      + +{if $errorField != ''} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +
      +
      +
      +
      + {lang}wcf.acp.packageUpdate.auth.data{/lang} + +
      +

      {lang}wcf.acp.packageUpdate.auth.url{/lang}

      +

      {$url}

      +
      + {if $realm} +
      +

      {lang}wcf.acp.packageUpdate.auth.realm{/lang}

      +

      {$realm}

      +
      + {/if} + {if $message} +
      +

      {lang}wcf.acp.packageUpdate.auth.message{/lang}

      +

      {@$message}

      +
      + {/if} +
      + +
      + {lang}wcf.acp.packageUpdate.auth.input{/lang} + +
      +
      + +
      +
      + +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'loginPassword'} +

      + {if $errorType == 'invalid'}{lang}wcf.acp.packageUpdate.auth.error{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      + +
      + +
      + +
      +
      + +
      + + + + + {@SID_INPUT_TAG} + + + {@$postParameters} +
      +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/packageView.tpl b/wcfsetup/install/files/acp/templates/packageView.tpl index 1a56a7dce8..4095598f0e 100644 --- a/wcfsetup/install/files/acp/templates/packageView.tpl +++ b/wcfsetup/install/files/acp/templates/packageView.tpl @@ -1,234 +1,234 @@ -{include file='header'} - -
      - -
      -

      {$package->getName()}

      -

      {$package->packageDescription}

      -
      -
      - -
      - {lang}wcf.acp.package.view.properties{/lang} -
      -

      {lang}wcf.acp.package.view.identifier{/lang}

      -

      {$package->package}

      -
      -
      -

      {lang}wcf.acp.package.view.version{/lang}

      -

      {$package->packageVersion}

      -
      - {if $package->instanceNo > 1} -
      -

      {lang}wcf.acp.package.view.instanceNo{/lang}

      -

      {#$package->instanceNo}

      -
      - {elseif $package->package == 'com.woltlab.wcf' && WCF_N != 1} -
      -

      {lang}wcf.acp.package.view.instanceNo{/lang}

      -

      {#WCF_N}

      -
      - {/if} - {if $package->packageDir != ''} -
      -

      {lang}wcf.acp.package.view.dir{/lang}

      -

      {$package->packageDir}

      -
      - {elseif $package->package == 'com.woltlab.wcf'} -
      -

      {lang}wcf.acp.package.view.dir{/lang}

      -

      {WCF_DIR}

      -
      - {/if} -
      -

      {lang}wcf.acp.package.view.date{/lang}

      -

      {@$package->packageDate|date}

      -
      -
      -

      {lang}wcf.acp.package.installDate{/lang}

      -

      {@$package->installDate|time}

      -
      -
      -

      {lang}wcf.acp.package.updateDate{/lang}

      -

      {@$package->updateDate|time}

      -
      - {if $package->packageURL != ''} -
      -

      {lang}wcf.acp.package.view.url{/lang}

      -

      {$package->packageURL}

      -
      - {/if} - {if $package->parentPackageID} -
      -

      {lang}wcf.acp.package.view.parent{/lang}

      -

      {$package->parentPackage()->getName()}

      -
      - {/if} -
      -

      {lang}wcf.acp.package.view.author{/lang}

      -

      {if $package->authorURL}{$package->author}{else}{$package->author}{/if}

      -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      - -{assign var=noDependentIsActive value=true} -{foreach from=$dependentPackages item=dependentPackage} - {if $dependentPackage.package != 'com.woltlab.wcf' && $dependentPackage.packageID == PACKAGE_ID} - {assign var=noDependentIsActive value=false} - {* TODO: maybe show user that this package can't be uninstalled because a dependent package is the active standalone application *} - {/if} -{/foreach} - -
      - -
      - -{if $requiredPackages|count > 0} -
      -
      -
      -
      -

      {lang}wcf.acp.package.view.requiredPackages{/lang}

      -

      {lang}wcf.acp.package.view.requiredPackages.description{/lang}

      -
      -
      -
      -
      - - - - - - - - - - {if $additionalColumns|isset}{@$additionalColumns}{/if} - - - - {foreach from=$requiredPackages item=$package} - - - - - - - - - - {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} - - {/foreach} - -
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      - {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} - - {else} - - {/if} - {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} - - {else} - - {/if} - - {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} - {@$package.packageID} - {if $package.standalone} - - {elseif $package.parentPackageID} - - {else} - - {/if} - {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      -
      - - -{/if} - -{if $dependentPackages|count > 0} -
      -
      -
      -
      -

      {lang}wcf.acp.package.view.dependentPackages{/lang}

      -

      {lang}wcf.acp.package.view.dependentPackages.description{/lang}

      -
      -
      -
      -
      - - - - - - - - - - {if $additionalColumns|isset}{@$additionalColumns}{/if} - - - - {foreach from=$dependentPackages item=$package} - - - - - - - - - - {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} - - {/foreach} - -
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      - {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} - - {else} - - {/if} - {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} - - {else} - - {/if} - - {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} - {@$package.packageID} - {if $package.standalone} - - {elseif $package.parentPackageID} - - {else} - - {/if} - {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      -
      - - -{/if} - -{include file='footer'} +{include file='header'} + +
      + +
      +

      {$package->getName()}

      +

      {$package->packageDescription}

      +
      +
      + +
      + {lang}wcf.acp.package.view.properties{/lang} +
      +

      {lang}wcf.acp.package.view.identifier{/lang}

      +

      {$package->package}

      +
      +
      +

      {lang}wcf.acp.package.view.version{/lang}

      +

      {$package->packageVersion}

      +
      + {if $package->instanceNo > 1} +
      +

      {lang}wcf.acp.package.view.instanceNo{/lang}

      +

      {#$package->instanceNo}

      +
      + {elseif $package->package == 'com.woltlab.wcf' && WCF_N != 1} +
      +

      {lang}wcf.acp.package.view.instanceNo{/lang}

      +

      {#WCF_N}

      +
      + {/if} + {if $package->packageDir != ''} +
      +

      {lang}wcf.acp.package.view.dir{/lang}

      +

      {$package->packageDir}

      +
      + {elseif $package->package == 'com.woltlab.wcf'} +
      +

      {lang}wcf.acp.package.view.dir{/lang}

      +

      {WCF_DIR}

      +
      + {/if} +
      +

      {lang}wcf.acp.package.view.date{/lang}

      +

      {@$package->packageDate|date}

      +
      +
      +

      {lang}wcf.acp.package.installDate{/lang}

      +

      {@$package->installDate|time}

      +
      +
      +

      {lang}wcf.acp.package.updateDate{/lang}

      +

      {@$package->updateDate|time}

      +
      + {if $package->packageURL != ''} +
      +

      {lang}wcf.acp.package.view.url{/lang}

      +

      {$package->packageURL}

      +
      + {/if} + {if $package->parentPackageID} +
      +

      {lang}wcf.acp.package.view.parent{/lang}

      +

      {$package->parentPackage()->getName()}

      +
      + {/if} +
      +

      {lang}wcf.acp.package.view.author{/lang}

      +

      {if $package->authorURL}{$package->author}{else}{$package->author}{/if}

      +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      + +{assign var=noDependentIsActive value=true} +{foreach from=$dependentPackages item=dependentPackage} + {if $dependentPackage.package != 'com.woltlab.wcf' && $dependentPackage.packageID == PACKAGE_ID} + {assign var=noDependentIsActive value=false} + {* TODO: maybe show user that this package can't be uninstalled because a dependent package is the active standalone application *} + {/if} +{/foreach} + +
      + +
      + +{if $requiredPackages|count > 0} +
      +
      +
      +
      +

      {lang}wcf.acp.package.view.requiredPackages{/lang}

      +

      {lang}wcf.acp.package.view.requiredPackages.description{/lang}

      +
      +
      +
      +
      + + + + + + + + + + {if $additionalColumns|isset}{@$additionalColumns}{/if} + + + + {foreach from=$requiredPackages item=$package} + + + + + + + + + + {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} + + {/foreach} + +
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      + {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} + + {else} + + {/if} + {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} + + {else} + + {/if} + + {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} + {@$package.packageID} + {if $package.standalone} + + {elseif $package.parentPackageID} + + {else} + + {/if} + {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      +
      + + +{/if} + +{if $dependentPackages|count > 0} +
      +
      +
      +
      +

      {lang}wcf.acp.package.view.dependentPackages{/lang}

      +

      {lang}wcf.acp.package.view.dependentPackages.description{/lang}

      +
      +
      +
      +
      + + + + + + + + + + {if $additionalColumns|isset}{@$additionalColumns}{/if} + + + + {foreach from=$dependentPackages item=$package} + + + + + + + + + + {if $package.additionalColumns|isset}{@$package.additionalColumns}{/if} + + {/foreach} + +
      {lang}wcf.acp.package.list.id{/lang}
      {lang}wcf.acp.package.list.name{/lang}
      {lang}wcf.acp.package.list.author{/lang}
      {lang}wcf.acp.package.list.version{/lang}
      {lang}wcf.acp.package.list.date{/lang}
      + {if $__wcf->session->getPermission('admin.system.package.canUpdatePackage')} + + {else} + + {/if} + {if $__wcf->session->getPermission('admin.system.package.canUninstallPackage') && $package.package != 'com.woltlab.wcf' && $package.packageID != PACKAGE_ID} + + {else} + + {/if} + + {if $package.additionalButtons|isset}{@$package.additionalButtons}{/if} + {@$package.packageID} + {if $package.standalone} + + {elseif $package.parentPackageID} + + {else} + + {/if} + {$package.packageName}{if $package.instanceNo > 1 && $package.instanceName == ''} (#{#$package.instanceNo}){/if}{if $package.authorURL}{$package.author}{else}{$package.author}{/if}{$package.packageVersion}{@$package.packageDate|date}
      +
      + + +{/if} + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/permissionDenied.tpl b/wcfsetup/install/files/acp/templates/permissionDenied.tpl index 7869663509..868bf62d5b 100644 --- a/wcfsetup/install/files/acp/templates/permissionDenied.tpl +++ b/wcfsetup/install/files/acp/templates/permissionDenied.tpl @@ -1,18 +1,18 @@ -{if $__wcf->session->getPermission('admin.general.canUseAcp')}{include file='header' templateName='permissionDenied'} - -

      {lang}wcf.global.error.permissionDenied{/lang}

      - -{include file='footer'} -{else}{capture assign='pageTitle'}{lang}wcf.global.error.permissionDenied.title{/lang}{/capture} -{include file='setupHeader'} - - - -

      {@$pageTitle}

      - -
      - -

      {lang}wcf.global.error.permissionDenied{/lang}

      - -{include file='setupFooter'} -{/if} +{if $__wcf->session->getPermission('admin.general.canUseAcp')}{include file='header' templateName='permissionDenied'} + +

      {lang}wcf.global.error.permissionDenied{/lang}

      + +{include file='footer'} +{else}{capture assign='pageTitle'}{lang}wcf.global.error.permissionDenied.title{/lang}{/capture} +{include file='setupHeader'} + + + +

      {@$pageTitle}

      + +
      + +

      {lang}wcf.global.error.permissionDenied{/lang}

      + +{include file='setupFooter'} +{/if} diff --git a/wcfsetup/install/files/acp/templates/setupFooter.tpl b/wcfsetup/install/files/acp/templates/setupFooter.tpl index b034bf680b..17c7245b64 100644 --- a/wcfsetup/install/files/acp/templates/setupFooter.tpl +++ b/wcfsetup/install/files/acp/templates/setupFooter.tpl @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/setupHeader.tpl b/wcfsetup/install/files/acp/templates/setupHeader.tpl index 952a0d1356..4dcd9d7e91 100644 --- a/wcfsetup/install/files/acp/templates/setupHeader.tpl +++ b/wcfsetup/install/files/acp/templates/setupHeader.tpl @@ -1,45 +1,45 @@ - - - - - {@$pageTitle} - {lang}wcf.global.pageTitle{/lang} - - - - - - - - - - - - - -
      - + + + + + {@$pageTitle} - {lang}wcf.global.pageTitle{/lang} + + + + + + + + + + + + + +
      + diff --git a/wcfsetup/install/files/acp/templates/setupWindowFooter.tpl b/wcfsetup/install/files/acp/templates/setupWindowFooter.tpl index b034bf680b..17c7245b64 100644 --- a/wcfsetup/install/files/acp/templates/setupWindowFooter.tpl +++ b/wcfsetup/install/files/acp/templates/setupWindowFooter.tpl @@ -1,3 +1,3 @@ -
      - +
      + \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/success.tpl b/wcfsetup/install/files/acp/templates/success.tpl index 3fa06c2c97..30371537fa 100644 --- a/wcfsetup/install/files/acp/templates/success.tpl +++ b/wcfsetup/install/files/acp/templates/success.tpl @@ -1,5 +1,5 @@ -{include file='header'} - -

      {lang}{@$message}{/lang}

      - +{include file='header'} + +

      {lang}{@$message}{/lang}

      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/updateServerAdd.tpl b/wcfsetup/install/files/acp/templates/updateServerAdd.tpl index f5d6c0fe14..ad90e8c2f4 100644 --- a/wcfsetup/install/files/acp/templates/updateServerAdd.tpl +++ b/wcfsetup/install/files/acp/templates/updateServerAdd.tpl @@ -1,97 +1,97 @@ -{include file='header'} - -
      - -
      -

      {lang}wcf.acp.updateServer.{$action}{/lang}

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -{if $success|isset} -

      {lang}wcf.acp.updateServer.{$action}.success{/lang}

      -{/if} - -{if $packageUpdateServer|isset && $packageUpdateServer->errorMessage} -

      {lang}wcf.acp.updateServer.lastErrorMessage{/lang}
      {$packageUpdateServer->errorMessage}

      -{/if} - - -
      -
      -
      - -
      - {lang}wcf.acp.updateServer.data{/lang} - -
      -
      - -
      -
      - - {if $errorField == 'server'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType == 'notValid'}{lang}wcf.acp.updateServer.server.error.notValid{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - -
      - -
      - - -
      -
      - -
      -
      - -
      - -
      - - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      -
      -
      - -
      - - - {@SID_INPUT_TAG} -
      -
      - -{include file='footer'} +{include file='header'} + +
      + +
      +

      {lang}wcf.acp.updateServer.{$action}{/lang}

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +{if $success|isset} +

      {lang}wcf.acp.updateServer.{$action}.success{/lang}

      +{/if} + +{if $packageUpdateServer|isset && $packageUpdateServer->errorMessage} +

      {lang}wcf.acp.updateServer.lastErrorMessage{/lang}
      {$packageUpdateServer->errorMessage}

      +{/if} + + +
      +
      +
      + +
      + {lang}wcf.acp.updateServer.data{/lang} + +
      +
      + +
      +
      + + {if $errorField == 'server'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType == 'notValid'}{lang}wcf.acp.updateServer.server.error.notValid{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + +
      + +
      + + +
      +
      + +
      +
      + +
      + +
      + + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      +
      +
      + +
      + + + {@SID_INPUT_TAG} +
      +
      + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/updateServerList.tpl b/wcfsetup/install/files/acp/templates/updateServerList.tpl index fa9dec31cb..7545decb80 100644 --- a/wcfsetup/install/files/acp/templates/updateServerList.tpl +++ b/wcfsetup/install/files/acp/templates/updateServerList.tpl @@ -1,97 +1,97 @@ -{include file='header'} - - - -
      - -
      -

      {lang}wcf.acp.updateServer.view{/lang}

      -
      -
      - -{if $deletedPackageUpdateServerID} -

      {lang}wcf.acp.updateServer.delete.success{/lang}

      -{/if} - - - -{if !$updateServers|count} -
      -
      -

      {lang}wcf.acp.updateServer.view.noneAvailable{/lang}

      -
      -
      -{else} -
      -

      {lang}wcf.acp.updateServer.list.available{/lang}

      -
      -
      - - - - - - - - - - - {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} - - - - {foreach from=$updateServers item=updateServer} - - - - - - - - - - {if $additionalColumns[$updateServer->packageUpdateServerID]|isset}{@$additionalColumns[$updateServer->packageUpdateServerID]}{/if} - - {/foreach} - -
      - - - - - {if $additionalButtons[$updateServer->packageUpdateServerID]|isset}{@$additionalButtons[$updateServer->packageUpdateServerID]}{/if} - {@$updateServer->packageUpdateServerID} - - {@$updateServer->serverURL} - - - {#$updateServer->packages} - - {@$updateServer->status} - -
      - {@$updateServer->errorMessage|truncate:"30"} -
      -
      - {if $updateServer->lastUpdateTime}{@$updateServer->lastUpdateTime|time}{/if} -
      -
      - -{/if} - -{include file='footer'} +{include file='header'} + + + +
      + +
      +

      {lang}wcf.acp.updateServer.view{/lang}

      +
      +
      + +{if $deletedPackageUpdateServerID} +

      {lang}wcf.acp.updateServer.delete.success{/lang}

      +{/if} + + + +{if !$updateServers|count} +
      +
      +

      {lang}wcf.acp.updateServer.view.noneAvailable{/lang}

      +
      +
      +{else} +
      +

      {lang}wcf.acp.updateServer.list.available{/lang}

      +
      +
      + + + + + + + + + + + {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} + + + + {foreach from=$updateServers item=updateServer} + + + + + + + + + + {if $additionalColumns[$updateServer->packageUpdateServerID]|isset}{@$additionalColumns[$updateServer->packageUpdateServerID]}{/if} + + {/foreach} + +
      + + + + + {if $additionalButtons[$updateServer->packageUpdateServerID]|isset}{@$additionalButtons[$updateServer->packageUpdateServerID]}{/if} + {@$updateServer->packageUpdateServerID} + + {@$updateServer->serverURL} + + + {#$updateServer->packages} + + {@$updateServer->status} + +
      + {@$updateServer->errorMessage|truncate:"30"} +
      +
      + {if $updateServer->lastUpdateTime}{@$updateServer->lastUpdateTime|time}{/if} +
      +
      + +{/if} + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/userAdd.tpl b/wcfsetup/install/files/acp/templates/userAdd.tpl index 646f7fa8aa..3a10881e48 100644 --- a/wcfsetup/install/files/acp/templates/userAdd.tpl +++ b/wcfsetup/install/files/acp/templates/userAdd.tpl @@ -1,264 +1,264 @@ -{include file='header'} - -{if $userID|isset} - - - -{/if} - - -
      - -
      -

      {lang}wcf.acp.user.{@$action}{/lang}

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -{if $success|isset} -

      {lang}wcf.acp.user.{@$action}.success{/lang}

      -{/if} - -{if $userID|isset && $__wcf->user->userID == $userID} -

      {lang}wcf.acp.user.edit.warning.selfEdit{/lang}

      -{/if} - -
      - -
      - -
      -
      -
      -
      -
      - -
      -
      - - {if $errorType.username|isset} -

      - {if $errorType.username == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType.username == 'notValid'}{lang}wcf.user.error.username.notValid{/lang}{/if} - {if $errorType.username == 'notUnique'}{lang}wcf.user.error.username.notUnique{/lang}{/if} -

      - {/if} -
      -
      - - {if $availableGroups|count} -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.groups{/lang} - -
      - {htmlCheckboxes options=$availableGroups name=groupIDs selected=$groupIDs} -
      -
      -
      -
      - {/if} - - {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditMailAddress')} -
      - {lang}wcf.user.email{/lang} -
      -
      - -
      -
      - - {if $errorType.email|isset} -

      - {if $errorType.email == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} - {if $errorType.email == 'notValid'}{lang}wcf.user.error.email.notValid{/lang}{/if} - {if $errorType.email == 'notUnique'}{lang}wcf.user.error.email.notUnique{/lang}{/if} -

      - {/if} -
      -
      - -
      -
      - -
      -
      - - {if $errorType.confirmEmail|isset} -

      - {if $errorType.confirmEmail == 'notEqual'}{lang}wcf.user.error.confirmEmail.notEqual{/lang}{/if} -

      - {/if} -
      -
      -
      - {/if} - - {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditPassword')} -
      - {lang}wcf.user.password{/lang} -
      -
      - -
      -
      - - {if $errorType.password|isset} -

      - {if $errorType.password == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      -
      - -
      -
      - -
      -
      - - {if $errorType.confirmPassword|isset} -

      - {if $errorType.confirmPassword == 'notEqual'}{lang}wcf.user.error.confirmPassword.notEqual{/lang}{/if} -

      - {/if} -
      -
      -
      - {/if} - - {if $additionalFields|isset}{@$additionalFields}{/if} - - {if $optionTree|count || $additionalTabs|isset} -
      -
      - -
      - - - {@SID_INPUT_TAG} - - {if $userID|isset}{/if} -
      -
      - -{include file='footer'} +{include file='header'} + +{if $userID|isset} + + + +{/if} + + +
      + +
      +

      {lang}wcf.acp.user.{@$action}{/lang}

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +{if $success|isset} +

      {lang}wcf.acp.user.{@$action}.success{/lang}

      +{/if} + +{if $userID|isset && $__wcf->user->userID == $userID} +

      {lang}wcf.acp.user.edit.warning.selfEdit{/lang}

      +{/if} + +
      + +
      + +
      +
      +
      +
      +
      + +
      +
      + + {if $errorType.username|isset} +

      + {if $errorType.username == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType.username == 'notValid'}{lang}wcf.user.error.username.notValid{/lang}{/if} + {if $errorType.username == 'notUnique'}{lang}wcf.user.error.username.notUnique{/lang}{/if} +

      + {/if} +
      +
      + + {if $availableGroups|count} +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.groups{/lang} + +
      + {htmlCheckboxes options=$availableGroups name=groupIDs selected=$groupIDs} +
      +
      +
      +
      + {/if} + + {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditMailAddress')} +
      + {lang}wcf.user.email{/lang} +
      +
      + +
      +
      + + {if $errorType.email|isset} +

      + {if $errorType.email == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} + {if $errorType.email == 'notValid'}{lang}wcf.user.error.email.notValid{/lang}{/if} + {if $errorType.email == 'notUnique'}{lang}wcf.user.error.email.notUnique{/lang}{/if} +

      + {/if} +
      +
      + +
      +
      + +
      +
      + + {if $errorType.confirmEmail|isset} +

      + {if $errorType.confirmEmail == 'notEqual'}{lang}wcf.user.error.confirmEmail.notEqual{/lang}{/if} +

      + {/if} +
      +
      +
      + {/if} + + {if $action == 'add' || $__wcf->session->getPermission('admin.user.canEditPassword')} +
      + {lang}wcf.user.password{/lang} +
      +
      + +
      +
      + + {if $errorType.password|isset} +

      + {if $errorType.password == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      +
      + +
      +
      + +
      +
      + + {if $errorType.confirmPassword|isset} +

      + {if $errorType.confirmPassword == 'notEqual'}{lang}wcf.user.error.confirmPassword.notEqual{/lang}{/if} +

      + {/if} +
      +
      +
      + {/if} + + {if $additionalFields|isset}{@$additionalFields}{/if} + + {if $optionTree|count || $additionalTabs|isset} +
      +
      + +
      + + + {@SID_INPUT_TAG} + + {if $userID|isset}{/if} +
      +
      + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/userAssignToGroup.tpl b/wcfsetup/install/files/acp/templates/userAssignToGroup.tpl index 403e91e5ee..cd262bd655 100644 --- a/wcfsetup/install/files/acp/templates/userAssignToGroup.tpl +++ b/wcfsetup/install/files/acp/templates/userAssignToGroup.tpl @@ -1,51 +1,51 @@ -{include file='header'} - -
      - -
      -

      {lang}wcf.acp.user.assignToGroup{/lang}

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -
      - -
      -
      -
      - {lang}wcf.acp.user.assignToGroup.markedUsers{/lang} - -
      - {implode from=$users item=$user}{$user}{/implode} -
      -
      - -
      - {lang}wcf.acp.user.groups{/lang} - -
      -
      - {htmlCheckboxes options=$groups name=groupIDs selected=$groupIDs} - {if $errorField == 'groupIDs'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      -
      -
      -
      -
      - -
      - - - {@SID_INPUT_TAG} - -
      -
      - +{include file='header'} + +
      + +
      +

      {lang}wcf.acp.user.assignToGroup{/lang}

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +
      + +
      +
      +
      + {lang}wcf.acp.user.assignToGroup.markedUsers{/lang} + +
      + {implode from=$users item=$user}{$user}{/implode} +
      +
      + +
      + {lang}wcf.acp.user.groups{/lang} + +
      +
      + {htmlCheckboxes options=$groups name=groupIDs selected=$groupIDs} + {if $errorField == 'groupIDs'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      +
      +
      +
      +
      + +
      + + + {@SID_INPUT_TAG} + +
      +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/userEmailAddressExport.tpl b/wcfsetup/install/files/acp/templates/userEmailAddressExport.tpl index ed7c2e206d..e34b5385b1 100644 --- a/wcfsetup/install/files/acp/templates/userEmailAddressExport.tpl +++ b/wcfsetup/install/files/acp/templates/userEmailAddressExport.tpl @@ -1,90 +1,90 @@ -{include file='header'} - - -
      - -
      -

      {lang}wcf.acp.user.exportEmailAddress{/lang}

      -
      -
      - -
      - -
      -
      -
      - {lang}wcf.acp.user.exportEmailAddress.markedUsers{/lang} - -
      - {implode from=$users item=$user}{$user}{/implode} -
      -
      - -
      - {lang}wcf.acp.user.exportEmailAddress.format{/lang} - -
      -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.exportEmailAddress.fileType{/lang} - -
      -
        -
      • -
      • -
      -
      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      -
      -
      - -
      -
      - -
      - - - {@SID_INPUT_TAG} - -
      -
      - +{include file='header'} + + +
      + +
      +

      {lang}wcf.acp.user.exportEmailAddress{/lang}

      +
      +
      + +
      + +
      +
      +
      + {lang}wcf.acp.user.exportEmailAddress.markedUsers{/lang} + +
      + {implode from=$users item=$user}{$user}{/implode} +
      +
      + +
      + {lang}wcf.acp.user.exportEmailAddress.format{/lang} + +
      +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.exportEmailAddress.fileType{/lang} + +
      +
        +
      • +
      • +
      +
      +
      +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      +
      +
      + +
      +
      + +
      + + + {@SID_INPUT_TAG} + +
      +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/userException.tpl b/wcfsetup/install/files/acp/templates/userException.tpl index 1da9bae441..7725e61510 100644 --- a/wcfsetup/install/files/acp/templates/userException.tpl +++ b/wcfsetup/install/files/acp/templates/userException.tpl @@ -1,21 +1,21 @@ -{include file='header' templateName='userException'} - -

      - {@$message} -

      - - - - - +{include file='header' templateName='userException'} + +

      + {@$message} +

      + + + + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/userGroupAdd.tpl b/wcfsetup/install/files/acp/templates/userGroupAdd.tpl index 625a2aaac1..80fa26939f 100644 --- a/wcfsetup/install/files/acp/templates/userGroupAdd.tpl +++ b/wcfsetup/install/files/acp/templates/userGroupAdd.tpl @@ -1,129 +1,129 @@ -{include file='header'} - - - -
      - -
      -

      {lang}wcf.acp.group.{@$action}{/lang}

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -{if $success|isset} -

      {lang}wcf.acp.group.{@$action}.success{/lang}

      -{/if} - -{if $warningSelfEdit|isset} -

      {lang}wcf.acp.group.edit.warning.selfIsMember{/lang}

      -{/if} - -
      -
      - -
      -
      -
      -
      -
      -
      - {lang}wcf.acp.group.data{/lang} - -
      -
      - -
      -
      - - {if $errorType.groupName|isset} -

      - {if $errorType.groupName == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      - - {if $additionalFieldSets|isset}{@$additionalFieldSets}{/if} - -
      - -
      -
      -
      - {foreach from=$optionTree item=categoryLevel1} - - {/foreach} -
      -
      - - {foreach from=$optionTree item=categoryLevel1} - {foreach from=$categoryLevel1[categories] item=categoryLevel2} - - {/foreach} - {/foreach} -
      -
      - -
      - - - {@SID_INPUT_TAG} - - {if $groupID|isset}{/if} - - - -
      -
      - +{include file='header'} + + + +
      + +
      +

      {lang}wcf.acp.group.{@$action}{/lang}

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +{if $success|isset} +

      {lang}wcf.acp.group.{@$action}.success{/lang}

      +{/if} + +{if $warningSelfEdit|isset} +

      {lang}wcf.acp.group.edit.warning.selfIsMember{/lang}

      +{/if} + +
      +
      + +
      +
      +
      +
      +
      +
      + {lang}wcf.acp.group.data{/lang} + +
      +
      + +
      +
      + + {if $errorType.groupName|isset} +

      + {if $errorType.groupName == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      + + {if $additionalFieldSets|isset}{@$additionalFieldSets}{/if} + +
      + +
      +
      +
      + {foreach from=$optionTree item=categoryLevel1} + + {/foreach} +
      +
      + + {foreach from=$optionTree item=categoryLevel1} + {foreach from=$categoryLevel1[categories] item=categoryLevel2} + + {/foreach} + {/foreach} +
      +
      + +
      + + + {@SID_INPUT_TAG} + + {if $groupID|isset}{/if} + + + +
      +
      + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/userGroupList.tpl b/wcfsetup/install/files/acp/templates/userGroupList.tpl index f878807c89..4b5e0f6397 100644 --- a/wcfsetup/install/files/acp/templates/userGroupList.tpl +++ b/wcfsetup/install/files/acp/templates/userGroupList.tpl @@ -1,100 +1,100 @@ -{include file='header'} - - - - - -
      - -
      -

      {lang}wcf.acp.group.list{/lang}

      -
      -
      - -{if $deletedGroups} -

      {lang}wcf.acp.group.delete.success{/lang}

      -{/if} - -
      - {pages print=true assign=pagesLinks link="index.php?page=UserGroupList&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} -
      - -
      -
      - -{if $groups|count} -
      -

      {lang}wcf.acp.group.list.data{/lang}

      -
      -
      - - - - - - - - {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} - - - - {foreach from=$groups item=group} - - - - - - - {if $additionalColumns[$group->groupID]|isset}{@$additionalColumns[$group->groupID]}{/if} - - {/foreach} - -
      - {if $group->isEditable()} - - {else} - - {/if} - {if $group->isDeletable()} - - - {else} - - {/if} - - {if $additionalButtons[$group->groupID]|isset}{@$additionalButtons[$group->groupID]}{/if} - {@$group->groupID}{if $group->isEditable()}{$group->groupName}{else}{$group->groupName}{/if}{#$group->members}
      -
      -{/if} - - - +{include file='header'} + + + + + +
      + +
      +

      {lang}wcf.acp.group.list{/lang}

      +
      +
      + +{if $deletedGroups} +

      {lang}wcf.acp.group.delete.success{/lang}

      +{/if} + +
      + {pages print=true assign=pagesLinks link="index.php?page=UserGroupList&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} +
      + +
      +
      + +{if $groups|count} +
      +

      {lang}wcf.acp.group.list.data{/lang}

      +
      +
      + + + + + + + + {if $additionalHeadColumns|isset}{@$additionalHeadColumns}{/if} + + + + {foreach from=$groups item=group} + + + + + + + {if $additionalColumns[$group->groupID]|isset}{@$additionalColumns[$group->groupID]}{/if} + + {/foreach} + +
      + {if $group->isEditable()} + + {else} + + {/if} + {if $group->isDeletable()} + + + {else} + + {/if} + + {if $additionalButtons[$group->groupID]|isset}{@$additionalButtons[$group->groupID]}{/if} + {@$group->groupID}{if $group->isEditable()}{$group->groupName}{else}{$group->groupName}{/if}{#$group->members}
      +
      +{/if} + + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/userList.tpl b/wcfsetup/install/files/acp/templates/userList.tpl index 1f5d95b902..3f33547d05 100644 --- a/wcfsetup/install/files/acp/templates/userList.tpl +++ b/wcfsetup/install/files/acp/templates/userList.tpl @@ -1,151 +1,151 @@ -{include file='header'} - - - - - - -
      - -
      -

      {lang}wcf.acp.user.{if $searchID}search{else}list{/if}{/lang}

      -

      {if $searchID}{lang}wcf.acp.user.search.matches{/lang}{else}{lang}wcf.acp.user.list.count{/lang}{/if}

      -
      -
      - -{assign var=encodedURL value=$url|rawurlencode} -{assign var=encodedAction value=$action|rawurlencode} -
      - {pages print=true assign=pagesLinks link="index.php?page=UserList&pageNo=%d&searchID=$searchID&action=$encodedAction&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} - - -
      - -
      -
      - -
      -
      -{if $users|count} -
      - - - - - - - - {foreach from=$columnHeads key=column item=columnLanguageVariable} - - {/foreach} - - {if $additionalColumnHeads|isset}{@$additionalColumnHeads}{/if} - - - - {foreach from=$users item=user} - - - - - - - {foreach from=$columnHeads key=column item=columnLanguageVariable} - - {/foreach} - - {if $additionalColumns[$user->userID]|isset}{@$additionalColumns[$user->userID]}{/if} - - {/foreach} - -
      - - - {if $user->editable} - - {else} - - {/if} - {if $user->deletable} - - {else} - - {/if} - - {if $additionalButtons[$user->userID]|isset}{@$additionalButtons[$user->userID]}{/if} - {@$user->userID}{if $user->editable}{$user->username}{else}{$user->username}{/if}{if $columnValues[$user->userID][$column]|isset}{@$columnValues[$user->userID][$column]}{/if}
      -
      - - -{else} -
      -
      -

      {lang}wcf.acp.user.search.error.noMatches{/lang}

      -
      -
      -{/if} - -{include file='footer'} +{include file='header'} + + + + + + +
      + +
      +

      {lang}wcf.acp.user.{if $searchID}search{else}list{/if}{/lang}

      +

      {if $searchID}{lang}wcf.acp.user.search.matches{/lang}{else}{lang}wcf.acp.user.list.count{/lang}{/if}

      +
      +
      + +{assign var=encodedURL value=$url|rawurlencode} +{assign var=encodedAction value=$action|rawurlencode} +
      + {pages print=true assign=pagesLinks link="index.php?page=UserList&pageNo=%d&searchID=$searchID&action=$encodedAction&sortField=$sortField&sortOrder=$sortOrder&packageID="|concat:SID_ARG_2ND_NOT_ENCODED} + + +
      + +
      +
      + +
      +
      +{if $users|count} +
      + + + + + + + + {foreach from=$columnHeads key=column item=columnLanguageVariable} + + {/foreach} + + {if $additionalColumnHeads|isset}{@$additionalColumnHeads}{/if} + + + + {foreach from=$users item=user} + + + + + + + {foreach from=$columnHeads key=column item=columnLanguageVariable} + + {/foreach} + + {if $additionalColumns[$user->userID]|isset}{@$additionalColumns[$user->userID]}{/if} + + {/foreach} + +
      + + + {if $user->editable} + + {else} + + {/if} + {if $user->deletable} + + {else} + + {/if} + + {if $additionalButtons[$user->userID]|isset}{@$additionalButtons[$user->userID]}{/if} + {@$user->userID}{if $user->editable}{$user->username}{else}{$user->username}{/if}{if $columnValues[$user->userID][$column]|isset}{@$columnValues[$user->userID][$column]}{/if}
      +
      + + +{else} +
      +
      +

      {lang}wcf.acp.user.search.error.noMatches{/lang}

      +
      +
      +{/if} + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/userMail.tpl b/wcfsetup/install/files/acp/templates/userMail.tpl index ebbd9e317a..207a74f0d4 100644 --- a/wcfsetup/install/files/acp/templates/userMail.tpl +++ b/wcfsetup/install/files/acp/templates/userMail.tpl @@ -1,154 +1,154 @@ -{include file='header'} - -
      - -
      -

      - {if $action == 'all'} - {lang}wcf.acp.user.sendMail.all{/lang} - {elseif $action == 'group'} - {lang}wcf.acp.user.sendMail.group{/lang} - {else} - {lang}wcf.acp.user.sendMail{/lang} - {/if} -

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -
      - -
      - -
      -
      -
      - {if $action == ''} -
      - {lang}wcf.acp.user.sendMail.markedUsers{/lang} - -
      - {implode from=$users item=$user}{$user}{/implode} -
      -
      - {/if} - {if $action == 'group'} -
      - {lang}wcf.acp.user.sendMail.groups{/lang} - -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.groups{/lang} - -
      - {htmlCheckboxes options=$groups name=groupIDs selected=$groupIDs} -
      -
      - {if $errorField == 'groupIDs'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      -
      -
      - {/if} -
      - {lang}wcf.acp.user.sendMail.mail{/lang} - -
      -
      -
      - -
      -
      - - {if $errorField == 'subject'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'from'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'text'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} -
      -
      -
      - -
      - - - - {@SID_INPUT_TAG} - -
      -
      - -{include file='footer'} +{include file='header'} + +
      + +
      +

      + {if $action == 'all'} + {lang}wcf.acp.user.sendMail.all{/lang} + {elseif $action == 'group'} + {lang}wcf.acp.user.sendMail.group{/lang} + {else} + {lang}wcf.acp.user.sendMail{/lang} + {/if} +

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +
      + +
      + +
      +
      +
      + {if $action == ''} +
      + {lang}wcf.acp.user.sendMail.markedUsers{/lang} + +
      + {implode from=$users item=$user}{$user}{/implode} +
      +
      + {/if} + {if $action == 'group'} +
      + {lang}wcf.acp.user.sendMail.groups{/lang} + +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.groups{/lang} + +
      + {htmlCheckboxes options=$groups name=groupIDs selected=$groupIDs} +
      +
      + {if $errorField == 'groupIDs'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      +
      +
      + {/if} +
      + {lang}wcf.acp.user.sendMail.mail{/lang} + +
      +
      +
      + +
      +
      + + {if $errorField == 'subject'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'from'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'text'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} +
      +
      +
      + +
      + + + + {@SID_INPUT_TAG} + +
      +
      + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/userSearch.tpl b/wcfsetup/install/files/acp/templates/userSearch.tpl index f50c11a063..2f6d30708d 100644 --- a/wcfsetup/install/files/acp/templates/userSearch.tpl +++ b/wcfsetup/install/files/acp/templates/userSearch.tpl @@ -1,240 +1,240 @@ -{include file='header'} - - - - - -
      - -
      -

      {lang}wcf.acp.user.search{/lang}

      -
      -
      - -{if $errorField == 'search'} -

      {lang}wcf.acp.user.search.error.noMatches{/lang}

      -{/if} - -{*if $deletedUsers} -

      {lang}wcf.acp.user.delete.success{/lang}

      -{elseif $deletedUsers === 0} -

      {lang}wcf.acp.user.delete.error{/lang}

      -{/if*} - -
      - -
      - -
      -
      -
      -
      - {lang}wcf.acp.user.search.conditions.general{/lang} -
      -
      - -
      -
      - - -
      -
      - -
      -
      - -
      -
      - -
      -
      - - {if $__wcf->session->getPermission('admin.user.canEditMailAddress')} -
      -
      - -
      -
      - -
      -
      - {/if} - - {if $availableGroups|count} -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.groups{/lang} - -
      - {htmlCheckboxes options=$availableGroups name='groupIDs' selected=$groupIDs} - - -
      -
      -
      -
      - {/if} - - {if $availableLanguages|count > 1} -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.language{/lang} - -
      - {htmlCheckboxes options=$availableLanguages name='languageIDs' selected=$languageIDs disableEncoding=true} -
      -
      -
      -
      - {/if} -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} - - -
      -
      -
      - - {if $optionTree|count} - - {/if} - - {if $additionalTabContents|isset}{@$additionalTabContents}{/if} - - - -
      -
      - -
      - - - {@SID_INPUT_TAG} -
      -
      - -{include file='footer'} +{include file='header'} + + + + + +
      + +
      +

      {lang}wcf.acp.user.search{/lang}

      +
      +
      + +{if $errorField == 'search'} +

      {lang}wcf.acp.user.search.error.noMatches{/lang}

      +{/if} + +{*if $deletedUsers} +

      {lang}wcf.acp.user.delete.success{/lang}

      +{elseif $deletedUsers === 0} +

      {lang}wcf.acp.user.delete.error{/lang}

      +{/if*} + +
      + +
      + +
      +
      +
      +
      + {lang}wcf.acp.user.search.conditions.general{/lang} +
      +
      + +
      +
      + + +
      +
      + +
      +
      + +
      +
      + +
      +
      + + {if $__wcf->session->getPermission('admin.user.canEditMailAddress')} +
      +
      + +
      +
      + +
      +
      + {/if} + + {if $availableGroups|count} +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.groups{/lang} + +
      + {htmlCheckboxes options=$availableGroups name='groupIDs' selected=$groupIDs} + + +
      +
      +
      +
      + {/if} + + {if $availableLanguages|count > 1} +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.language{/lang} + +
      + {htmlCheckboxes options=$availableLanguages name='languageIDs' selected=$languageIDs disableEncoding=true} +
      +
      +
      +
      + {/if} +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} + + +
      +
      +
      + + {if $optionTree|count} + + {/if} + + {if $additionalTabContents|isset}{@$additionalTabContents}{/if} + + + +
      +
      + +
      + + + {@SID_INPUT_TAG} +
      +
      + +{include file='footer'} diff --git a/wcfsetup/install/files/acp/templates/usersMassProcessing.tpl b/wcfsetup/install/files/acp/templates/usersMassProcessing.tpl index d72d8e556e..042180cd6e 100644 --- a/wcfsetup/install/files/acp/templates/usersMassProcessing.tpl +++ b/wcfsetup/install/files/acp/templates/usersMassProcessing.tpl @@ -1,9 +1,9 @@ -{include file='header'} - - - - + + - -
      - -
      -

      {lang}wcf.acp.user.massProcessing{/lang}

      -
      -
      - -{if $errorField} -

      {lang}wcf.global.form.error{/lang}

      -{/if} - -{if $affectedUsers|isset} -

      {lang}wcf.acp.user.massProcessing.success{/lang}

      -{/if} - -

      {lang}wcf.acp.user.massProcessing.warning{/lang}

      - -
      -
      -
      -

      {lang}wcf.acp.user.massProcessing.conditions{/lang}

      - -
      - {lang}wcf.acp.user.search.conditions.general{/lang} - -
      -
      - -
      -
      - - -
      -
      - - {if $__wcf->session->getPermission('admin.user.canEditMailAddress')} -
      -
      - -
      -
      - -
      -
      - {/if} - - {if $availableGroups|count} -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.groups{/lang} - -
      - {htmlCheckboxes options=$availableGroups name='groupIDArray' selected=$groupIDArray} - - -
      -
      -
      -
      - {/if} - - {if $availableLanguages|count > 1} -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.language{/lang} - -
      - {htmlCheckboxes options=$availableLanguages name='languageIDArray' selected=$languageIDArray disableEncoding=true} -
      -
      -
      -
      - {/if} -
      - - {if $additionalFields|isset}{@$additionalFields}{/if} - -
      - -
      -
      -
      -
      - - {if $options|count} - - {/if} - + onloadEvents.push(function() { setFileType('{@$fileType}'); }); + //]]> + + +
      + +
      +

      {lang}wcf.acp.user.massProcessing{/lang}

      +
      +
      + +{if $errorField} +

      {lang}wcf.global.form.error{/lang}

      +{/if} + +{if $affectedUsers|isset} +

      {lang}wcf.acp.user.massProcessing.success{/lang}

      +{/if} + +

      {lang}wcf.acp.user.massProcessing.warning{/lang}

      + + +
      +
      +

      {lang}wcf.acp.user.massProcessing.conditions{/lang}

      + +
      + {lang}wcf.acp.user.search.conditions.general{/lang} + +
      +
      + +
      +
      + + +
      +
      + + {if $__wcf->session->getPermission('admin.user.canEditMailAddress')} +
      +
      + +
      +
      + +
      +
      + {/if} + + {if $availableGroups|count} +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.groups{/lang} + +
      + {htmlCheckboxes options=$availableGroups name='groupIDArray' selected=$groupIDArray} + + +
      +
      +
      +
      + {/if} + + {if $availableLanguages|count > 1} +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.language{/lang} + +
      + {htmlCheckboxes options=$availableLanguages name='languageIDArray' selected=$languageIDArray disableEncoding=true} +
      +
      +
      +
      + {/if} +
      + + {if $additionalFields|isset}{@$additionalFields}{/if} + +
      + +
      +
      +
      +
      + + {if $options|count} + + {/if} + {if $additionalTabContents|isset}{@$additionalTabContents}{/if}
      -
      -
      -
      -

      {lang}wcf.acp.user.massProcessing.action{/lang}

      - -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.massProcessing.action{/lang} -
      -
        - {if $__wcf->session->getPermission('admin.user.canMailUser')} -
      • -
      • - {/if} - {if $__wcf->session->getPermission('admin.user.canEditUser')} -
      • - {/if} - {if $__wcf->session->getPermission('admin.user.canDeleteUser')} -
      • - {/if} - {if $additionalActions|isset}{@$additionalActions}{/if} -
      -
      - {if $errorField == 'action'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      -
      -
      - -
      -
      - {lang}wcf.acp.user.sendMail.mail{/lang} - -
      -
      -
      - -
      -
      - - {if $errorField == 'subject'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'from'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      - - {if $errorField == 'text'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      - -
      - - -
      -
      - -
      -
      -
      -
      -
      - -
      -
      - {lang}wcf.acp.user.exportEmailAddress.format{/lang} - -
      -
      -
      - -
      -
      -
      - {lang}wcf.acp.user.exportEmailAddress.fileType{/lang} - -
      -
        -
      • -
      • -
      -
      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      -
      -
      -
      - -
      -
      - {lang}wcf.acp.user.groups{/lang} - -
      -
      - {htmlCheckboxes options=$availableGroups name=assignToGroupIDArray selected=$assignToGroupIDArray} - {if $errorField == 'assignToGroupIDArray'} -

      - {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} -

      - {/if} -
      -
      -
      -
      +
      +
      +
      +

      {lang}wcf.acp.user.massProcessing.action{/lang}

      + +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.massProcessing.action{/lang} +
      +
        + {if $__wcf->session->getPermission('admin.user.canMailUser')} +
      • +
      • + {/if} + {if $__wcf->session->getPermission('admin.user.canEditUser')} +
      • + {/if} + {if $__wcf->session->getPermission('admin.user.canDeleteUser')} +
      • + {/if} + {if $additionalActions|isset}{@$additionalActions}{/if} +
      +
      + {if $errorField == 'action'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      +
      +
      + +
      +
      + {lang}wcf.acp.user.sendMail.mail{/lang} + +
      +
      +
      + +
      +
      + + {if $errorField == 'subject'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'from'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      + + {if $errorField == 'text'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      + +
      + + +
      +
      + +
      +
      +
      +
      +
      - {if $additionalActionSettings|isset}{@$additionalActionSettings}{/if} -
      -
      - -
      - - - {@SID_INPUT_TAG} -
      - - +
      +
      + {lang}wcf.acp.user.exportEmailAddress.format{/lang} + +
      +
      +
      + +
      +
      +
      + {lang}wcf.acp.user.exportEmailAddress.fileType{/lang} + +
      +
        +
      • +
      • +
      +
      +
      +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      +
      +
      +
      + +
      +
      + {lang}wcf.acp.user.groups{/lang} + +
      +
      + {htmlCheckboxes options=$availableGroups name=assignToGroupIDArray selected=$assignToGroupIDArray} + {if $errorField == 'assignToGroupIDArray'} +

      + {if $errorType == 'empty'}{lang}wcf.global.error.empty{/lang}{/if} +

      + {/if} +
      +
      +
      +
      + + {if $additionalActionSettings|isset}{@$additionalActionSettings}{/if} +
      +
      + +
      + + + {@SID_INPUT_TAG} +
      + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/worker.tpl b/wcfsetup/install/files/acp/templates/worker.tpl index bcd2aa67f5..e6047f87fb 100644 --- a/wcfsetup/install/files/acp/templates/worker.tpl +++ b/wcfsetup/install/files/acp/templates/worker.tpl @@ -1,70 +1,70 @@ -{if !$progress|isset}{assign var="progress" value=0}{/if} -{assign var="actionTitle" value=$pageTitle} -{capture assign="pageTitle"}{lang}wcf.acp.worker.progressBar{/lang} - {@$pageTitle}{/capture} -{include file='setupHeader'} - - - - - -

      {lang}wcf.global.pageTitle{/lang}
      {@$actionTitle}

      - -
      -
      -
      {lang}wcf.acp.worker.progressBar{/lang}
      -
      - -
      - -

      {lang}wcf.acp.worker.title{/lang}

      - -

      {lang}wcf.acp.worker.description{/lang}

      - -
      - {lang}wcf.acp.worker.currentStep{/lang} - -
      -
      - - -
      -
      - +{if !$progress|isset}{assign var="progress" value=0}{/if} +{assign var="actionTitle" value=$pageTitle} +{capture assign="pageTitle"}{lang}wcf.acp.worker.progressBar{/lang} - {@$pageTitle}{/capture} +{include file='setupHeader'} + + + + + +

      {lang}wcf.global.pageTitle{/lang}
      {@$actionTitle}

      + +
      +
      +
      {lang}wcf.acp.worker.progressBar{/lang}
      +
      + +
      + +

      {lang}wcf.acp.worker.title{/lang}

      + +

      {lang}wcf.acp.worker.description{/lang}

      + +
      + {lang}wcf.acp.worker.currentStep{/lang} + +
      +
      + + +
      +
      + {include file='setupFooter'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/workerException.tpl b/wcfsetup/install/files/acp/templates/workerException.tpl index f2e46bb67f..c7b2949a3f 100644 --- a/wcfsetup/install/files/acp/templates/workerException.tpl +++ b/wcfsetup/install/files/acp/templates/workerException.tpl @@ -1,14 +1,14 @@ -{include file='setupWindowHeader'} - - - -{$e->show()} - +{include file='setupWindowHeader'} + + + +{$e->show()} + {include file='setupWindowFooter'} \ No newline at end of file diff --git a/wcfsetup/install/files/acp/templates/workerFinish.tpl b/wcfsetup/install/files/acp/templates/workerFinish.tpl index f5e86f00a5..8d5146419c 100644 --- a/wcfsetup/install/files/acp/templates/workerFinish.tpl +++ b/wcfsetup/install/files/acp/templates/workerFinish.tpl @@ -1,23 +1,23 @@ -{include file='setupWindowHeader'} - -
      - -
      - - - -{if $message|isset} - {@$message} -{/if} - -{include file='setupWindowFooter'} - +{include file='setupWindowHeader'} + +
      + +
      + + + +{if $message|isset} + {@$message} +{/if} + +{include file='setupWindowFooter'} + diff --git a/wcfsetup/install/files/acp/templates/workerNext.tpl b/wcfsetup/install/files/acp/templates/workerNext.tpl index 98eff2a149..ac4a114335 100644 --- a/wcfsetup/install/files/acp/templates/workerNext.tpl +++ b/wcfsetup/install/files/acp/templates/workerNext.tpl @@ -1,21 +1,21 @@ -{include file='setupWindowHeader'} - -

      Step: {@$stepTitle}

      - -
      - -
      - - - +{include file='setupWindowHeader'} + +

      Step: {@$stepTitle}

      + +
      + +
      + + + {include file='setupWindowFooter'} \ No newline at end of file diff --git a/wcfsetup/install/files/global.php b/wcfsetup/install/files/global.php index b46f39faa2..e2be8b72a6 100644 --- a/wcfsetup/install/files/global.php +++ b/wcfsetup/install/files/global.php @@ -1,14 +1,14 @@ - - * @package com.woltlab.wcf - * @category Community Framework - */ -// define the wcf-root-dir -define('WCF_DIR', dirname(__FILE__).'/'); - -// initiate wcf core -require_once(WCF_DIR.'lib/system/WCF.class.php'); + + * @package com.woltlab.wcf + * @category Community Framework + */ +// define the wcf-root-dir +define('WCF_DIR', dirname(__FILE__).'/'); + +// initiate wcf core +require_once(WCF_DIR.'lib/system/WCF.class.php'); new wcf\system\WCF(); diff --git a/wcfsetup/install/files/js/3rdParty/jquery-ui.min.js b/wcfsetup/install/files/js/3rdParty/jquery-ui.min.js index 67cd59841a..964a5772f3 100644 --- a/wcfsetup/install/files/js/3rdParty/jquery-ui.min.js +++ b/wcfsetup/install/files/js/3rdParty/jquery-ui.min.js @@ -1,406 +1,406 @@ -/*! - * jQuery UI 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(b,d){function e(g){return!b(g).parents().andSelf().filter(function(){return b.curCSS(this,"visibility")==="hidden"||b.expr.filters.hidden(this)}).length}b.ui=b.ui||{};if(!b.ui.version){b.extend(b.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, -NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});b.fn.extend({_focus:b.fn.focus,focus:function(g,f){return typeof g==="number"?this.each(function(){var a=this;setTimeout(function(){b(a).focus();f&&f.call(a)},g)}):this._focus.apply(this,arguments)},scrollParent:function(){var g;g=b.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(b.curCSS(this, -"position",1))&&/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!g.length?b(document):g},zIndex:function(g){if(g!==d)return this.css("zIndex",g);if(this.length){g=b(this[0]);for(var f;g.length&&g[0]!==document;){f=g.css("position"); -if(f==="absolute"||f==="relative"||f==="fixed"){f=parseInt(g.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}g=g.parent()}}return 0},disableSelection:function(){return this.bind((b.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(g){g.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});b.each(["Width","Height"],function(g,f){function a(j,n,p,l){b.each(c,function(){n-=parseFloat(b.curCSS(j,"padding"+this,true))||0;if(p)n-=parseFloat(b.curCSS(j, -"border"+this+"Width",true))||0;if(l)n-=parseFloat(b.curCSS(j,"margin"+this,true))||0});return n}var c=f==="Width"?["Left","Right"]:["Top","Bottom"],h=f.toLowerCase(),i={innerWidth:b.fn.innerWidth,innerHeight:b.fn.innerHeight,outerWidth:b.fn.outerWidth,outerHeight:b.fn.outerHeight};b.fn["inner"+f]=function(j){if(j===d)return i["inner"+f].call(this);return this.each(function(){b(this).css(h,a(this,j)+"px")})};b.fn["outer"+f]=function(j,n){if(typeof j!=="number")return i["outer"+f].call(this,j);return this.each(function(){b(this).css(h, -a(this,j,true,n)+"px")})}});b.extend(b.expr[":"],{data:function(g,f,a){return!!b.data(g,a[3])},focusable:function(g){var f=g.nodeName.toLowerCase(),a=b.attr(g,"tabindex");if("area"===f){f=g.parentNode;a=f.name;if(!g.href||!a||f.nodeName.toLowerCase()!=="map")return false;g=b("img[usemap=#"+a+"]")[0];return!!g&&e(g)}return(/input|select|textarea|button|object/.test(f)?!g.disabled:"a"==f?g.href||!isNaN(a):!isNaN(a))&&e(g)},tabbable:function(g){var f=b.attr(g,"tabindex");return(isNaN(f)||f>=0)&&b(g).is(":focusable")}}); -b(function(){var g=document.body,f=g.appendChild(f=document.createElement("div"));b.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=f.offsetHeight===100;b.support.selectstart="onselectstart"in f;g.removeChild(f).style.display="none"});b.extend(b.ui,{plugin:{add:function(g,f,a){g=b.ui[g].prototype;for(var c in a){g.plugins[c]=g.plugins[c]||[];g.plugins[c].push([f,a[c]])}},call:function(g,f,a){if((f=g.plugins[f])&&g.element[0].parentNode)for(var c=0;c0)return true;g[f]=1;a=g[f]>0;g[f]=0;return a},isOverAxis:function(g,f,a){return g>f&&g=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate); -if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&b.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -(function(b){b.widget("ui.draggable",b.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(d){var e= -this.options;if(this.helper||e.disabled||b(d.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(d);if(!this.handle)return false;return true},_mouseStart:function(d){var e=this.options;this.helper=this._createHelper(d);this._cacheHelperProportions();if(b.ui.ddmanager)b.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- -this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt);e.containment&&this._setContainment();if(this._trigger("start",d)===false){this._clear();return false}this._cacheHelperProportions(); -b.ui.ddmanager&&!e.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,d);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(d,true);return true},_mouseDrag:function(d,e){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!e){e=this._uiHash();if(this._trigger("drag",d,e)===false){this._mouseUp({});return false}this.position=e.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| -this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";b.ui.ddmanager&&b.ui.ddmanager.drag(this,d);return false},_mouseStop:function(d){var e=false;if(b.ui.ddmanager&&!this.options.dropBehaviour)e=b.ui.ddmanager.drop(this,d);if(this.dropped){e=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!e||this.options.revert=="valid"&&e||this.options.revert===true||b.isFunction(this.options.revert)&& -this.options.revert.call(this.element,e)){var g=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){g._trigger("stop",d)!==false&&g._clear()})}else this._trigger("stop",d)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(d){var e=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== -d.target)e=true});return e},_createHelper:function(d){var e=this.options;d=b.isFunction(e.helper)?b(e.helper.apply(this.element[0],[d])):e.helper=="clone"?this.element.clone():this.element;d.parents("body").length||d.appendTo(e.appendTo=="parent"?this.element[0].parentNode:e.appendTo);d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(d){if(typeof d=="string")d=d.split(" ");if(b.isArray(d))d={left:+d[0],top:+d[1]|| -0};if("left"in d)this.offset.click.left=d.left+this.margins.left;if("right"in d)this.offset.click.left=this.helperProportions.width-d.right+this.margins.left;if("top"in d)this.offset.click.top=d.top+this.margins.top;if("bottom"in d)this.offset.click.top=this.helperProportions.height-d.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var d=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], -this.offsetParent[0])){d.left+=this.scrollParent.scrollLeft();d.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)d={top:0,left:0};return{top:d.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:d.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var d=this.element.position();return{top:d.top- -(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:d.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(), -height:this.helper.outerHeight()}},_setContainment:function(){var d=this.options;if(d.containment=="parent")d.containment=this.helper[0].parentNode;if(d.containment=="document"||d.containment=="window")this.containment=[(d.containment=="document"?0:b(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(d.containment=="document"?0:b(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(d.containment=="document"?0:b(window).scrollLeft())+b(d.containment=="document"? -document:window).width()-this.helperProportions.width-this.margins.left,(d.containment=="document"?0:b(window).scrollTop())+(b(d.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(d.containment)&&d.containment.constructor!=Array){var e=b(d.containment)[0];if(e){d=b(d.containment).offset();var g=b(e).css("overflow")!="hidden";this.containment=[d.left+(parseInt(b(e).css("borderLeftWidth"), -10)||0)+(parseInt(b(e).css("paddingLeft"),10)||0),d.top+(parseInt(b(e).css("borderTopWidth"),10)||0)+(parseInt(b(e).css("paddingTop"),10)||0),d.left+(g?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(b(e).css("borderLeftWidth"),10)||0)-(parseInt(b(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,d.top+(g?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(b(e).css("borderTopWidth"),10)||0)-(parseInt(b(e).css("paddingBottom"), -10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(d.containment.constructor==Array)this.containment=d.containment},_convertPositionTo:function(d,e){if(!e)e=this.position;d=d=="absolute"?1:-1;var g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(g[0].tagName);return{top:e.top+this.offset.relative.top*d+this.offset.parent.top*d-(b.browser.safari&& -b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:g.scrollTop())*d),left:e.left+this.offset.relative.left*d+this.offset.parent.left*d-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:g.scrollLeft())*d)}},_generatePosition:function(d){var e=this.options,g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], -this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(g[0].tagName),a=d.pageX,c=d.pageY;if(this.originalPosition){if(this.containment){if(d.pageX-this.offset.click.leftthis.containment[2])a=this.containment[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>this.containment[3])c= -this.containment[3]+this.offset.click.top}if(e.grid){c=this.originalPageY+Math.round((c-this.originalPageY)/e.grid[1])*e.grid[1];c=this.containment?!(c-this.offset.click.topthis.containment[3])?c:!(c-this.offset.click.topthis.containment[2])? -a:!(a-this.offset.click.left
      ').css({width:this.offsetWidth+ -"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(b(this).offset()).appendTo("body")})},stop:function(){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(d,e){d=b(e.helper);e=b(this).data("draggable").options;if(d.css("opacity"))e._opacity=d.css("opacity");d.css("opacity",e.opacity)},stop:function(d,e){d=b(this).data("draggable").options;d._opacity&&b(e.helper).css("opacity", -d._opacity)}});b.ui.plugin.add("draggable","scroll",{start:function(){var d=b(this).data("draggable");if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML")d.overflowOffset=d.scrollParent.offset()},drag:function(d){var e=b(this).data("draggable"),g=e.options,f=false;if(e.scrollParent[0]!=document&&e.scrollParent[0].tagName!="HTML"){if(!g.axis||g.axis!="x")if(e.overflowOffset.top+e.scrollParent[0].offsetHeight-d.pageY=0;n--){var p=g.snapElements[n].left,l=p+g.snapElements[n].width,k=g.snapElements[n].top,m=k+g.snapElements[n].height;if(p-a=n&&c<=p||h>=n&&h<=p||cp)&&(f>= -i&&f<=j||a>=i&&a<=j||fj);default:return false}};b.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(d,e){var g=b.ui.ddmanager.droppables[d.options.scope]||[],f=e?e.type:null,a=(d.currentItem||d.element).find(":data(droppable)").andSelf(),c=0;a:for(;c').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=f.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var a=this.handles.split(",");this.handles={};for(var c=0;c');/sw|se|ne|nw/.test(h)&&i.css({zIndex:++f.zIndex});"se"==h&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[h]=".ui-resizable-"+h;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var n in this.handles){if(this.handles[n].constructor== -String)this.handles[n]=b(this.handles[n],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var p=b(this.handles[n],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(n)?p.outerHeight():p.outerWidth();p=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");j.css(p,l);this._proportionallyResize()}b(this.handles[n])}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!g.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);g.axis=j&&j[1]?j[1]:"se"}});if(f.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");g._handles.show()},function(){if(!g.resizing){b(this).addClass("ui-resizable-autohide");g._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var g=function(a){b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; -if(this.elementIsWrapper){g(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);g(this.originalElement);return this},_mouseCapture:function(g){var f=false;for(var a in this.handles)if(b(this.handles[a])[0]==g.target)f=true;return!this.options.disabled&&f},_mouseStart:function(g){var f=this.options,a=this.element.position(), -c=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(c.is(".ui-draggable")||/absolute/.test(c.css("position")))c.css({position:"absolute",top:a.top,left:a.left});b.browser.opera&&/relative/.test(c.css("position"))&&c.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();a=d(this.helper.css("left"));var h=d(this.helper.css("top"));if(f.containment){a+=b(f.containment).scrollLeft()||0;h+=b(f.containment).scrollTop()||0}this.offset= -this.helper.offset();this.position={left:a,top:h};this.size=this._helper?{width:c.outerWidth(),height:c.outerHeight()}:{width:c.width(),height:c.height()};this.originalSize=this._helper?{width:c.outerWidth(),height:c.outerHeight()}:{width:c.width(),height:c.height()};this.originalPosition={left:a,top:h};this.sizeDiff={width:c.outerWidth()-c.width(),height:c.outerHeight()-c.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=typeof f.aspectRatio=="number"?f.aspectRatio: -this.originalSize.width/this.originalSize.height||1;f=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",f=="auto"?this.axis+"-resize":f);c.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(g){var f=this.helper,a=this.originalMousePosition,c=this._change[this.axis];if(!c)return false;a=c.apply(this,[g,g.pageX-a.left||0,g.pageY-a.top||0]);if(this._aspectRatio||g.shiftKey)a=this._updateRatio(a,g);a=this._respectSize(a,g);this._propagate("resize", -g);f.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(a);this._trigger("resize",g,this.ui());return false},_mouseStop:function(g){this.resizing=false;var f=this.options,a=this;if(this._helper){var c=this._proportionallyResizeElements,h=c.length&&/textarea/i.test(c[0].nodeName);c=h&&b.ui.hasScroll(c[0],"left")?0:a.sizeDiff.height; -h=h?0:a.sizeDiff.width;h={width:a.helper.width()-h,height:a.helper.height()-c};c=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var i=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;f.animate||this.element.css(b.extend(h,{top:i,left:c}));a.helper.height(a.size.height);a.helper.width(a.size.width);this._helper&&!f.animate&&this._proportionallyResize()}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); -this._propagate("stop",g);this._helper&&this.helper.remove();return false},_updateCache:function(g){this.offset=this.helper.offset();if(e(g.left))this.position.left=g.left;if(e(g.top))this.position.top=g.top;if(e(g.height))this.size.height=g.height;if(e(g.width))this.size.width=g.width},_updateRatio:function(g){var f=this.position,a=this.size,c=this.axis;if(g.height)g.width=a.height*this.aspectRatio;else if(g.width)g.height=a.width/this.aspectRatio;if(c=="sw"){g.left=f.left+(a.width-g.width);g.top= -null}if(c=="nw"){g.top=f.top+(a.height-g.height);g.left=f.left+(a.width-g.width)}return g},_respectSize:function(g){var f=this.options,a=this.axis,c=e(g.width)&&f.maxWidth&&f.maxWidthg.width,j=e(g.height)&&f.minHeight&&f.minHeight>g.height;if(i)g.width=f.minWidth;if(j)g.height=f.minHeight;if(c)g.width=f.maxWidth;if(h)g.height=f.maxHeight;var n=this.originalPosition.left+this.originalSize.width,p=this.position.top+ -this.size.height,l=/sw|nw|w/.test(a);a=/nw|ne|n/.test(a);if(i&&l)g.left=n-f.minWidth;if(c&&l)g.left=n-f.maxWidth;if(j&&a)g.top=p-f.minHeight;if(h&&a)g.top=p-f.maxHeight;if((f=!g.width&&!g.height)&&!g.left&&g.top)g.top=null;else if(f&&!g.top&&g.left)g.left=null;return g},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var g=this.helper||this.element,f=0;f');var f=b.browser.msie&&b.browser.version<7,a=f?1:0;f=f?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-a+"px",top:this.elementOffset.top-a+"px",zIndex:++g.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(g, -f){return{width:this.originalSize.width+f}},w:function(g,f){return{left:this.originalPosition.left+f,width:this.originalSize.width-f}},n:function(g,f,a){return{top:this.originalPosition.top+a,height:this.originalSize.height-a}},s:function(g,f,a){return{height:this.originalSize.height+a}},se:function(g,f,a){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,a]))},sw:function(g,f,a){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f, -a]))},ne:function(g,f,a){return b.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,a]))},nw:function(g,f,a){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,a]))}},_propagate:function(g,f){b.ui.plugin.call(this,g,[f,this.ui()]);g!="resize"&&this._trigger(g,f,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, -originalPosition:this.originalPosition}}});b.extend(b.ui.resizable,{version:"1.8.11"});b.ui.plugin.add("resizable","alsoResize",{start:function(){var g=b(this).data("resizable").options,f=function(a){b(a).each(function(){var c=b(this);c.data("resizable-alsoresize",{width:parseInt(c.width(),10),height:parseInt(c.height(),10),left:parseInt(c.css("left"),10),top:parseInt(c.css("top"),10),position:c.css("position")})})};if(typeof g.alsoResize=="object"&&!g.alsoResize.parentNode)if(g.alsoResize.length){g.alsoResize= -g.alsoResize[0];f(g.alsoResize)}else b.each(g.alsoResize,function(a){f(a)});else f(g.alsoResize)},resize:function(g,f){var a=b(this).data("resizable");g=a.options;var c=a.originalSize,h=a.originalPosition,i={height:a.size.height-c.height||0,width:a.size.width-c.width||0,top:a.position.top-h.top||0,left:a.position.left-h.left||0},j=function(n,p){b(n).each(function(){var l=b(this),k=b(this).data("resizable-alsoresize"),m={},o=p&&p.length?p:l.parents(f.originalElement[0]).length?["width","height"]:["width", -"height","top","left"];b.each(o,function(q,s){if((q=(k[s]||0)+(i[s]||0))&&q>=0)m[s]=q||null});if(b.browser.opera&&/relative/.test(l.css("position"))){a._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(m)})};typeof g.alsoResize=="object"&&!g.alsoResize.nodeType?b.each(g.alsoResize,function(n,p){j(n,p)}):j(g.alsoResize)},stop:function(){var g=b(this).data("resizable"),f=g.options,a=function(c){b(c).each(function(){var h=b(this);h.css({position:h.data("resizable-alsoresize").position})})}; -if(g._revertToRelativePosition){g._revertToRelativePosition=false;typeof f.alsoResize=="object"&&!f.alsoResize.nodeType?b.each(f.alsoResize,function(c){a(c)}):a(f.alsoResize)}b(this).removeData("resizable-alsoresize")}});b.ui.plugin.add("resizable","animate",{stop:function(g){var f=b(this).data("resizable"),a=f.options,c=f._proportionallyResizeElements,h=c.length&&/textarea/i.test(c[0].nodeName),i=h&&b.ui.hasScroll(c[0],"left")?0:f.sizeDiff.height;h={width:f.size.width-(h?0:f.sizeDiff.width),height:f.size.height- -i};i=parseInt(f.element.css("left"),10)+(f.position.left-f.originalPosition.left)||null;var j=parseInt(f.element.css("top"),10)+(f.position.top-f.originalPosition.top)||null;f.element.animate(b.extend(h,j&&i?{top:j,left:i}:{}),{duration:a.animateDuration,easing:a.animateEasing,step:function(){var n={width:parseInt(f.element.css("width"),10),height:parseInt(f.element.css("height"),10),top:parseInt(f.element.css("top"),10),left:parseInt(f.element.css("left"),10)};c&&c.length&&b(c[0]).css({width:n.width, -height:n.height});f._updateCache(n);f._propagate("resize",g)}})}});b.ui.plugin.add("resizable","containment",{start:function(){var g=b(this).data("resizable"),f=g.element,a=g.options.containment;if(f=a instanceof b?a.get(0):/parent/.test(a)?f.parent().get(0):a){g.containerElement=b(f);if(/document/.test(a)||a==document){g.containerOffset={left:0,top:0};g.containerPosition={left:0,top:0};g.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var c= -b(f),h=[];b(["Top","Right","Left","Bottom"]).each(function(n,p){h[n]=d(c.css("padding"+p))});g.containerOffset=c.offset();g.containerPosition=c.position();g.containerSize={height:c.innerHeight()-h[3],width:c.innerWidth()-h[1]};a=g.containerOffset;var i=g.containerSize.height,j=g.containerSize.width;j=b.ui.hasScroll(f,"left")?f.scrollWidth:j;i=b.ui.hasScroll(f)?f.scrollHeight:i;g.parentData={element:f,left:a.left,top:a.top,width:j,height:i}}}},resize:function(g){var f=b(this).data("resizable"),a=f.options, -c=f.containerOffset,h=f.position;g=f._aspectRatio||g.shiftKey;var i={top:0,left:0},j=f.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))i=c;if(h.left<(f._helper?c.left:0)){f.size.width+=f._helper?f.position.left-c.left:f.position.left-i.left;if(g)f.size.height=f.size.width/a.aspectRatio;f.position.left=a.helper?c.left:0}if(h.top<(f._helper?c.top:0)){f.size.height+=f._helper?f.position.top-c.top:f.position.top;if(g)f.size.width=f.size.height*a.aspectRatio;f.position.top=f._helper? -c.top:0}f.offset.left=f.parentData.left+f.position.left;f.offset.top=f.parentData.top+f.position.top;a=Math.abs((f._helper?f.offset.left-i.left:f.offset.left-i.left)+f.sizeDiff.width);c=Math.abs((f._helper?f.offset.top-i.top:f.offset.top-c.top)+f.sizeDiff.height);h=f.containerElement.get(0)==f.element.parent().get(0);i=/relative|absolute/.test(f.containerElement.css("position"));if(h&&i)a-=f.parentData.left;if(a+f.size.width>=f.parentData.width){f.size.width=f.parentData.width-a;if(g)f.size.height= -f.size.width/f.aspectRatio}if(c+f.size.height>=f.parentData.height){f.size.height=f.parentData.height-c;if(g)f.size.width=f.size.height*f.aspectRatio}},stop:function(){var g=b(this).data("resizable"),f=g.options,a=g.containerOffset,c=g.containerPosition,h=g.containerElement,i=b(g.helper),j=i.offset(),n=i.outerWidth()-g.sizeDiff.width;i=i.outerHeight()-g.sizeDiff.height;g._helper&&!f.animate&&/relative/.test(h.css("position"))&&b(this).css({left:j.left-c.left-a.left,width:n,height:i});g._helper&&!f.animate&& -/static/.test(h.css("position"))&&b(this).css({left:j.left-c.left-a.left,width:n,height:i})}});b.ui.plugin.add("resizable","ghost",{start:function(){var g=b(this).data("resizable"),f=g.options,a=g.size;g.ghost=g.originalElement.clone();g.ghost.css({opacity:0.25,display:"block",position:"relative",height:a.height,width:a.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof f.ghost=="string"?f.ghost:"");g.ghost.appendTo(g.helper)},resize:function(){var g=b(this).data("resizable"); -g.ghost&&g.ghost.css({position:"relative",height:g.size.height,width:g.size.width})},stop:function(){var g=b(this).data("resizable");g.ghost&&g.helper&&g.helper.get(0).removeChild(g.ghost.get(0))}});b.ui.plugin.add("resizable","grid",{resize:function(){var g=b(this).data("resizable"),f=g.options,a=g.size,c=g.originalSize,h=g.originalPosition,i=g.axis;f.grid=typeof f.grid=="number"?[f.grid,f.grid]:f.grid;var j=Math.round((a.width-c.width)/(f.grid[0]||1))*(f.grid[0]||1);f=Math.round((a.height-c.height)/ -(f.grid[1]||1))*(f.grid[1]||1);if(/^(se|s|e)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f}else if(/^(ne)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f;g.position.top=h.top-f}else{if(/^(sw)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f}else{g.size.width=c.width+j;g.size.height=c.height+f;g.position.top=h.top-f}g.position.left=h.left-j}}});var d=function(g){return parseInt(g,10)||0},e=function(g){return!isNaN(parseInt(g,10))}})(jQuery); -(function(b){b.widget("ui.selectable",b.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var d=this;this.element.addClass("ui-selectable");this.dragged=false;var e;this.refresh=function(){e=b(d.options.filter,d.element[0]);e.each(function(){var g=b(this),f=g.offset();b.data(this,"selectable-item",{element:this,$element:g,left:f.left,top:f.top,right:f.left+g.outerWidth(),bottom:f.top+g.outerHeight(),startselected:false,selected:g.hasClass("ui-selected"), -selecting:g.hasClass("ui-selecting"),unselecting:g.hasClass("ui-unselecting")})})};this.refresh();this.selectees=e.addClass("ui-selectee");this._mouseInit();this.helper=b("
      ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(d){var e=this;this.opos=[d.pageX, -d.pageY];if(!this.options.disabled){var g=this.options;this.selectees=b(g.filter,this.element[0]);this._trigger("start",d);b(g.appendTo).append(this.helper);this.helper.css({left:d.clientX,top:d.clientY,width:0,height:0});g.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var f=b.data(this,"selectable-item");f.startselected=true;if(!d.metaKey){f.$element.removeClass("ui-selected");f.selected=false;f.$element.addClass("ui-unselecting");f.unselecting=true;e._trigger("unselecting", -d,{unselecting:f.element})}});b(d.target).parents().andSelf().each(function(){var f=b.data(this,"selectable-item");if(f){var a=!d.metaKey||!f.$element.hasClass("ui-selected");f.$element.removeClass(a?"ui-unselecting":"ui-selected").addClass(a?"ui-selecting":"ui-unselecting");f.unselecting=!a;f.selecting=a;(f.selected=a)?e._trigger("selecting",d,{selecting:f.element}):e._trigger("unselecting",d,{unselecting:f.element});return false}})}},_mouseDrag:function(d){var e=this;this.dragged=true;if(!this.options.disabled){var g= -this.options,f=this.opos[0],a=this.opos[1],c=d.pageX,h=d.pageY;if(f>c){var i=c;c=f;f=i}if(a>h){i=h;h=a;a=i}this.helper.css({left:f,top:a,width:c-f,height:h-a});this.selectees.each(function(){var j=b.data(this,"selectable-item");if(!(!j||j.element==e.element[0])){var n=false;if(g.tolerance=="touch")n=!(j.left>c||j.righth||j.bottomf&&j.righta&&j.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var d=this.items.length-1;d>=0;d--)this.items[d].item.removeData("sortable-item");return this},_setOption:function(d,e){if(d==="disabled"){this.options[d]= -e;this.widget()[e?"addClass":"removeClass"]("ui-sortable-disabled")}else b.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(d,e){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(d);var g=null,f=this;b(d.target).parents().each(function(){if(b.data(this,"sortable-item")==f){g=b(this);return false}});if(b.data(d.target,"sortable-item")==f)g=b(d.target);if(!g)return false;if(this.options.handle&&!e){var a=false; -b(this.options.handle,g).find("*").andSelf().each(function(){if(this==d.target)a=true});if(!a)return false}this.currentItem=g;this._removeCurrentsFromItems();return true},_mouseStart:function(d,e,g){e=this.options;var f=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(d);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left- -this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");b.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();e.containment&&this._setContainment();if(e.cursor){if(b("body").css("cursor"))this._storedCursor=b("body").css("cursor");b("body").css("cursor",e.cursor)}if(e.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",e.opacity)}if(e.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",e.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",d,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!g)for(g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",d,f._uiHash(this));if(b.ui.ddmanager)b.ui.ddmanager.current=this;b.ui.ddmanager&&!e.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,d);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(d); -return true},_mouseDrag:function(d){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var e=this.options,g=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-d.pageY=0;e--){g=this.items[e];var f=g.item[0],a=this._intersectsWithPointer(g);if(a)if(f!=this.currentItem[0]&&this.placeholder[a==1?"next":"prev"]()[0]!=f&&!b.ui.contains(this.placeholder[0],f)&&(this.options.type=="semi-dynamic"?!b.ui.contains(this.element[0], -f):true)){this.direction=a==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(g))this._rearrange(d,g);else break;this._trigger("change",d,this._uiHash());break}}this._contactContainers(d);b.ui.ddmanager&&b.ui.ddmanager.drag(this,d);this._trigger("sort",d,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(d,e){if(d){b.ui.ddmanager&&!this.options.dropBehaviour&&b.ui.ddmanager.drop(this,d);if(this.options.revert){var g=this;e=g.placeholder.offset(); -g.reverting=true;b(this.helper).animate({left:e.left-this.offset.parent.left-g.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-g.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){g._clear(d)})}else this._clear(d,e);return false}},cancel:function(){var d=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--){this.containers[e]._trigger("deactivate",null,d._uiHash(this));if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",null,d._uiHash(this));this.containers[e].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();b.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?b(this.domPosition.prev).after(this.currentItem):b(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(d){var e=this._getItemsAsjQuery(d&&d.connected),g=[];d=d||{};b(e).each(function(){var f=(b(d.item||this).attr(d.attribute||"id")||"").match(d.expression||/(.+)[-=_](.+)/);if(f)g.push((d.key||f[1]+"[]")+"="+(d.key&&d.expression?f[1]:f[2]))});!g.length&&d.key&&g.push(d.key+"=");return g.join("&")}, -toArray:function(d){var e=this._getItemsAsjQuery(d&&d.connected),g=[];d=d||{};e.each(function(){g.push(b(d.item||this).attr(d.attribute||"id")||"")});return g},_intersectsWith:function(d){var e=this.positionAbs.left,g=e+this.helperProportions.width,f=this.positionAbs.top,a=f+this.helperProportions.height,c=d.left,h=c+d.width,i=d.top,j=i+d.height,n=this.offset.click.top,p=this.offset.click.left;n=f+n>i&&f+nc&&e+pd[this.floating?"width":"height"]?n:c0?"down":"up")},_getDragHorizontalDirection:function(){var d=this.positionAbs.left-this.lastPositionAbs.left;return d!=0&&(d>0?"right":"left")},refresh:function(d){this._refreshItems(d);this.refreshPositions();return this},_connectWith:function(){var d=this.options;return d.connectWith.constructor==String?[d.connectWith]:d.connectWith},_getItemsAsjQuery:function(d){var e=[],g=[],f=this._connectWith(); -if(f&&d)for(d=f.length-1;d>=0;d--)for(var a=b(f[d]),c=a.length-1;c>=0;c--){var h=b.data(a[c],"sortable");if(h&&h!=this&&!h.options.disabled)g.push([b.isFunction(h.options.items)?h.options.items.call(h.element):b(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}g.push([b.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):b(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(d=g.length-1;d>=0;d--)g[d][0].each(function(){e.push(this)});return b(e)},_removeCurrentsFromItems:function(){for(var d=this.currentItem.find(":data(sortable-item)"),e=0;e=0;a--)for(var c=b(f[a]),h=c.length-1;h>=0;h--){var i=b.data(c[h],"sortable");if(i&&i!=this&&!i.options.disabled){g.push([b.isFunction(i.options.items)?i.options.items.call(i.element[0],d,{item:this.currentItem}):b(i.options.items,i.element),i]);this.containers.push(i)}}for(a=g.length-1;a>=0;a--){d=g[a][1];f=g[a][0];h=0;for(c=f.length;h=0;e--){var g=this.items[e],f=this.options.toleranceElement?b(this.options.toleranceElement,g.item):g.item;if(!d){g.width=f.outerWidth();g.height=f.outerHeight()}f=f.offset();g.left=f.left;g.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;e>=0;e--){f=this.containers[e].element.offset();this.containers[e].containerCache.left= -f.left;this.containers[e].containerCache.top=f.top;this.containers[e].containerCache.width=this.containers[e].element.outerWidth();this.containers[e].containerCache.height=this.containers[e].element.outerHeight()}return this},_createPlaceholder:function(d){var e=d||this,g=e.options;if(!g.placeholder||g.placeholder.constructor==String){var f=g.placeholder;g.placeholder={element:function(){var a=b(document.createElement(e.currentItem[0].nodeName)).addClass(f||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; -if(!f)a.style.visibility="hidden";return a},update:function(a,c){if(!(f&&!g.forcePlaceholderSize)){c.height()||c.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10));c.width()||c.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}}}}e.placeholder=b(g.placeholder.element.call(e.element,e.currentItem));e.currentItem.after(e.placeholder); -g.placeholder.update(e,e.placeholder)},_contactContainers:function(d){for(var e=null,g=null,f=this.containers.length-1;f>=0;f--)if(!b.ui.contains(this.currentItem[0],this.containers[f].element[0]))if(this._intersectsWith(this.containers[f].containerCache)){if(!(e&&b.ui.contains(this.containers[f].element[0],e.element[0]))){e=this.containers[f];g=f}}else if(this.containers[f].containerCache.over){this.containers[f]._trigger("out",d,this._uiHash(this));this.containers[f].containerCache.over=0}if(e)if(this.containers.length=== -1){this.containers[g]._trigger("over",d,this._uiHash(this));this.containers[g].containerCache.over=1}else if(this.currentContainer!=this.containers[g]){e=1E4;f=null;for(var a=this.positionAbs[this.containers[g].floating?"left":"top"],c=this.items.length-1;c>=0;c--)if(b.ui.contains(this.containers[g].element[0],this.items[c].item[0])){var h=this.items[c][this.containers[g].floating?"left":"top"];if(Math.abs(h-a)this.containment[2])a=this.containment[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>this.containment[3])c=this.containment[3]+this.offset.click.top}if(e.grid){c=this.originalPageY+Math.round((c-this.originalPageY)/e.grid[1])*e.grid[1];c=this.containment?!(c-this.offset.click.top< -this.containment[1]||c-this.offset.click.top>this.containment[3])?c:!(c-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left=0;f--)if(b.ui.contains(this.containers[f].element[0], -this.currentItem[0])&&!e){g.push(function(a){return function(c){a._trigger("receive",c,this._uiHash(this))}}.call(this,this.containers[f]));g.push(function(a){return function(c){a._trigger("update",c,this._uiHash(this))}}.call(this,this.containers[f]))}}for(f=this.containers.length-1;f>=0;f--){e||g.push(function(a){return function(c){a._trigger("deactivate",c,this._uiHash(this))}}.call(this,this.containers[f]));if(this.containers[f].containerCache.over){g.push(function(a){return function(c){a._trigger("out", -c,this._uiHash(this))}}.call(this,this.containers[f]));this.containers[f].containerCache.over=0}}this._storedCursor&&b("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(f=0;f").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", -border:"none",margin:0,padding:0});l.wrap(m);m=l.parent();if(l.css("position")=="static"){m.css({position:"relative"});l.css({position:"relative"})}else{b.extend(k,{position:l.css("position"),zIndex:l.css("z-index")});b.each(["top","left","bottom","right"],function(o,q){k[q]=l.css(q);if(isNaN(parseInt(k[q],10)))k[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return m.css(k).show()},removeWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent().replaceWith(l); -return l},setTransition:function(l,k,m,o){o=o||{};b.each(k,function(q,s){unit=l.cssUnit(s);if(unit[0]>0)o[s]=unit[0]*m+unit[1]});return o}});b.fn.extend({effect:function(l){var k=h.apply(this,arguments),m={options:k[1],duration:k[2],callback:k[3]};k=m.options.mode;var o=b.effects[l];if(b.fx.off||!o)return k?this[k](m.duration,m.callback):this.each(function(){m.callback&&m.callback.call(this)});return o.call(this,m)},_show:b.fn.show,show:function(l){if(i(l))return this._show.apply(this,arguments); -else{var k=h.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:b.fn.hide,hide:function(l){if(i(l))return this._hide.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:b.fn.toggle,toggle:function(l){if(i(l)||typeof l==="boolean"||b.isFunction(l))return this.__toggle.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(l){var k=this.css(l), -m=[];b.each(["em","px","%","pt"],function(o,q){if(k.indexOf(q)>0)m=[parseFloat(k),q]});return m}});b.easing.jswing=b.easing.swing;b.extend(b.easing,{def:"easeOutQuad",swing:function(l,k,m,o,q){return b.easing[b.easing.def](l,k,m,o,q)},easeInQuad:function(l,k,m,o,q){return o*(k/=q)*k+m},easeOutQuad:function(l,k,m,o,q){return-o*(k/=q)*(k-2)+m},easeInOutQuad:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k+m;return-o/2*(--k*(k-2)-1)+m},easeInCubic:function(l,k,m,o,q){return o*(k/=q)*k*k+m},easeOutCubic:function(l, -k,m,o,q){return o*((k=k/q-1)*k*k+1)+m},easeInOutCubic:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k+m;return o/2*((k-=2)*k*k+2)+m},easeInQuart:function(l,k,m,o,q){return o*(k/=q)*k*k*k+m},easeOutQuart:function(l,k,m,o,q){return-o*((k=k/q-1)*k*k*k-1)+m},easeInOutQuart:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k*k+m;return-o/2*((k-=2)*k*k*k-2)+m},easeInQuint:function(l,k,m,o,q){return o*(k/=q)*k*k*k*k+m},easeOutQuint:function(l,k,m,o,q){return o*((k=k/q-1)*k*k*k*k+1)+m},easeInOutQuint:function(l, -k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k*k*k+m;return o/2*((k-=2)*k*k*k*k+2)+m},easeInSine:function(l,k,m,o,q){return-o*Math.cos(k/q*(Math.PI/2))+o+m},easeOutSine:function(l,k,m,o,q){return o*Math.sin(k/q*(Math.PI/2))+m},easeInOutSine:function(l,k,m,o,q){return-o/2*(Math.cos(Math.PI*k/q)-1)+m},easeInExpo:function(l,k,m,o,q){return k==0?m:o*Math.pow(2,10*(k/q-1))+m},easeOutExpo:function(l,k,m,o,q){return k==q?m+o:o*(-Math.pow(2,-10*k/q)+1)+m},easeInOutExpo:function(l,k,m,o,q){if(k==0)return m;if(k== -q)return m+o;if((k/=q/2)<1)return o/2*Math.pow(2,10*(k-1))+m;return o/2*(-Math.pow(2,-10*--k)+2)+m},easeInCirc:function(l,k,m,o,q){return-o*(Math.sqrt(1-(k/=q)*k)-1)+m},easeOutCirc:function(l,k,m,o,q){return o*Math.sqrt(1-(k=k/q-1)*k)+m},easeInOutCirc:function(l,k,m,o,q){if((k/=q/2)<1)return-o/2*(Math.sqrt(1-k*k)-1)+m;return o/2*(Math.sqrt(1-(k-=2)*k)+1)+m},easeInElastic:function(l,k,m,o,q){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=q)==1)return m+o;s||(s=q*0.3);if(r").css({position:"absolute",visibility:"visible",left:-j*(c/g),top:-i*(h/e)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:c/g,height:h/e,left:a.left+j*(c/g)+(d.options.mode=="show"?(j-Math.floor(g/2))*(c/g):0),top:a.top+i*(h/e)+(d.options.mode=="show"?(i-Math.floor(e/2))*(h/e):0),opacity:d.options.mode=="show"?0:1}).animate({left:a.left+j*(c/g)+(d.options.mode=="show"?0:(j-Math.floor(g/2))*(c/g)),top:a.top+ -i*(h/e)+(d.options.mode=="show"?0:(i-Math.floor(e/2))*(h/e)),opacity:d.options.mode=="show"?1:0},d.duration||500);setTimeout(function(){d.options.mode=="show"?f.css({visibility:"visible"}):f.css({visibility:"visible"}).hide();d.callback&&d.callback.apply(f[0]);f.dequeue();b("div.ui-effects-explode").remove()},d.duration||500)})}})(jQuery); -(function(b){b.effects.fade=function(d){return this.queue(function(){var e=b(this),g=b.effects.setMode(e,d.options.mode||"hide");e.animate({opacity:g},{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){d.callback&&d.callback.apply(this,arguments);e.dequeue()}})})}})(jQuery); -(function(b){b.effects.fold=function(d){return this.queue(function(){var e=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(e,d.options.mode||"hide"),a=d.options.size||15,c=!!d.options.horizFirst,h=d.duration?d.duration/2:b.fx.speeds._default/2;b.effects.save(e,g);e.show();var i=b.effects.createWrapper(e).css({overflow:"hidden"}),j=f=="show"!=c,n=j?["width","height"]:["height","width"];j=j?[i.width(),i.height()]:[i.height(),i.width()];var p=/([0-9]+)%/.exec(a);if(p)a=parseInt(p[1], -10)/100*j[f=="hide"?0:1];if(f=="show")i.css(c?{height:0,width:a}:{height:a,width:0});c={};p={};c[n[0]]=f=="show"?j[0]:a;p[n[1]]=f=="show"?j[1]:0;i.animate(c,h,d.options.easing).animate(p,h,d.options.easing,function(){f=="hide"&&e.hide();b.effects.restore(e,g);b.effects.removeWrapper(e);d.callback&&d.callback.apply(e[0],arguments);e.dequeue()})})}})(jQuery); -(function(b){b.effects.highlight=function(d){return this.queue(function(){var e=b(this),g=["backgroundImage","backgroundColor","opacity"],f=b.effects.setMode(e,d.options.mode||"show"),a={backgroundColor:e.css("backgroundColor")};if(f=="hide")a.opacity=0;b.effects.save(e,g);e.show().css({backgroundImage:"none",backgroundColor:d.options.color||"#ffff99"}).animate(a,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&e.hide();b.effects.restore(e,g);f=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");d.callback&&d.callback.apply(this,arguments);e.dequeue()}})})}})(jQuery); -(function(b){b.effects.pulsate=function(d){return this.queue(function(){var e=b(this),g=b.effects.setMode(e,d.options.mode||"show");times=(d.options.times||5)*2-1;duration=d.duration?d.duration/2:b.fx.speeds._default/2;isVisible=e.is(":visible");animateTo=0;if(!isVisible){e.css("opacity",0).show();animateTo=1}if(g=="hide"&&isVisible||g=="show"&&!isVisible)times--;for(g=0;g').appendTo(document.body).addClass(d.options.className).css({top:f.top,left:f.left,height:e.innerHeight(),width:e.innerWidth(),position:"absolute"}).animate(g,d.duration,d.options.easing,function(){a.remove();d.callback&&d.callback.apply(e[0],arguments); -e.dequeue()})})}})(jQuery); -(function(b){b.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var d=this,e=d.options;d.running=0;d.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");d.headers= -d.element.find(e.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){e.disabled||b(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){e.disabled||b(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){e.disabled||b(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){e.disabled||b(this).removeClass("ui-state-focus")});d.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(e.navigation){var g=d.element.find("a").filter(e.navigationFilter).eq(0);if(g.length){var f=g.closest(".ui-accordion-header");d.active=f.length?f:g.closest(".ui-accordion-content").prev()}}d.active=d._findActive(d.active||e.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");d.active.next().addClass("ui-accordion-content-active");d._createIcons();d.resize();d.element.attr("role","tablist");d.headers.attr("role","tab").bind("keydown.accordion", -function(a){return d._keydown(a)}).next().attr("role","tabpanel");d.headers.not(d.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();d.active.length?d.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):d.headers.eq(0).attr("tabIndex",0);b.browser.safari||d.headers.find("a").attr("tabIndex",-1);e.event&&d.headers.bind(e.event.split(" ").join(".accordion ")+".accordion",function(a){d._clickHandler.call(d,a,this);a.preventDefault()})},_createIcons:function(){var d= -this.options;if(d.icons){b("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var d=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var e=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(d.autoHeight||d.fillHeight)e.css("height","");return b.Widget.prototype.destroy.call(this)},_setOption:function(d,e){b.Widget.prototype._setOption.apply(this,arguments);d=="active"&&this.activate(e);if(d=="icons"){this._destroyIcons(); -e&&this._createIcons()}if(d=="disabled")this.headers.add(this.headers.next())[e?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(d){if(!(this.options.disabled||d.altKey||d.ctrlKey)){var e=b.ui.keyCode,g=this.headers.length,f=this.headers.index(d.target),a=false;switch(d.keyCode){case e.RIGHT:case e.DOWN:a=this.headers[(f+1)%g];break;case e.LEFT:case e.UP:a=this.headers[(f-1+g)%g];break;case e.SPACE:case e.ENTER:this._clickHandler({target:d.target},d.target); -d.preventDefault()}if(a){b(d.target).attr("tabIndex",-1);b(a).attr("tabIndex",0);a.focus();return false}return true}},resize:function(){var d=this.options,e;if(d.fillSpace){if(b.browser.msie){var g=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}e=this.element.parent().height();b.browser.msie&&this.element.parent().css("overflow",g);this.headers.each(function(){e-=b(this).outerHeight(true)});this.headers.next().each(function(){b(this).height(Math.max(0,e-b(this).innerHeight()+ -b(this).height()))}).css("overflow","auto")}else if(d.autoHeight){e=0;this.headers.next().each(function(){e=Math.max(e,b(this).height("").height())}).height(e)}return this},activate:function(d){this.options.active=d;d=this._findActive(d)[0];this._clickHandler({target:d},d);return this},_findActive:function(d){return d?typeof d==="number"?this.headers.filter(":eq("+d+")"):this.headers.not(this.headers.not(d)):d===false?b([]):this.headers.filter(":eq(0)")},_clickHandler:function(d,e){var g=this.options; -if(!g.disabled)if(d.target){d=b(d.currentTarget||e);e=d[0]===this.active[0];g.active=g.collapsible&&e?false:this.headers.index(d);if(!(this.running||!g.collapsible&&e)){var f=this.active;i=d.next();c=this.active.next();h={options:g,newHeader:e&&g.collapsible?b([]):d,oldHeader:this.active,newContent:e&&g.collapsible?b([]):i,oldContent:c};var a=this.headers.index(this.active[0])>this.headers.index(d[0]);this.active=e?b([]):d;this._toggle(i,c,h,e,a);f.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header); -if(!e){d.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(g.icons.header).addClass(g.icons.headerSelected);d.next().addClass("ui-accordion-content-active")}}}else if(g.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);this.active.next().addClass("ui-accordion-content-active");var c=this.active.next(), -h={options:g,newHeader:b([]),oldHeader:g.active,newContent:b([]),oldContent:c},i=this.active=b([]);this._toggle(i,c,h)}},_toggle:function(d,e,g,f,a){var c=this,h=c.options;c.toShow=d;c.toHide=e;c.data=g;var i=function(){if(c)return c._completed.apply(c,arguments)};c._trigger("changestart",null,c.data);c.running=e.size()===0?d.size():e.size();if(h.animated){g={};g=h.collapsible&&f?{toShow:b([]),toHide:e,complete:i,down:a,autoHeight:h.autoHeight||h.fillSpace}:{toShow:d,toHide:e,complete:i,down:a,autoHeight:h.autoHeight|| -h.fillSpace};if(!h.proxied)h.proxied=h.animated;if(!h.proxiedDuration)h.proxiedDuration=h.duration;h.animated=b.isFunction(h.proxied)?h.proxied(g):h.proxied;h.duration=b.isFunction(h.proxiedDuration)?h.proxiedDuration(g):h.proxiedDuration;f=b.ui.accordion.animations;var j=h.duration,n=h.animated;if(n&&!f[n]&&!b.easing[n])n="slide";f[n]||(f[n]=function(p){this.slide(p,{easing:n,duration:j||700})});f[n](g)}else{if(h.collapsible&&f)d.toggle();else{e.hide();d.show()}i(true)}e.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();d.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(d){this.running=d?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});b.extend(b.ui.accordion,{version:"1.8.11", -animations:{slide:function(d,e){d=b.extend({easing:"swing",duration:300},d,e);if(d.toHide.size())if(d.toShow.size()){var g=d.toShow.css("overflow"),f=0,a={},c={},h;e=d.toShow;h=e[0].style.width;e.width(parseInt(e.parent().width(),10)-parseInt(e.css("paddingLeft"),10)-parseInt(e.css("paddingRight"),10)-(parseInt(e.css("borderLeftWidth"),10)||0)-(parseInt(e.css("borderRightWidth"),10)||0));b.each(["height","paddingTop","paddingBottom"],function(i,j){c[j]="hide";i=(""+b.css(d.toShow[0],j)).match(/^([\d+-.]+)(.*)$/); -a[j]={value:i[1],unit:i[2]||"px"}});d.toShow.css({height:0,overflow:"hidden"}).show();d.toHide.filter(":hidden").each(d.complete).end().filter(":visible").animate(c,{step:function(i,j){if(j.prop=="height")f=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);d.toShow[0].style[j.prop]=f*a[j.prop].value+a[j.prop].unit},duration:d.duration,easing:d.easing,complete:function(){d.autoHeight||d.toShow.css("height","");d.toShow.css({width:h,overflow:g});d.complete()}})}else d.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},d);else d.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},d)},bounceslide:function(d){this.slide(d,{easing:d.down?"easeOutBounce":"swing",duration:d.down?1E3:200})}}})})(jQuery); -(function(b){var d=0;b.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var e=this,g=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(a){if(!(e.options.disabled||e.element.attr("readonly"))){f= -false;var c=b.ui.keyCode;switch(a.keyCode){case c.PAGE_UP:e._move("previousPage",a);break;case c.PAGE_DOWN:e._move("nextPage",a);break;case c.UP:e._move("previous",a);a.preventDefault();break;case c.DOWN:e._move("next",a);a.preventDefault();break;case c.ENTER:case c.NUMPAD_ENTER:if(e.menu.active){f=true;a.preventDefault()}case c.TAB:if(!e.menu.active)return;e.menu.select(a);break;case c.ESCAPE:e.element.val(e.term);e.close(a);break;default:clearTimeout(e.searching);e.searching=setTimeout(function(){if(e.term!= -e.element.val()){e.selectedItem=null;e.search(null,a)}},e.options.delay);break}}}).bind("keypress.autocomplete",function(a){if(f){f=false;a.preventDefault()}}).bind("focus.autocomplete",function(){if(!e.options.disabled){e.selectedItem=null;e.previous=e.element.val()}}).bind("blur.autocomplete",function(a){if(!e.options.disabled){clearTimeout(e.searching);e.closing=setTimeout(function(){e.close(a);e._change(a)},150)}});this._initSource();this.response=function(){return e._response.apply(e,arguments)}; -this.menu=b("
        ").addClass("ui-autocomplete").appendTo(b(this.options.appendTo||"body",g)[0]).mousedown(function(a){var c=e.menu.element[0];b(a.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(h){h.target!==e.element[0]&&h.target!==c&&!b.ui.contains(c,h.target)&&e.close()})},1);setTimeout(function(){clearTimeout(e.closing)},13)}).menu({focus:function(a,c){c=c.item.data("item.autocomplete");false!==e._trigger("focus",a,{item:c})&&/^key/.test(a.originalEvent.type)&& -e.element.val(c.value)},selected:function(a,c){var h=c.item.data("item.autocomplete"),i=e.previous;if(e.element[0]!==g.activeElement){e.element.focus();e.previous=i;setTimeout(function(){e.previous=i;e.selectedItem=h},1)}false!==e._trigger("select",a,{item:h})&&e.element.val(h.value);e.term=e.element.val();e.close(a);e.selectedItem=h},blur:function(){e.menu.element.is(":visible")&&e.element.val()!==e.term&&e.element.val(e.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(e,g){b.Widget.prototype._setOption.apply(this,arguments);e==="source"&&this._initSource();if(e==="appendTo")this.menu.element.appendTo(b(g||"body",this.element[0].ownerDocument)[0]);e==="disabled"&& -g&&this.xhr&&this.xhr.abort()},_initSource:function(){var e=this,g,f;if(b.isArray(this.options.source)){g=this.options.source;this.source=function(a,c){c(b.ui.autocomplete.filter(g,a.term))}}else if(typeof this.options.source==="string"){f=this.options.source;this.source=function(a,c){e.xhr&&e.xhr.abort();e.xhr=b.ajax({url:f,data:a,dataType:"json",autocompleteRequest:++d,success:function(h){this.autocompleteRequest===d&&c(h)},error:function(){this.autocompleteRequest===d&&c([])}})}}else this.source= -this.options.source},search:function(e,g){e=e!=null?e:this.element.val();this.term=this.element.val();if(e.length").data("item.autocomplete",g).append(b("").text(g.label)).appendTo(e)},_move:function(e,g){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(e)||this.menu.last()&&/^next/.test(e)){this.element.val(this.term);this.menu.deactivate()}else this.menu[e](g);else this.search(null,g)},widget:function(){return this.menu.element}});b.extend(b.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(e,g){var f=new RegExp(b.ui.autocomplete.escapeRegex(g),"i");return b.grep(e,function(a){return f.test(a.label||a.value||a)})}})})(jQuery); -(function(b){b.widget("ui.menu",{_create:function(){var d=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(e){if(b(e.target).closest(".ui-menu-item a").length){e.preventDefault();d.select(e)}});this.refresh()},refresh:function(){var d=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(e){d.activate(e,b(this).parent())}).mouseleave(function(){d.deactivate()})},activate:function(d,e){this.deactivate();if(this.hasScroll()){var g=e.offset().top-this.element.offset().top,f=this.element.attr("scrollTop"),a=this.element.height();if(g<0)this.element.attr("scrollTop",f+g);else g>=a&&this.element.attr("scrollTop",f+g-a+e.height())}this.active=e.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",d,{item:e})}, -deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(d){this.move("next",".ui-menu-item:first",d)},previous:function(d){this.move("prev",".ui-menu-item:last",d)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(d,e,g){if(this.active){d=this.active[d+"All"](".ui-menu-item").eq(0); -d.length?this.activate(g,d):this.activate(g,this.element.children(e))}else this.activate(g,this.element.children(e))},nextPage:function(d){if(this.hasScroll())if(!this.active||this.last())this.activate(d,this.element.children(".ui-menu-item:first"));else{var e=this.active.offset().top,g=this.element.height(),f=this.element.children(".ui-menu-item").filter(function(){var a=b(this).offset().top-e-g+b(this).height();return a<10&&a>-10});f.length||(f=this.element.children(".ui-menu-item:last"));this.activate(d, -f)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(d){if(this.hasScroll())if(!this.active||this.first())this.activate(d,this.element.children(".ui-menu-item:last"));else{var e=this.active.offset().top,g=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var f=b(this).offset().top-e+g-b(this).height();return f<10&&f>-10});result.length||(result=this.element.children(".ui-menu-item:first")); -this.activate(d,result)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(f.empty()).text(),c=this.options.icons,h=c.primary&&c.secondary,i=[];if(c.primary||c.secondary){if(this.options.text)i.push("ui-button-text-icon"+(h?"s":c.primary?"-primary":"-secondary"));c.primary&&f.prepend("");c.secondary&&f.append("");if(!this.options.text){i.push(h?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||f.attr("title",a)}}else i.push("ui-button-text-only");f.addClass(i.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(f,a){f==="disabled"&&this.buttons.button("option",f,a);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");b.Widget.prototype.destroy.call(this)}})})(jQuery); -(function(b,d){function e(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= -"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", -"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", -minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};b.extend(this._defaults,this.regional[""]);this.dpDiv=b('
        ')}function g(a,c){b.extend(a,c);for(var h in c)if(c[h]== -null||c[h]==d)a[h]=c[h];return a}b.extend(b.ui,{datepicker:{version:"1.8.11"}});var f=(new Date).getTime();b.extend(e.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){g(this._defaults,a||{});return this},_attachDatepicker:function(a,c){var h=null;for(var i in this._defaults){var j=a.getAttribute("date:"+i);if(j){h=h||{};try{h[i]=eval(j)}catch(n){h[i]=j}}}i=a.nodeName.toLowerCase(); -j=i=="div"||i=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var p=this._newInst(b(a),j);p.settings=b.extend({},c||{},h||{});if(i=="input")this._connectDatepicker(a,p);else j&&this._inlineDatepicker(a,p)},_newInst:function(a,c){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:c,dpDiv:!c?this.dpDiv:b('
        ')}}, -_connectDatepicker:function(a,c){var h=b(a);c.append=b([]);c.trigger=b([]);if(!h.hasClass(this.markerClassName)){this._attachments(h,c);h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(i,j,n){c.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(c,j)});this._autoSize(c);b.data(a,"datepicker",c)}},_attachments:function(a,c){var h=this._get(c,"appendText"),i=this._get(c,"isRTL");c.append&& -c.append.remove();if(h){c.append=b(''+h+"");a[i?"before":"after"](c.append)}a.unbind("focus",this._showDatepicker);c.trigger&&c.trigger.remove();h=this._get(c,"showOn");if(h=="focus"||h=="both")a.focus(this._showDatepicker);if(h=="button"||h=="both"){h=this._get(c,"buttonText");var j=this._get(c,"buttonImage");c.trigger=b(this._get(c,"buttonImageOnly")?b("").addClass(this._triggerClass).attr({src:j,alt:h,title:h}):b('').addClass(this._triggerClass).html(j== -""?h:b("").attr({src:j,alt:h,title:h})));a[i?"before":"after"](c.trigger);c.trigger.click(function(){b.datepicker._datepickerShowing&&b.datepicker._lastInput==a[0]?b.datepicker._hideDatepicker():b.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var c=new Date(2009,11,20),h=this._get(a,"dateFormat");if(h.match(/[DM]/)){var i=function(j){for(var n=0,p=0,l=0;ln){n=j[l].length;p=l}return p};c.setMonth(i(this._get(a, -h.match(/MM/)?"monthNames":"monthNamesShort")));c.setDate(i(this._get(a,h.match(/DD/)?"dayNames":"dayNamesShort"))+20-c.getDay())}a.input.attr("size",this._formatDate(a,c).length)}},_inlineDatepicker:function(a,c){var h=b(a);if(!h.hasClass(this.markerClassName)){h.addClass(this.markerClassName).append(c.dpDiv).bind("setData.datepicker",function(i,j,n){c.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(c,j)});b.data(a,"datepicker",c);this._setDate(c,this._getDefaultDate(c), -true);this._updateDatepicker(c);this._updateAlternate(c);c.dpDiv.show()}},_dialogDatepicker:function(a,c,h,i,j){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=b('');this._dialogInput.keydown(this._doKeyDown);b("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};b.data(this._dialogInput[0],"datepicker",a)}g(a.settings,i||{}); -c=c&&c.constructor==Date?this._formatDate(a,c):c;this._dialogInput.val(c);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=h;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); -this._showDatepicker(this._dialogInput[0]);b.blockUI&&b.blockUI(this.dpDiv);b.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();b.removeData(a,"datepicker");if(i=="input"){h.append.remove();h.trigger.remove();c.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", -this._doKeyUp)}else if(i=="div"||i=="span")c.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=false;h.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(i=="div"||i=="span")c.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs, -function(j){return j==a?null:j})}},_disableDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=true;h.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(i=="div"||i=="span")c.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null: -j});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var c=0;c-1}},_doKeyUp:function(a){a=b.datepicker._getInst(a.target); -if(a.input.val()!=a.lastVal)try{if(b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,b.datepicker._getFormatConfig(a))){b.datepicker._setDateFromField(a);b.datepicker._updateAlternate(a);b.datepicker._updateDatepicker(a)}}catch(c){b.datepicker.log(c)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=b("input",a.parentNode)[0];if(!(b.datepicker._isDisabledDatepicker(a)||b.datepicker._lastInput==a)){var c=b.datepicker._getInst(a); -b.datepicker._curInst&&b.datepicker._curInst!=c&&b.datepicker._curInst.dpDiv.stop(true,true);var h=b.datepicker._get(c,"beforeShow");g(c.settings,h?h.apply(a,[a,c]):{});c.lastVal=null;b.datepicker._lastInput=a;b.datepicker._setDateFromField(c);if(b.datepicker._inDialog)a.value="";if(!b.datepicker._pos){b.datepicker._pos=b.datepicker._findPos(a);b.datepicker._pos[1]+=a.offsetHeight}var i=false;b(a).parents().each(function(){i|=b(this).css("position")=="fixed";return!i});if(i&&b.browser.opera){b.datepicker._pos[0]-= -document.documentElement.scrollLeft;b.datepicker._pos[1]-=document.documentElement.scrollTop}h={left:b.datepicker._pos[0],top:b.datepicker._pos[1]};b.datepicker._pos=null;c.dpDiv.empty();c.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});b.datepicker._updateDatepicker(c);h=b.datepicker._checkOffset(c,h,i);c.dpDiv.css({position:b.datepicker._inDialog&&b.blockUI?"static":i?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"});if(!c.inline){h=b.datepicker._get(c,"showAnim"); -var j=b.datepicker._get(c,"duration"),n=function(){b.datepicker._datepickerShowing=true;var p=c.dpDiv.find("iframe.ui-datepicker-cover");if(p.length){var l=b.datepicker._getBorders(c.dpDiv);p.css({left:-l[0],top:-l[1],width:c.dpDiv.outerWidth(),height:c.dpDiv.outerHeight()})}};c.dpDiv.zIndex(b(a).zIndex()+1);b.effects&&b.effects[h]?c.dpDiv.show(h,b.datepicker._get(c,"showOptions"),j,n):c.dpDiv[h||"show"](h?j:null,n);if(!h||!j)n();c.input.is(":visible")&&!c.input.is(":disabled")&&c.input.focus();b.datepicker._curInst= -c}}},_updateDatepicker:function(a){var c=this,h=b.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var i=a.dpDiv.find("iframe.ui-datepicker-cover");i.length&&i.css({left:-h[0],top:-h[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){b(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).removeClass("ui-datepicker-prev-hover"); -this.className.indexOf("ui-datepicker-next")!=-1&&b(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!c._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).addClass("ui-datepicker-next-hover")}}).end().find("."+ -this._dayOverClass+" a").trigger("mouseover").end();h=this._getNumberOfMonths(a);i=h[1];i>1?a.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",17*i+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==b.datepicker._curInst&&b.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&& -a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var j=a.yearshtml;setTimeout(function(){j===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);j=a.yearshtml=null},0)}},_getBorders:function(a){var c=function(h){return{thin:1,medium:2,thick:3}[h]||h};return[parseFloat(c(a.css("border-left-width"))),parseFloat(c(a.css("border-top-width")))]},_checkOffset:function(a,c,h){var i=a.dpDiv.outerWidth(),j=a.dpDiv.outerHeight(),n=a.input?a.input.outerWidth(): -0,p=a.input?a.input.outerHeight():0,l=document.documentElement.clientWidth+b(document).scrollLeft(),k=document.documentElement.clientHeight+b(document).scrollTop();c.left-=this._get(a,"isRTL")?i-n:0;c.left-=h&&c.left==a.input.offset().left?b(document).scrollLeft():0;c.top-=h&&c.top==a.input.offset().top+p?b(document).scrollTop():0;c.left-=Math.min(c.left,c.left+i>l&&l>i?Math.abs(c.left+i-l):0);c.top-=Math.min(c.top,c.top+j>k&&k>j?Math.abs(j+p):0);return c},_findPos:function(a){for(var c=this._get(this._getInst(a), -"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||b.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];a=b(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var c=this._curInst;if(!(!c||a&&c!=b.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(c,"showAnim");var h=this._get(c,"duration"),i=function(){b.datepicker._tidyDialog(c);this._curInst=null};b.effects&&b.effects[a]?c.dpDiv.hide(a,b.datepicker._get(c,"showOptions"),h,i):c.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"? -"fadeOut":"hide"](a?h:null,i);a||i();if(a=this._get(c,"onClose"))a.apply(c.input?c.input[0]:null,[c.input?c.input.val():"",c]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(b.blockUI){b.unblockUI();b("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(b.datepicker._curInst){a= -b(a.target);a[0].id!=b.datepicker._mainDivId&&a.parents("#"+b.datepicker._mainDivId).length==0&&!a.hasClass(b.datepicker.markerClassName)&&!a.hasClass(b.datepicker._triggerClass)&&b.datepicker._datepickerShowing&&!(b.datepicker._inDialog&&b.blockUI)&&b.datepicker._hideDatepicker()}},_adjustDate:function(a,c,h){a=b(a);var i=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(i,c+(h=="M"?this._get(i,"showCurrentAtPos"):0),h);this._updateDatepicker(i)}},_gotoToday:function(a){a= -b(a);var c=this._getInst(a[0]);if(this._get(c,"gotoCurrent")&&c.currentDay){c.selectedDay=c.currentDay;c.drawMonth=c.selectedMonth=c.currentMonth;c.drawYear=c.selectedYear=c.currentYear}else{var h=new Date;c.selectedDay=h.getDate();c.drawMonth=c.selectedMonth=h.getMonth();c.drawYear=c.selectedYear=h.getFullYear()}this._notifyChange(c);this._adjustDate(a)},_selectMonthYear:function(a,c,h){a=b(a);var i=this._getInst(a[0]);i._selectingMonthYear=false;i["selected"+(h=="M"?"Month":"Year")]=i["draw"+(h== -"M"?"Month":"Year")]=parseInt(c.options[c.selectedIndex].value,10);this._notifyChange(i);this._adjustDate(a)},_clickMonthYear:function(a){var c=this._getInst(b(a)[0]);c.input&&c._selectingMonthYear&&setTimeout(function(){c.input.focus()},0);c._selectingMonthYear=!c._selectingMonthYear},_selectDay:function(a,c,h,i){var j=b(a);if(!(b(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay=b("a",i).html();j.selectedMonth=j.currentMonth= -c;j.selectedYear=j.currentYear=h;this._selectDate(a,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(a){a=b(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,c){a=this._getInst(b(a)[0]);c=c!=null?c:this._formatDate(a);a.input&&a.input.val(c);this._updateAlternate(a);var h=this._get(a,"onSelect");if(h)h.apply(a.input?a.input[0]:null,[c,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker(); -this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var c=this._get(a,"altField");if(c){var h=this._get(a,"altFormat")||this._get(a,"dateFormat"),i=this._getDate(a),j=this.formatDate(h,i,this._getFormatConfig(a));b(c).each(function(){b(this).val(j)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var c=a.getTime();a.setMonth(0); -a.setDate(1);return Math.floor(Math.round((c-a)/864E5)/7)+1},parseDate:function(a,c,h){if(a==null||c==null)throw"Invalid arguments";c=typeof c=="object"?c.toString():c+"";if(c=="")return null;var i=(h?h.shortYearCutoff:null)||this._defaults.shortYearCutoff;i=typeof i!="string"?i:(new Date).getFullYear()%100+parseInt(i,10);for(var j=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,n=(h?h.dayNames:null)||this._defaults.dayNames,p=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort,l=(h? -h.monthNames:null)||this._defaults.monthNames,k=h=-1,m=-1,o=-1,q=false,s=function(x){(x=y+1-1){k=1;m=o;do{i=this._getDaysInMonth(h,k-1);if(m<=i)break;k++;m-=i}while(1)}B=this._daylightSavingAdjust(new Date(h,k-1,m));if(B.getFullYear()!=h||B.getMonth()+1!=k||B.getDate()!=m)throw"Invalid date";return B},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", -RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,c,h){if(!c)return"";var i=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,j=(h?h.dayNames:null)||this._defaults.dayNames,n=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort;h=(h?h.monthNames:null)||this._defaults.monthNames;var p=function(s){(s=q+112?a.getHours()+2:0);return a},_setDate:function(a,c,h){var i=!c,j=a.selectedMonth,n=a.selectedYear;c=this._restrictMinMax(a,this._determineDate(a,c,new Date));a.selectedDay= -a.currentDay=c.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=c.getMonth();a.drawYear=a.selectedYear=a.currentYear=c.getFullYear();if((j!=a.selectedMonth||n!=a.selectedYear)&&!h)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(i?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var c=new Date;c=this._daylightSavingAdjust(new Date(c.getFullYear(), -c.getMonth(),c.getDate()));var h=this._get(a,"isRTL"),i=this._get(a,"showButtonPanel"),j=this._get(a,"hideIfNoPrevNext"),n=this._get(a,"navigationAsDateFormat"),p=this._getNumberOfMonths(a),l=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),m=p[0]!=1||p[1]!=1,o=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),q=this._getMinMaxDate(a,"min"),s=this._getMinMaxDate(a,"max");l=a.drawMonth-l;var r=a.drawYear;if(l<0){l+=12;r--}if(s){var u= -this._daylightSavingAdjust(new Date(s.getFullYear(),s.getMonth()-p[0]*p[1]+1,s.getDate()));for(u=q&&uu;){l--;if(l<0){l=11;r--}}}a.drawMonth=l;a.drawYear=r;u=this._get(a,"prevText");u=!n?u:this.formatDate(u,this._daylightSavingAdjust(new Date(r,l-k,1)),this._getFormatConfig(a));u=this._canAdjustMonth(a,-1,r,l)?''+u+"":j?"":''+u+"";var v=this._get(a,"nextText");v=!n?v:this.formatDate(v,this._daylightSavingAdjust(new Date(r,l+k,1)),this._getFormatConfig(a));j=this._canAdjustMonth(a,+1,r,l)?''+v+"":j?"":''+v+"";k=this._get(a,"currentText");v=this._get(a,"gotoCurrent")&&a.currentDay?o:c;k=!n?k:this.formatDate(k,v,this._getFormatConfig(a));n=!a.inline?'":"";i=i?'
        '+(h?n:"")+(this._isInRange(a,v)?'":"")+(h?"":n)+"
        ":"";n=parseInt(this._get(a,"firstDay"),10);n=isNaN(n)?0:n;k=this._get(a,"showWeek");v=this._get(a,"dayNames");this._get(a,"dayNamesShort");var w=this._get(a,"dayNamesMin"),y= -this._get(a,"monthNames"),B=this._get(a,"monthNamesShort"),x=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),J=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),K="",G=0;G1)switch(H){case 0:D+=" ui-datepicker-group-first";A=" ui-corner-"+(h?"right":"left");break;case p[1]- -1:D+=" ui-datepicker-group-last";A=" ui-corner-"+(h?"left":"right");break;default:D+=" ui-datepicker-group-middle";A="";break}D+='">'}D+='
        '+(/all|left/.test(A)&&G==0?h?j:u:"")+(/all|right/.test(A)&&G==0?h?u:j:"")+this._generateMonthYearHeader(a,l,r,q,s,G>0||H>0,y,B)+'
        ';var E=k?'":"";for(A=0;A<7;A++){var z= -(A+n)%7;E+="=5?' class="ui-datepicker-week-end"':"")+'>'+w[z]+""}D+=E+"";E=this._getDaysInMonth(r,l);if(r==a.selectedYear&&l==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,E);A=(this._getFirstDayOfMonth(r,l)-n+7)%7;E=m?6:Math.ceil((A+E)/7);z=this._daylightSavingAdjust(new Date(r,l,1-A));for(var P=0;P";var Q=!k?"":'";for(A=0;A<7;A++){var I= -x?x.apply(a.input?a.input[0]:null,[z]):[true,""],F=z.getMonth()!=l,L=F&&!J||!I[0]||q&&zs;Q+='";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}D+= -Q+""}l++;if(l>11){l=0;r++}D+="
        '+this._get(a,"weekHeader")+"
        '+this._get(a,"calculateWeek")(z)+""+(F&&!C?" ":L?''+z.getDate()+"":''+z.getDate()+"")+"
        "+(m?""+(p[0]>0&&H==p[1]-1?'
        ':""):"");N+=D}K+=N}K+=i+(b.browser.msie&&parseInt(b.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return K},_generateMonthYearHeader:function(a,c,h,i,j,n,p,l){var k=this._get(a,"changeMonth"),m=this._get(a,"changeYear"),o=this._get(a,"showMonthAfterYear"),q='
        ', -s="";if(n||!k)s+=''+p[c]+"";else{p=i&&i.getFullYear()==h;var r=j&&j.getFullYear()==h;s+='"}o||(q+=s+(n||!(k&& -m)?" ":""));a.yearshtml="";if(n||!m)q+=''+h+"";else{l=this._get(a,"yearRange").split(":");var v=(new Date).getFullYear();p=function(w){w=w.match(/c[+-].*/)?h+parseInt(w.substring(1),10):w.match(/[+-].*/)?v+parseInt(w,10):parseInt(w,10);return isNaN(w)?v:w};c=p(l[0]);l=Math.max(c,p(l[1]||""));c=i?Math.max(c,i.getFullYear()):c;l=j?Math.min(l,j.getFullYear()):l;for(a.yearshtml+='";if(b.browser.mozilla)q+='";else{q+=a.yearshtml;a.yearshtml=null}}q+=this._get(a,"yearSuffix");if(o)q+=(n||!(k&&m)?" ":"")+s;q+="
        ";return q},_adjustInstDate:function(a,c,h){var i= -a.drawYear+(h=="Y"?c:0),j=a.drawMonth+(h=="M"?c:0);c=Math.min(a.selectedDay,this._getDaysInMonth(i,j))+(h=="D"?c:0);i=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(i,j,c)));a.selectedDay=i.getDate();a.drawMonth=a.selectedMonth=i.getMonth();a.drawYear=a.selectedYear=i.getFullYear();if(h=="M"||h=="Y")this._notifyChange(a)},_restrictMinMax:function(a,c){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");c=h&&ca?a:c},_notifyChange:function(a){var c=this._get(a, -"onChangeMonthYear");if(c)c.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,c){return this._determineDate(a,this._get(a,c+"Date"),null)},_getDaysInMonth:function(a,c){return 32-this._daylightSavingAdjust(new Date(a,c,32)).getDate()},_getFirstDayOfMonth:function(a,c){return(new Date(a,c,1)).getDay()},_canAdjustMonth:function(a,c,h,i){var j=this._getNumberOfMonths(a); -h=this._daylightSavingAdjust(new Date(h,i+(c<0?c:j[0]*j[1]),1));c<0&&h.setDate(this._getDaysInMonth(h.getFullYear(),h.getMonth()));return this._isInRange(a,h)},_isInRange:function(a,c){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!h||c.getTime()>=h.getTime())&&(!a||c.getTime()<=a.getTime())},_getFormatConfig:function(a){var c=this._get(a,"shortYearCutoff");c=typeof c!="string"?c:(new Date).getFullYear()%100+parseInt(c,10);return{shortYearCutoff:c,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,c,h,i){if(!c){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}c=c?typeof c=="object"?c:this._daylightSavingAdjust(new Date(i,h,c)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),c,this._getFormatConfig(a))}});b.fn.datepicker= -function(a){if(!this.length)return this;if(!b.datepicker.initialized){b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);b.datepicker.initialized=true}var c=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(c));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker, -[this[0]].concat(c));return this.each(function(){typeof a=="string"?b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this].concat(c)):b.datepicker._attachDatepicker(this,a)})};b.datepicker=new e;b.datepicker.initialized=false;b.datepicker.uuid=(new Date).getTime();b.datepicker.version="1.8.11";window["DP_jQuery_"+f]=b})(jQuery); -(function(b,d){var e={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},g={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};b.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(f){var a=b(this).css(f).offset().top;a<0&& -b(this).css("top",f.top-a)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var f=this,a=f.options,c=a.title||" ",h=b.ui.dialog.getTitleId(f.element),i=(f.uiDialog=b("
        ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a.dialogClass).css({zIndex:a.zIndex}).attr("tabIndex", --1).css("outline",0).keydown(function(p){if(a.closeOnEscape&&p.keyCode&&p.keyCode===b.ui.keyCode.ESCAPE){f.close(p);p.preventDefault()}}).attr({role:"dialog","aria-labelledby":h}).mousedown(function(p){f.moveToTop(false,p)});f.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);var j=(f.uiDialogTitlebar=b("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i),n=b('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", -"button").hover(function(){n.addClass("ui-state-hover")},function(){n.removeClass("ui-state-hover")}).focus(function(){n.addClass("ui-state-focus")}).blur(function(){n.removeClass("ui-state-focus")}).click(function(p){f.close(p);return false}).appendTo(j);(f.uiDialogTitlebarCloseText=b("")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(n);b("").addClass("ui-dialog-title").attr("id",h).html(c).prependTo(j);if(b.isFunction(a.beforeclose)&&!b.isFunction(a.beforeClose))a.beforeClose= -a.beforeclose;j.find("*").add(j).disableSelection();a.draggable&&b.fn.draggable&&f._makeDraggable();a.resizable&&b.fn.resizable&&f._makeResizable();f._createButtons(a.buttons);f._isOpen=false;b.fn.bgiframe&&i.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var f=this;f.overlay&&f.overlay.destroy();f.uiDialog.hide();f.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");f.uiDialog.remove();f.originalTitle&& -f.element.attr("title",f.originalTitle);return f},widget:function(){return this.uiDialog},close:function(f){var a=this,c,h;if(false!==a._trigger("beforeClose",f)){a.overlay&&a.overlay.destroy();a.uiDialog.unbind("keypress.ui-dialog");a._isOpen=false;if(a.options.hide)a.uiDialog.hide(a.options.hide,function(){a._trigger("close",f)});else{a.uiDialog.hide();a._trigger("close",f)}b.ui.dialog.overlay.resize();if(a.options.modal){c=0;b(".ui-dialog").each(function(){if(this!==a.uiDialog[0]){h=b(this).css("z-index"); -isNaN(h)||(c=Math.max(c,h))}});b.ui.dialog.maxZ=c}return a}},isOpen:function(){return this._isOpen},moveToTop:function(f,a){var c=this,h=c.options;if(h.modal&&!f||!h.stack&&!h.modal)return c._trigger("focus",a);if(h.zIndex>b.ui.dialog.maxZ)b.ui.dialog.maxZ=h.zIndex;if(c.overlay){b.ui.dialog.maxZ+=1;c.overlay.$el.css("z-index",b.ui.dialog.overlay.maxZ=b.ui.dialog.maxZ)}f={scrollTop:c.element.attr("scrollTop"),scrollLeft:c.element.attr("scrollLeft")};b.ui.dialog.maxZ+=1;c.uiDialog.css("z-index",b.ui.dialog.maxZ); -c.element.attr(f);c._trigger("focus",a);return c},open:function(){if(!this._isOpen){var f=this,a=f.options,c=f.uiDialog;f.overlay=a.modal?new b.ui.dialog.overlay(f):null;f._size();f._position(a.position);c.show(a.show);f.moveToTop(true);a.modal&&c.bind("keypress.ui-dialog",function(h){if(h.keyCode===b.ui.keyCode.TAB){var i=b(":tabbable",this),j=i.filter(":first");i=i.filter(":last");if(h.target===i[0]&&!h.shiftKey){j.focus(1);return false}else if(h.target===j[0]&&h.shiftKey){i.focus(1);return false}}}); -b(f.element.find(":tabbable").get().concat(c.find(".ui-dialog-buttonpane :tabbable").get().concat(c.get()))).eq(0).focus();f._isOpen=true;f._trigger("open");return f}},_createButtons:function(f){var a=this,c=false,h=b("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),i=b("
        ").addClass("ui-dialog-buttonset").appendTo(h);a.uiDialog.find(".ui-dialog-buttonpane").remove();typeof f==="object"&&f!==null&&b.each(f,function(){return!(c=true)});if(c){b.each(f,function(j, -n){n=b.isFunction(n)?{click:n,text:j}:n;j=b('').attr(n,true).unbind("click").click(function(){n.click.apply(a.element[0],arguments)}).appendTo(i);b.fn.button&&j.button()});h.appendTo(a.uiDialog)}},_makeDraggable:function(){function f(j){return{position:j.position,offset:j.offset}}var a=this,c=a.options,h=b(document),i;a.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(j,n){i= -c.height==="auto"?"auto":b(this).height();b(this).height(b(this).height()).addClass("ui-dialog-dragging");a._trigger("dragStart",j,f(n))},drag:function(j,n){a._trigger("drag",j,f(n))},stop:function(j,n){c.position=[n.position.left-h.scrollLeft(),n.position.top-h.scrollTop()];b(this).removeClass("ui-dialog-dragging").height(i);a._trigger("dragStop",j,f(n));b.ui.dialog.overlay.resize()}})},_makeResizable:function(f){function a(j){return{originalPosition:j.originalPosition,originalSize:j.originalSize, -position:j.position,size:j.size}}f=f===d?this.options.resizable:f;var c=this,h=c.options,i=c.uiDialog.css("position");f=typeof f==="string"?f:"n,e,s,w,se,sw,ne,nw";c.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:c.element,maxWidth:h.maxWidth,maxHeight:h.maxHeight,minWidth:h.minWidth,minHeight:c._minHeight(),handles:f,start:function(j,n){b(this).addClass("ui-dialog-resizing");c._trigger("resizeStart",j,a(n))},resize:function(j,n){c._trigger("resize",j,a(n))},stop:function(j, -n){b(this).removeClass("ui-dialog-resizing");h.height=b(this).height();h.width=b(this).width();c._trigger("resizeStop",j,a(n));b.ui.dialog.overlay.resize()}}).css("position",i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var f=this.options;return f.height==="auto"?f.minHeight:Math.min(f.minHeight,f.height)},_position:function(f){var a=[],c=[0,0],h;if(f){if(typeof f==="string"||typeof f==="object"&&"0"in f){a=f.split?f.split(" "):[f[0],f[1]];if(a.length=== -1)a[1]=a[0];b.each(["left","top"],function(i,j){if(+a[i]===a[i]){c[i]=a[i];a[i]=j}});f={my:a.join(" "),at:a.join(" "),offset:c.join(" ")}}f=b.extend({},b.ui.dialog.prototype.options.position,f)}else f=b.ui.dialog.prototype.options.position;(h=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(b.extend({of:window},f));h||this.uiDialog.hide()},_setOptions:function(f){var a=this,c={},h=false;b.each(f,function(i,j){a._setOption(i,j);if(i in e)h=true;if(i in -g)c[i]=j});h&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",c)},_setOption:function(f,a){var c=this,h=c.uiDialog;switch(f){case "beforeclose":f="beforeClose";break;case "buttons":c._createButtons(a);break;case "closeText":c.uiDialogTitlebarCloseText.text(""+a);break;case "dialogClass":h.removeClass(c.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a);break;case "disabled":a?h.addClass("ui-dialog-disabled"):h.removeClass("ui-dialog-disabled"); -break;case "draggable":var i=h.is(":data(draggable)");i&&!a&&h.draggable("destroy");!i&&a&&c._makeDraggable();break;case "position":c._position(a);break;case "resizable":(i=h.is(":data(resizable)"))&&!a&&h.resizable("destroy");i&&typeof a==="string"&&h.resizable("option","handles",a);!i&&a!==false&&c._makeResizable(a);break;case "title":b(".ui-dialog-title",c.uiDialogTitlebar).html(""+(a||" "));break}b.Widget.prototype._setOption.apply(c,arguments)},_size:function(){var f=this.options,a,c,h= -this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(f.minWidth>f.width)f.width=f.minWidth;a=this.uiDialog.css({height:"auto",width:f.width}).height();c=Math.max(0,f.minHeight-a);if(f.height==="auto")if(b.support.minHeight)this.element.css({minHeight:c,height:"auto"});else{this.uiDialog.show();f=this.element.css("height","auto").height();h||this.uiDialog.hide();this.element.height(Math.max(f,c))}else this.element.height(Math.max(f.height-a,0));this.uiDialog.is(":data(resizable)")&& -this.uiDialog.resizable("option","minHeight",this._minHeight())}});b.extend(b.ui.dialog,{version:"1.8.11",uuid:0,maxZ:0,getTitleId:function(f){f=f.attr("id");if(!f){this.uuid+=1;f=this.uuid}return"ui-dialog-title-"+f},overlay:function(f){this.$el=b.ui.dialog.overlay.create(f)}});b.extend(b.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(f){return f+".dialog-overlay"}).join(" "),create:function(f){if(this.instances.length=== -0){setTimeout(function(){b.ui.dialog.overlay.instances.length&&b(document).bind(b.ui.dialog.overlay.events,function(c){if(b(c.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});b.fn.bgiframe&&a.bgiframe();this.instances.push(a);return a},destroy:function(f){var a=b.inArray(f,this.instances);a!=-1&&this.oldInstances.push(this.instances.splice(a,1)[0]);this.instances.length===0&&b([document,window]).unbind(".dialog-overlay");f.remove();var c=0;b.each(this.instances,function(){c=Math.max(c,this.css("z-index"))});this.maxZ=c},height:function(){var f,a;if(b.browser.msie&&b.browser.version<7){f=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -a=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return f0?a.left-h:Math.max(a.left-c.collisionPosition.left,a.left)},top:function(a,c){var h=b(window);h=c.collisionPosition.top+c.collisionHeight-h.height()-h.scrollTop();a.top=h>0?a.top-h:Math.max(a.top-c.collisionPosition.top,a.top)}},flip:{left:function(a,c){if(c.at[0]!=="center"){var h=b(window);h=c.collisionPosition.left+c.collisionWidth-h.width()-h.scrollLeft();var i=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,j=c.at[0]==="left"?c.targetWidth:-c.targetWidth,n=-2*c.offset[0];a.left+= -c.collisionPosition.left<0?i+j+n:h>0?i+j+n:0}},top:function(a,c){if(c.at[1]!=="center"){var h=b(window);h=c.collisionPosition.top+c.collisionHeight-h.height()-h.scrollTop();var i=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,j=c.at[1]==="top"?c.targetHeight:-c.targetHeight,n=-2*c.offset[1];a.top+=c.collisionPosition.top<0?i+j+n:h>0?i+j+n:0}}}};if(!b.offset.setOffset){b.offset.setOffset=function(a,c){if(/static/.test(b.curCSS(a,"position")))a.style.position="relative";var h=b(a), -i=h.offset(),j=parseInt(b.curCSS(a,"top",true),10)||0,n=parseInt(b.curCSS(a,"left",true),10)||0;i={top:c.top-i.top+j,left:c.left-i.left+n};"using"in c?c.using.call(a,i):h.css(i)};b.fn.offset=function(a){var c=this[0];if(!c||!c.ownerDocument)return null;if(a)return this.each(function(){b.offset.setOffset(this,a)});return f.call(this)}}})(jQuery); -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
        ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(e){if(e===d)return this._value();this._setOption("value",e);return this},_setOption:function(e,g){if(e==="value"){this.options.value=g;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var e=this.options.value;if(typeof e!=="number")e=0;return Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var e=this.value(),g=this._percentage();if(this.oldValue!==e){this.oldValue=e;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",e===this.options.max).width(g.toFixed(0)+"%");this.element.attr("aria-valuenow",e)}});b.extend(b.ui.progressbar,{version:"1.8.11"})})(jQuery); -(function(b){b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var d=this,e=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");e.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); -this.range=b([]);if(e.range){if(e.range===true){this.range=b("
        ");if(!e.values)e.values=[this._valueMin(),this._valueMin()];if(e.values.length&&e.values.length!==2)e.values=[e.values[0],e.values[0]]}else this.range=b("
        ");this.range.appendTo(this.element).addClass("ui-slider-range");if(e.range==="min"||e.range==="max")this.range.addClass("ui-slider-range-"+e.range);this.range.addClass("ui-widget-header")}b(".ui-slider-handle",this.element).length===0&&b("").appendTo(this.element).addClass("ui-slider-handle"); -if(e.values&&e.values.length)for(;b(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){e.disabled||b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(e.disabled)b(this).blur(); -else{b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(g){b(this).data("index.ui-slider-handle",g)});this.handles.keydown(function(g){var f=true,a=b(this).data("index.ui-slider-handle"),c,h,i;if(!d.options.disabled){switch(g.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:f= -false;if(!d._keySliding){d._keySliding=true;b(this).addClass("ui-state-active");c=d._start(g,a);if(c===false)return}break}i=d.options.step;c=d.options.values&&d.options.values.length?(h=d.values(a)):(h=d.value());switch(g.keyCode){case b.ui.keyCode.HOME:h=d._valueMin();break;case b.ui.keyCode.END:h=d._valueMax();break;case b.ui.keyCode.PAGE_UP:h=d._trimAlignValue(c+(d._valueMax()-d._valueMin())/5);break;case b.ui.keyCode.PAGE_DOWN:h=d._trimAlignValue(c-(d._valueMax()-d._valueMin())/5);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(c=== -d._valueMax())return;h=d._trimAlignValue(c+i);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(c===d._valueMin())return;h=d._trimAlignValue(c-i);break}d._slide(g,a,h);return f}}).keyup(function(g){var f=b(this).data("index.ui-slider-handle");if(d._keySliding){d._keySliding=false;d._stop(g,f);d._change(g,f);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); -this._mouseDestroy();return this},_mouseCapture:function(d){var e=this.options,g,f,a,c,h;if(e.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();g=this._normValueFromMouse({x:d.pageX,y:d.pageY});f=this._valueMax()-this._valueMin()+1;c=this;this.handles.each(function(i){var j=Math.abs(g-c.values(i));if(f>j){f=j;a=b(this);h=i}});if(e.range===true&&this.values(1)===e.min){h+=1;a=b(this.handles[h])}if(this._start(d, -h)===false)return false;this._mouseSliding=true;c._handleIndex=h;a.addClass("ui-state-active").focus();e=a.offset();this._clickOffset=!b(d.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:d.pageX-e.left-a.width()/2,top:d.pageY-e.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(d,h,g);return this._animateOff=true},_mouseStart:function(){return true}, -_mouseDrag:function(d){var e=this._normValueFromMouse({x:d.pageX,y:d.pageY});this._slide(d,this._handleIndex,e);return false},_mouseStop:function(d){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(d,this._handleIndex);this._change(d,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var e; -if(this.orientation==="horizontal"){e=this.elementSize.width;d=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{e=this.elementSize.height;d=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}e=d/e;if(e>1)e=1;if(e<0)e=0;if(this.orientation==="vertical")e=1-e;d=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+e*d)},_start:function(d,e){var g={handle:this.handles[e],value:this.value()};if(this.options.values&&this.options.values.length){g.value= -this.values(e);g.values=this.values()}return this._trigger("start",d,g)},_slide:function(d,e,g){var f;if(this.options.values&&this.options.values.length){f=this.values(e?0:1);if(this.options.values.length===2&&this.options.range===true&&(e===0&&g>f||e===1&&g1){this.options.values[d]=this._trimAlignValue(e);this._refreshValue();this._change(null,d)}if(arguments.length)if(b.isArray(arguments[0])){g=this.options.values;f=arguments[0];for(a=0;a=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,g=(d-this._valueMin())%e;alignValue=d-g;if(Math.abs(g)*2>=e)alignValue+=g>0?e:-e;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var d=this.options.range,e=this.options,g=this,f=!this._animateOff?e.animate:false,a,c={},h,i,j,n;if(this.options.values&&this.options.values.length)this.handles.each(function(p){a=(g.values(p)-g._valueMin())/(g._valueMax()-g._valueMin())*100;c[g.orientation==="horizontal"?"left":"bottom"]=a+"%";b(this).stop(1,1)[f?"animate":"css"](c,e.animate);if(g.options.range===true)if(g.orientation==="horizontal"){if(p===0)g.range.stop(1,1)[f?"animate":"css"]({left:a+"%"},e.animate); -if(p===1)g.range[f?"animate":"css"]({width:a-h+"%"},{queue:false,duration:e.animate})}else{if(p===0)g.range.stop(1,1)[f?"animate":"css"]({bottom:a+"%"},e.animate);if(p===1)g.range[f?"animate":"css"]({height:a-h+"%"},{queue:false,duration:e.animate})}h=a});else{i=this.value();j=this._valueMin();n=this._valueMax();a=n!==j?(i-j)/(n-j)*100:0;c[g.orientation==="horizontal"?"left":"bottom"]=a+"%";this.handle.stop(1,1)[f?"animate":"css"](c,e.animate);if(d==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:a+"%"},e.animate);if(d==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-a+"%"},{queue:false,duration:e.animate});if(d==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:a+"%"},e.animate);if(d==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-a+"%"},{queue:false,duration:e.animate})}}});b.extend(b.ui.slider,{version:"1.8.11"})})(jQuery); -(function(b,d){function e(){return++f}function g(){return++a}var f=0,a=0;b.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
        ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
      • #{label}
      • "},_create:function(){this._tabify(true)},_setOption:function(c,h){if(c=="selected")this.options.collapsible&& -h==this.options.selected||this.select(h);else{this.options[c]=h;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+g());return b.cookie.apply(null,[c].concat(b.makeArray(arguments)))},_ui:function(c,h){return{tab:c,panel:h,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= -b(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function h(r,u){r.css("display","");!b.support.opacity&&u.opacity&&r[0].style.removeAttribute("filter")}var i=this,j=this.options,n=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(r,u){var v=b(u).attr("href"),w=v.split("#")[0],y;if(w&&(w===location.toString().split("#")[0]|| -(y=b("base")[0])&&w===y.href)){v=u.hash;u.href=v}if(n.test(v))i.panels=i.panels.add(i.element.find(i._sanitizeSelector(v)));else if(v&&v!=="#"){b.data(u,"href.tabs",v);b.data(u,"load.tabs",v.replace(/#.*$/,""));v=i._tabId(u);u.href="#"+v;u=i.element.find("#"+v);if(!u.length){u=b(j.panelTemplate).attr("id",v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r-1]||i.list);u.data("destroy.tabs",true)}i.panels=i.panels.add(u)}else j.disabled.push(r)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===d){location.hash&&this.anchors.each(function(r,u){if(u.hash==location.hash){j.selected=r;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(i._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(r){return i.lis.index(r)}))).sort();b.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(b.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(j.selected>=0&&this.anchors.length){i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");i.element.queue("tabs",function(){i._trigger("show",null,i._ui(i.anchors[j.selected],i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))[0]))});this.load(j.selected)}b(window).bind("unload",function(){i.lis.add(i.anchors).unbind(".tabs");i.lis=i.anchors=i.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);c=0;for(var p;p=this.lis[c];c++)b(p)[b.inArray(c,j.disabled)!=-1&&!b(p).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var l=function(r,u){u.is(":not(.ui-state-disabled)")&&u.addClass("ui-state-"+r)},k=function(r,u){u.removeClass("ui-state-"+ -r)};this.lis.bind("mouseover.tabs",function(){l("hover",b(this))});this.lis.bind("mouseout.tabs",function(){k("hover",b(this))});this.anchors.bind("focus.tabs",function(){l("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",b(this).closest("li"))})}var m,o;if(j.fx)if(b.isArray(j.fx)){m=j.fx[0];o=j.fx[1]}else m=o=j.fx;var q=o?function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){h(u,o);i._trigger("show",null,i._ui(r,u[0]))})}:function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.removeClass("ui-tabs-hide");i._trigger("show",null,i._ui(r,u[0]))},s=m?function(r,u){u.animate(m,m.duration||"normal",function(){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");h(u,m);i.element.dequeue("tabs")})}:function(r,u){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");i.element.dequeue("tabs")}; -this.anchors.bind(j.event+".tabs",function(){var r=this,u=b(r).closest("li"),v=i.panels.filter(":not(.ui-tabs-hide)"),w=i.element.find(i._sanitizeSelector(r.hash));if(u.hasClass("ui-tabs-selected")&&!j.collapsible||u.hasClass("ui-state-disabled")||u.hasClass("ui-state-processing")||i.panels.filter(":animated").length||i._trigger("select",null,i._ui(this,w[0]))===false){this.blur();return false}j.selected=i.anchors.index(this);i.abort();if(j.collapsible)if(u.hasClass("ui-tabs-selected")){j.selected= --1;j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){s(r,v)}).dequeue("tabs");this.blur();return false}else if(!v.length){j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){q(r,w)});i.load(i.anchors.index(this));this.blur();return false}j.cookie&&i._cookie(j.selected,j.cookie);if(w.length){v.length&&i.element.queue("tabs",function(){s(r,v)});i.element.queue("tabs",function(){q(r,w)});i.load(i.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));return c},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h= -b.data(this,"href.tabs");if(h)this.href=h;var i=b(this).unbind(".tabs");b.each(["href","load","cache"],function(j,n){i.removeData(n+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c, -h,i){if(i===d)i=this.anchors.length;var j=this,n=this.options;h=b(n.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,h));c=!c.indexOf("#")?c.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var p=j.element.find("#"+c);p.length||(p=b(n.panelTemplate).attr("id",c).data("destroy.tabs",true));p.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(i>=this.lis.length){h.appendTo(this.list);p.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[i]); -p.insertBefore(this.panels[i])}n.disabled=b.map(n.disabled,function(l){return l>=i?++l:l});this._tabify();if(this.anchors.length==1){n.selected=0;h.addClass("ui-tabs-selected ui-state-active");p.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[i],this.panels[i]));return this},remove:function(c){c=this._getIndex(c);var h=this.options,i=this.lis.eq(c).remove(),j=this.panels.eq(c).remove(); -if(i.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1=c?--n:n});this._tabify();this._trigger("remove",null,this._ui(i.find("a")[0],j[0]));return this},enable:function(c){c=this._getIndex(c);var h=this.options;if(b.inArray(c,h.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(i){return i!=c});this._trigger("enable",null, -this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){c=this._getIndex(c);var h=this.options;if(c!=h.selected){this.lis.eq(c).addClass("ui-state-disabled");h.disabled.push(c);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this},select:function(c){c=this._getIndex(c);if(c==-1)if(this.options.collapsible&&this.options.selected!=-1)c=this.options.selected;else return this;this.anchors.eq(c).trigger(this.options.event+".tabs");return this}, -load:function(c){c=this._getIndex(c);var h=this,i=this.options,j=this.anchors.eq(c)[0],n=b.data(j,"load.tabs");this.abort();if(!n||this.element.queue("tabs").length!==0&&b.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing");if(i.spinner){var p=b("span",j);p.data("label.tabs",p.html()).html(i.spinner)}this.xhr=b.ajax(b.extend({},i.ajaxOptions,{url:n,success:function(l,k){h.element.find(h._sanitizeSelector(j.hash)).html(l);h._cleanup();i.cache&&b.data(j, -"cache.tabs",true);h._trigger("load",null,h._ui(h.anchors[c],h.panels[c]));try{i.ajaxOptions.success(l,k)}catch(m){}},error:function(l,k){h._cleanup();h._trigger("load",null,h._ui(h.anchors[c],h.panels[c]));try{i.ajaxOptions.error(l,k,c,j)}catch(m){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(c,h){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.11"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(c,h){var i=this,j=this.options,n=i._rotate||(i._rotate=function(p){clearTimeout(i.rotation);i.rotation=setTimeout(function(){var l=j.selected;i.select(++l=0)&&b(g).is(":focusable")}}); +b(function(){var g=document.body,f=g.appendChild(f=document.createElement("div"));b.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=f.offsetHeight===100;b.support.selectstart="onselectstart"in f;g.removeChild(f).style.display="none"});b.extend(b.ui,{plugin:{add:function(g,f,a){g=b.ui[g].prototype;for(var c in a){g.plugins[c]=g.plugins[c]||[];g.plugins[c].push([f,a[c]])}},call:function(g,f,a){if((f=g.plugins[f])&&g.element[0].parentNode)for(var c=0;c0)return true;g[f]=1;a=g[f]>0;g[f]=0;return a},isOverAxis:function(g,f,a){return g>f&&g=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate); +if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&b.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +(function(b){b.widget("ui.draggable",b.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(d){var e= +this.options;if(this.helper||e.disabled||b(d.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(d);if(!this.handle)return false;return true},_mouseStart:function(d){var e=this.options;this.helper=this._createHelper(d);this._cacheHelperProportions();if(b.ui.ddmanager)b.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt);e.containment&&this._setContainment();if(this._trigger("start",d)===false){this._clear();return false}this._cacheHelperProportions(); +b.ui.ddmanager&&!e.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,d);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(d,true);return true},_mouseDrag:function(d,e){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!e){e=this._uiHash();if(this._trigger("drag",d,e)===false){this._mouseUp({});return false}this.position=e.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";b.ui.ddmanager&&b.ui.ddmanager.drag(this,d);return false},_mouseStop:function(d){var e=false;if(b.ui.ddmanager&&!this.options.dropBehaviour)e=b.ui.ddmanager.drop(this,d);if(this.dropped){e=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!e||this.options.revert=="valid"&&e||this.options.revert===true||b.isFunction(this.options.revert)&& +this.options.revert.call(this.element,e)){var g=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){g._trigger("stop",d)!==false&&g._clear()})}else this._trigger("stop",d)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(d){var e=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +d.target)e=true});return e},_createHelper:function(d){var e=this.options;d=b.isFunction(e.helper)?b(e.helper.apply(this.element[0],[d])):e.helper=="clone"?this.element.clone():this.element;d.parents("body").length||d.appendTo(e.appendTo=="parent"?this.element[0].parentNode:e.appendTo);d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(d){if(typeof d=="string")d=d.split(" ");if(b.isArray(d))d={left:+d[0],top:+d[1]|| +0};if("left"in d)this.offset.click.left=d.left+this.margins.left;if("right"in d)this.offset.click.left=this.helperProportions.width-d.right+this.margins.left;if("top"in d)this.offset.click.top=d.top+this.margins.top;if("bottom"in d)this.offset.click.top=this.helperProportions.height-d.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var d=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], +this.offsetParent[0])){d.left+=this.scrollParent.scrollLeft();d.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)d={top:0,left:0};return{top:d.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:d.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var d=this.element.position();return{top:d.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:d.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(), +height:this.helper.outerHeight()}},_setContainment:function(){var d=this.options;if(d.containment=="parent")d.containment=this.helper[0].parentNode;if(d.containment=="document"||d.containment=="window")this.containment=[(d.containment=="document"?0:b(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(d.containment=="document"?0:b(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(d.containment=="document"?0:b(window).scrollLeft())+b(d.containment=="document"? +document:window).width()-this.helperProportions.width-this.margins.left,(d.containment=="document"?0:b(window).scrollTop())+(b(d.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(d.containment)&&d.containment.constructor!=Array){var e=b(d.containment)[0];if(e){d=b(d.containment).offset();var g=b(e).css("overflow")!="hidden";this.containment=[d.left+(parseInt(b(e).css("borderLeftWidth"), +10)||0)+(parseInt(b(e).css("paddingLeft"),10)||0),d.top+(parseInt(b(e).css("borderTopWidth"),10)||0)+(parseInt(b(e).css("paddingTop"),10)||0),d.left+(g?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(b(e).css("borderLeftWidth"),10)||0)-(parseInt(b(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,d.top+(g?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(b(e).css("borderTopWidth"),10)||0)-(parseInt(b(e).css("paddingBottom"), +10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(d.containment.constructor==Array)this.containment=d.containment},_convertPositionTo:function(d,e){if(!e)e=this.position;d=d=="absolute"?1:-1;var g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(g[0].tagName);return{top:e.top+this.offset.relative.top*d+this.offset.parent.top*d-(b.browser.safari&& +b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:g.scrollTop())*d),left:e.left+this.offset.relative.left*d+this.offset.parent.left*d-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:g.scrollLeft())*d)}},_generatePosition:function(d){var e=this.options,g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], +this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(g[0].tagName),a=d.pageX,c=d.pageY;if(this.originalPosition){if(this.containment){if(d.pageX-this.offset.click.leftthis.containment[2])a=this.containment[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>this.containment[3])c= +this.containment[3]+this.offset.click.top}if(e.grid){c=this.originalPageY+Math.round((c-this.originalPageY)/e.grid[1])*e.grid[1];c=this.containment?!(c-this.offset.click.topthis.containment[3])?c:!(c-this.offset.click.topthis.containment[2])? +a:!(a-this.offset.click.left').css({width:this.offsetWidth+ +"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(b(this).offset()).appendTo("body")})},stop:function(){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(d,e){d=b(e.helper);e=b(this).data("draggable").options;if(d.css("opacity"))e._opacity=d.css("opacity");d.css("opacity",e.opacity)},stop:function(d,e){d=b(this).data("draggable").options;d._opacity&&b(e.helper).css("opacity", +d._opacity)}});b.ui.plugin.add("draggable","scroll",{start:function(){var d=b(this).data("draggable");if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML")d.overflowOffset=d.scrollParent.offset()},drag:function(d){var e=b(this).data("draggable"),g=e.options,f=false;if(e.scrollParent[0]!=document&&e.scrollParent[0].tagName!="HTML"){if(!g.axis||g.axis!="x")if(e.overflowOffset.top+e.scrollParent[0].offsetHeight-d.pageY=0;n--){var p=g.snapElements[n].left,l=p+g.snapElements[n].width,k=g.snapElements[n].top,m=k+g.snapElements[n].height;if(p-a=n&&c<=p||h>=n&&h<=p||cp)&&(f>= +i&&f<=j||a>=i&&a<=j||fj);default:return false}};b.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(d,e){var g=b.ui.ddmanager.droppables[d.options.scope]||[],f=e?e.type:null,a=(d.currentItem||d.element).find(":data(droppable)").andSelf(),c=0;a:for(;c').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=f.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var a=this.handles.split(",");this.handles={};for(var c=0;c');/sw|se|ne|nw/.test(h)&&i.css({zIndex:++f.zIndex});"se"==h&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[h]=".ui-resizable-"+h;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var n in this.handles){if(this.handles[n].constructor== +String)this.handles[n]=b(this.handles[n],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var p=b(this.handles[n],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(n)?p.outerHeight():p.outerWidth();p=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");j.css(p,l);this._proportionallyResize()}b(this.handles[n])}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!g.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);g.axis=j&&j[1]?j[1]:"se"}});if(f.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");g._handles.show()},function(){if(!g.resizing){b(this).addClass("ui-resizable-autohide");g._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var g=function(a){b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){g(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);g(this.originalElement);return this},_mouseCapture:function(g){var f=false;for(var a in this.handles)if(b(this.handles[a])[0]==g.target)f=true;return!this.options.disabled&&f},_mouseStart:function(g){var f=this.options,a=this.element.position(), +c=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(c.is(".ui-draggable")||/absolute/.test(c.css("position")))c.css({position:"absolute",top:a.top,left:a.left});b.browser.opera&&/relative/.test(c.css("position"))&&c.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();a=d(this.helper.css("left"));var h=d(this.helper.css("top"));if(f.containment){a+=b(f.containment).scrollLeft()||0;h+=b(f.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:a,top:h};this.size=this._helper?{width:c.outerWidth(),height:c.outerHeight()}:{width:c.width(),height:c.height()};this.originalSize=this._helper?{width:c.outerWidth(),height:c.outerHeight()}:{width:c.width(),height:c.height()};this.originalPosition={left:a,top:h};this.sizeDiff={width:c.outerWidth()-c.width(),height:c.outerHeight()-c.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=typeof f.aspectRatio=="number"?f.aspectRatio: +this.originalSize.width/this.originalSize.height||1;f=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",f=="auto"?this.axis+"-resize":f);c.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(g){var f=this.helper,a=this.originalMousePosition,c=this._change[this.axis];if(!c)return false;a=c.apply(this,[g,g.pageX-a.left||0,g.pageY-a.top||0]);if(this._aspectRatio||g.shiftKey)a=this._updateRatio(a,g);a=this._respectSize(a,g);this._propagate("resize", +g);f.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(a);this._trigger("resize",g,this.ui());return false},_mouseStop:function(g){this.resizing=false;var f=this.options,a=this;if(this._helper){var c=this._proportionallyResizeElements,h=c.length&&/textarea/i.test(c[0].nodeName);c=h&&b.ui.hasScroll(c[0],"left")?0:a.sizeDiff.height; +h=h?0:a.sizeDiff.width;h={width:a.helper.width()-h,height:a.helper.height()-c};c=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var i=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;f.animate||this.element.css(b.extend(h,{top:i,left:c}));a.helper.height(a.size.height);a.helper.width(a.size.width);this._helper&&!f.animate&&this._proportionallyResize()}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); +this._propagate("stop",g);this._helper&&this.helper.remove();return false},_updateCache:function(g){this.offset=this.helper.offset();if(e(g.left))this.position.left=g.left;if(e(g.top))this.position.top=g.top;if(e(g.height))this.size.height=g.height;if(e(g.width))this.size.width=g.width},_updateRatio:function(g){var f=this.position,a=this.size,c=this.axis;if(g.height)g.width=a.height*this.aspectRatio;else if(g.width)g.height=a.width/this.aspectRatio;if(c=="sw"){g.left=f.left+(a.width-g.width);g.top= +null}if(c=="nw"){g.top=f.top+(a.height-g.height);g.left=f.left+(a.width-g.width)}return g},_respectSize:function(g){var f=this.options,a=this.axis,c=e(g.width)&&f.maxWidth&&f.maxWidthg.width,j=e(g.height)&&f.minHeight&&f.minHeight>g.height;if(i)g.width=f.minWidth;if(j)g.height=f.minHeight;if(c)g.width=f.maxWidth;if(h)g.height=f.maxHeight;var n=this.originalPosition.left+this.originalSize.width,p=this.position.top+ +this.size.height,l=/sw|nw|w/.test(a);a=/nw|ne|n/.test(a);if(i&&l)g.left=n-f.minWidth;if(c&&l)g.left=n-f.maxWidth;if(j&&a)g.top=p-f.minHeight;if(h&&a)g.top=p-f.maxHeight;if((f=!g.width&&!g.height)&&!g.left&&g.top)g.top=null;else if(f&&!g.top&&g.left)g.left=null;return g},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var g=this.helper||this.element,f=0;f');var f=b.browser.msie&&b.browser.version<7,a=f?1:0;f=f?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-a+"px",top:this.elementOffset.top-a+"px",zIndex:++g.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(g, +f){return{width:this.originalSize.width+f}},w:function(g,f){return{left:this.originalPosition.left+f,width:this.originalSize.width-f}},n:function(g,f,a){return{top:this.originalPosition.top+a,height:this.originalSize.height-a}},s:function(g,f,a){return{height:this.originalSize.height+a}},se:function(g,f,a){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,a]))},sw:function(g,f,a){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f, +a]))},ne:function(g,f,a){return b.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,a]))},nw:function(g,f,a){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,a]))}},_propagate:function(g,f){b.ui.plugin.call(this,g,[f,this.ui()]);g!="resize"&&this._trigger(g,f,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, +originalPosition:this.originalPosition}}});b.extend(b.ui.resizable,{version:"1.8.11"});b.ui.plugin.add("resizable","alsoResize",{start:function(){var g=b(this).data("resizable").options,f=function(a){b(a).each(function(){var c=b(this);c.data("resizable-alsoresize",{width:parseInt(c.width(),10),height:parseInt(c.height(),10),left:parseInt(c.css("left"),10),top:parseInt(c.css("top"),10),position:c.css("position")})})};if(typeof g.alsoResize=="object"&&!g.alsoResize.parentNode)if(g.alsoResize.length){g.alsoResize= +g.alsoResize[0];f(g.alsoResize)}else b.each(g.alsoResize,function(a){f(a)});else f(g.alsoResize)},resize:function(g,f){var a=b(this).data("resizable");g=a.options;var c=a.originalSize,h=a.originalPosition,i={height:a.size.height-c.height||0,width:a.size.width-c.width||0,top:a.position.top-h.top||0,left:a.position.left-h.left||0},j=function(n,p){b(n).each(function(){var l=b(this),k=b(this).data("resizable-alsoresize"),m={},o=p&&p.length?p:l.parents(f.originalElement[0]).length?["width","height"]:["width", +"height","top","left"];b.each(o,function(q,s){if((q=(k[s]||0)+(i[s]||0))&&q>=0)m[s]=q||null});if(b.browser.opera&&/relative/.test(l.css("position"))){a._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(m)})};typeof g.alsoResize=="object"&&!g.alsoResize.nodeType?b.each(g.alsoResize,function(n,p){j(n,p)}):j(g.alsoResize)},stop:function(){var g=b(this).data("resizable"),f=g.options,a=function(c){b(c).each(function(){var h=b(this);h.css({position:h.data("resizable-alsoresize").position})})}; +if(g._revertToRelativePosition){g._revertToRelativePosition=false;typeof f.alsoResize=="object"&&!f.alsoResize.nodeType?b.each(f.alsoResize,function(c){a(c)}):a(f.alsoResize)}b(this).removeData("resizable-alsoresize")}});b.ui.plugin.add("resizable","animate",{stop:function(g){var f=b(this).data("resizable"),a=f.options,c=f._proportionallyResizeElements,h=c.length&&/textarea/i.test(c[0].nodeName),i=h&&b.ui.hasScroll(c[0],"left")?0:f.sizeDiff.height;h={width:f.size.width-(h?0:f.sizeDiff.width),height:f.size.height- +i};i=parseInt(f.element.css("left"),10)+(f.position.left-f.originalPosition.left)||null;var j=parseInt(f.element.css("top"),10)+(f.position.top-f.originalPosition.top)||null;f.element.animate(b.extend(h,j&&i?{top:j,left:i}:{}),{duration:a.animateDuration,easing:a.animateEasing,step:function(){var n={width:parseInt(f.element.css("width"),10),height:parseInt(f.element.css("height"),10),top:parseInt(f.element.css("top"),10),left:parseInt(f.element.css("left"),10)};c&&c.length&&b(c[0]).css({width:n.width, +height:n.height});f._updateCache(n);f._propagate("resize",g)}})}});b.ui.plugin.add("resizable","containment",{start:function(){var g=b(this).data("resizable"),f=g.element,a=g.options.containment;if(f=a instanceof b?a.get(0):/parent/.test(a)?f.parent().get(0):a){g.containerElement=b(f);if(/document/.test(a)||a==document){g.containerOffset={left:0,top:0};g.containerPosition={left:0,top:0};g.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var c= +b(f),h=[];b(["Top","Right","Left","Bottom"]).each(function(n,p){h[n]=d(c.css("padding"+p))});g.containerOffset=c.offset();g.containerPosition=c.position();g.containerSize={height:c.innerHeight()-h[3],width:c.innerWidth()-h[1]};a=g.containerOffset;var i=g.containerSize.height,j=g.containerSize.width;j=b.ui.hasScroll(f,"left")?f.scrollWidth:j;i=b.ui.hasScroll(f)?f.scrollHeight:i;g.parentData={element:f,left:a.left,top:a.top,width:j,height:i}}}},resize:function(g){var f=b(this).data("resizable"),a=f.options, +c=f.containerOffset,h=f.position;g=f._aspectRatio||g.shiftKey;var i={top:0,left:0},j=f.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))i=c;if(h.left<(f._helper?c.left:0)){f.size.width+=f._helper?f.position.left-c.left:f.position.left-i.left;if(g)f.size.height=f.size.width/a.aspectRatio;f.position.left=a.helper?c.left:0}if(h.top<(f._helper?c.top:0)){f.size.height+=f._helper?f.position.top-c.top:f.position.top;if(g)f.size.width=f.size.height*a.aspectRatio;f.position.top=f._helper? +c.top:0}f.offset.left=f.parentData.left+f.position.left;f.offset.top=f.parentData.top+f.position.top;a=Math.abs((f._helper?f.offset.left-i.left:f.offset.left-i.left)+f.sizeDiff.width);c=Math.abs((f._helper?f.offset.top-i.top:f.offset.top-c.top)+f.sizeDiff.height);h=f.containerElement.get(0)==f.element.parent().get(0);i=/relative|absolute/.test(f.containerElement.css("position"));if(h&&i)a-=f.parentData.left;if(a+f.size.width>=f.parentData.width){f.size.width=f.parentData.width-a;if(g)f.size.height= +f.size.width/f.aspectRatio}if(c+f.size.height>=f.parentData.height){f.size.height=f.parentData.height-c;if(g)f.size.width=f.size.height*f.aspectRatio}},stop:function(){var g=b(this).data("resizable"),f=g.options,a=g.containerOffset,c=g.containerPosition,h=g.containerElement,i=b(g.helper),j=i.offset(),n=i.outerWidth()-g.sizeDiff.width;i=i.outerHeight()-g.sizeDiff.height;g._helper&&!f.animate&&/relative/.test(h.css("position"))&&b(this).css({left:j.left-c.left-a.left,width:n,height:i});g._helper&&!f.animate&& +/static/.test(h.css("position"))&&b(this).css({left:j.left-c.left-a.left,width:n,height:i})}});b.ui.plugin.add("resizable","ghost",{start:function(){var g=b(this).data("resizable"),f=g.options,a=g.size;g.ghost=g.originalElement.clone();g.ghost.css({opacity:0.25,display:"block",position:"relative",height:a.height,width:a.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof f.ghost=="string"?f.ghost:"");g.ghost.appendTo(g.helper)},resize:function(){var g=b(this).data("resizable"); +g.ghost&&g.ghost.css({position:"relative",height:g.size.height,width:g.size.width})},stop:function(){var g=b(this).data("resizable");g.ghost&&g.helper&&g.helper.get(0).removeChild(g.ghost.get(0))}});b.ui.plugin.add("resizable","grid",{resize:function(){var g=b(this).data("resizable"),f=g.options,a=g.size,c=g.originalSize,h=g.originalPosition,i=g.axis;f.grid=typeof f.grid=="number"?[f.grid,f.grid]:f.grid;var j=Math.round((a.width-c.width)/(f.grid[0]||1))*(f.grid[0]||1);f=Math.round((a.height-c.height)/ +(f.grid[1]||1))*(f.grid[1]||1);if(/^(se|s|e)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f}else if(/^(ne)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f;g.position.top=h.top-f}else{if(/^(sw)$/.test(i)){g.size.width=c.width+j;g.size.height=c.height+f}else{g.size.width=c.width+j;g.size.height=c.height+f;g.position.top=h.top-f}g.position.left=h.left-j}}});var d=function(g){return parseInt(g,10)||0},e=function(g){return!isNaN(parseInt(g,10))}})(jQuery); +(function(b){b.widget("ui.selectable",b.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var d=this;this.element.addClass("ui-selectable");this.dragged=false;var e;this.refresh=function(){e=b(d.options.filter,d.element[0]);e.each(function(){var g=b(this),f=g.offset();b.data(this,"selectable-item",{element:this,$element:g,left:f.left,top:f.top,right:f.left+g.outerWidth(),bottom:f.top+g.outerHeight(),startselected:false,selected:g.hasClass("ui-selected"), +selecting:g.hasClass("ui-selecting"),unselecting:g.hasClass("ui-unselecting")})})};this.refresh();this.selectees=e.addClass("ui-selectee");this._mouseInit();this.helper=b("
        ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(d){var e=this;this.opos=[d.pageX, +d.pageY];if(!this.options.disabled){var g=this.options;this.selectees=b(g.filter,this.element[0]);this._trigger("start",d);b(g.appendTo).append(this.helper);this.helper.css({left:d.clientX,top:d.clientY,width:0,height:0});g.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var f=b.data(this,"selectable-item");f.startselected=true;if(!d.metaKey){f.$element.removeClass("ui-selected");f.selected=false;f.$element.addClass("ui-unselecting");f.unselecting=true;e._trigger("unselecting", +d,{unselecting:f.element})}});b(d.target).parents().andSelf().each(function(){var f=b.data(this,"selectable-item");if(f){var a=!d.metaKey||!f.$element.hasClass("ui-selected");f.$element.removeClass(a?"ui-unselecting":"ui-selected").addClass(a?"ui-selecting":"ui-unselecting");f.unselecting=!a;f.selecting=a;(f.selected=a)?e._trigger("selecting",d,{selecting:f.element}):e._trigger("unselecting",d,{unselecting:f.element});return false}})}},_mouseDrag:function(d){var e=this;this.dragged=true;if(!this.options.disabled){var g= +this.options,f=this.opos[0],a=this.opos[1],c=d.pageX,h=d.pageY;if(f>c){var i=c;c=f;f=i}if(a>h){i=h;h=a;a=i}this.helper.css({left:f,top:a,width:c-f,height:h-a});this.selectees.each(function(){var j=b.data(this,"selectable-item");if(!(!j||j.element==e.element[0])){var n=false;if(g.tolerance=="touch")n=!(j.left>c||j.righth||j.bottomf&&j.righta&&j.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var d=this.items.length-1;d>=0;d--)this.items[d].item.removeData("sortable-item");return this},_setOption:function(d,e){if(d==="disabled"){this.options[d]= +e;this.widget()[e?"addClass":"removeClass"]("ui-sortable-disabled")}else b.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(d,e){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(d);var g=null,f=this;b(d.target).parents().each(function(){if(b.data(this,"sortable-item")==f){g=b(this);return false}});if(b.data(d.target,"sortable-item")==f)g=b(d.target);if(!g)return false;if(this.options.handle&&!e){var a=false; +b(this.options.handle,g).find("*").andSelf().each(function(){if(this==d.target)a=true});if(!a)return false}this.currentItem=g;this._removeCurrentsFromItems();return true},_mouseStart:function(d,e,g){e=this.options;var f=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(d);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left- +this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");b.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; +this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();e.containment&&this._setContainment();if(e.cursor){if(b("body").css("cursor"))this._storedCursor=b("body").css("cursor");b("body").css("cursor",e.cursor)}if(e.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",e.opacity)}if(e.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",e.zIndex)}if(this.scrollParent[0]!= +document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",d,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!g)for(g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",d,f._uiHash(this));if(b.ui.ddmanager)b.ui.ddmanager.current=this;b.ui.ddmanager&&!e.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,d);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(d); +return true},_mouseDrag:function(d){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var e=this.options,g=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-d.pageY=0;e--){g=this.items[e];var f=g.item[0],a=this._intersectsWithPointer(g);if(a)if(f!=this.currentItem[0]&&this.placeholder[a==1?"next":"prev"]()[0]!=f&&!b.ui.contains(this.placeholder[0],f)&&(this.options.type=="semi-dynamic"?!b.ui.contains(this.element[0], +f):true)){this.direction=a==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(g))this._rearrange(d,g);else break;this._trigger("change",d,this._uiHash());break}}this._contactContainers(d);b.ui.ddmanager&&b.ui.ddmanager.drag(this,d);this._trigger("sort",d,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(d,e){if(d){b.ui.ddmanager&&!this.options.dropBehaviour&&b.ui.ddmanager.drop(this,d);if(this.options.revert){var g=this;e=g.placeholder.offset(); +g.reverting=true;b(this.helper).animate({left:e.left-this.offset.parent.left-g.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-g.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){g._clear(d)})}else this._clear(d,e);return false}},cancel:function(){var d=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): +this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--){this.containers[e]._trigger("deactivate",null,d._uiHash(this));if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",null,d._uiHash(this));this.containers[e].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();b.extend(this,{helper:null, +dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?b(this.domPosition.prev).after(this.currentItem):b(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(d){var e=this._getItemsAsjQuery(d&&d.connected),g=[];d=d||{};b(e).each(function(){var f=(b(d.item||this).attr(d.attribute||"id")||"").match(d.expression||/(.+)[-=_](.+)/);if(f)g.push((d.key||f[1]+"[]")+"="+(d.key&&d.expression?f[1]:f[2]))});!g.length&&d.key&&g.push(d.key+"=");return g.join("&")}, +toArray:function(d){var e=this._getItemsAsjQuery(d&&d.connected),g=[];d=d||{};e.each(function(){g.push(b(d.item||this).attr(d.attribute||"id")||"")});return g},_intersectsWith:function(d){var e=this.positionAbs.left,g=e+this.helperProportions.width,f=this.positionAbs.top,a=f+this.helperProportions.height,c=d.left,h=c+d.width,i=d.top,j=i+d.height,n=this.offset.click.top,p=this.offset.click.left;n=f+n>i&&f+nc&&e+pd[this.floating?"width":"height"]?n:c0?"down":"up")},_getDragHorizontalDirection:function(){var d=this.positionAbs.left-this.lastPositionAbs.left;return d!=0&&(d>0?"right":"left")},refresh:function(d){this._refreshItems(d);this.refreshPositions();return this},_connectWith:function(){var d=this.options;return d.connectWith.constructor==String?[d.connectWith]:d.connectWith},_getItemsAsjQuery:function(d){var e=[],g=[],f=this._connectWith(); +if(f&&d)for(d=f.length-1;d>=0;d--)for(var a=b(f[d]),c=a.length-1;c>=0;c--){var h=b.data(a[c],"sortable");if(h&&h!=this&&!h.options.disabled)g.push([b.isFunction(h.options.items)?h.options.items.call(h.element):b(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}g.push([b.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):b(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), +this]);for(d=g.length-1;d>=0;d--)g[d][0].each(function(){e.push(this)});return b(e)},_removeCurrentsFromItems:function(){for(var d=this.currentItem.find(":data(sortable-item)"),e=0;e=0;a--)for(var c=b(f[a]),h=c.length-1;h>=0;h--){var i=b.data(c[h],"sortable");if(i&&i!=this&&!i.options.disabled){g.push([b.isFunction(i.options.items)?i.options.items.call(i.element[0],d,{item:this.currentItem}):b(i.options.items,i.element),i]);this.containers.push(i)}}for(a=g.length-1;a>=0;a--){d=g[a][1];f=g[a][0];h=0;for(c=f.length;h=0;e--){var g=this.items[e],f=this.options.toleranceElement?b(this.options.toleranceElement,g.item):g.item;if(!d){g.width=f.outerWidth();g.height=f.outerHeight()}f=f.offset();g.left=f.left;g.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;e>=0;e--){f=this.containers[e].element.offset();this.containers[e].containerCache.left= +f.left;this.containers[e].containerCache.top=f.top;this.containers[e].containerCache.width=this.containers[e].element.outerWidth();this.containers[e].containerCache.height=this.containers[e].element.outerHeight()}return this},_createPlaceholder:function(d){var e=d||this,g=e.options;if(!g.placeholder||g.placeholder.constructor==String){var f=g.placeholder;g.placeholder={element:function(){var a=b(document.createElement(e.currentItem[0].nodeName)).addClass(f||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; +if(!f)a.style.visibility="hidden";return a},update:function(a,c){if(!(f&&!g.forcePlaceholderSize)){c.height()||c.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10));c.width()||c.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}}}}e.placeholder=b(g.placeholder.element.call(e.element,e.currentItem));e.currentItem.after(e.placeholder); +g.placeholder.update(e,e.placeholder)},_contactContainers:function(d){for(var e=null,g=null,f=this.containers.length-1;f>=0;f--)if(!b.ui.contains(this.currentItem[0],this.containers[f].element[0]))if(this._intersectsWith(this.containers[f].containerCache)){if(!(e&&b.ui.contains(this.containers[f].element[0],e.element[0]))){e=this.containers[f];g=f}}else if(this.containers[f].containerCache.over){this.containers[f]._trigger("out",d,this._uiHash(this));this.containers[f].containerCache.over=0}if(e)if(this.containers.length=== +1){this.containers[g]._trigger("over",d,this._uiHash(this));this.containers[g].containerCache.over=1}else if(this.currentContainer!=this.containers[g]){e=1E4;f=null;for(var a=this.positionAbs[this.containers[g].floating?"left":"top"],c=this.items.length-1;c>=0;c--)if(b.ui.contains(this.containers[g].element[0],this.items[c].item[0])){var h=this.items[c][this.containers[g].floating?"left":"top"];if(Math.abs(h-a)this.containment[2])a=this.containment[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>this.containment[3])c=this.containment[3]+this.offset.click.top}if(e.grid){c=this.originalPageY+Math.round((c-this.originalPageY)/e.grid[1])*e.grid[1];c=this.containment?!(c-this.offset.click.top< +this.containment[1]||c-this.offset.click.top>this.containment[3])?c:!(c-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left=0;f--)if(b.ui.contains(this.containers[f].element[0], +this.currentItem[0])&&!e){g.push(function(a){return function(c){a._trigger("receive",c,this._uiHash(this))}}.call(this,this.containers[f]));g.push(function(a){return function(c){a._trigger("update",c,this._uiHash(this))}}.call(this,this.containers[f]))}}for(f=this.containers.length-1;f>=0;f--){e||g.push(function(a){return function(c){a._trigger("deactivate",c,this._uiHash(this))}}.call(this,this.containers[f]));if(this.containers[f].containerCache.over){g.push(function(a){return function(c){a._trigger("out", +c,this._uiHash(this))}}.call(this,this.containers[f]));this.containers[f].containerCache.over=0}}this._storedCursor&&b("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(f=0;f").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", +border:"none",margin:0,padding:0});l.wrap(m);m=l.parent();if(l.css("position")=="static"){m.css({position:"relative"});l.css({position:"relative"})}else{b.extend(k,{position:l.css("position"),zIndex:l.css("z-index")});b.each(["top","left","bottom","right"],function(o,q){k[q]=l.css(q);if(isNaN(parseInt(k[q],10)))k[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return m.css(k).show()},removeWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent().replaceWith(l); +return l},setTransition:function(l,k,m,o){o=o||{};b.each(k,function(q,s){unit=l.cssUnit(s);if(unit[0]>0)o[s]=unit[0]*m+unit[1]});return o}});b.fn.extend({effect:function(l){var k=h.apply(this,arguments),m={options:k[1],duration:k[2],callback:k[3]};k=m.options.mode;var o=b.effects[l];if(b.fx.off||!o)return k?this[k](m.duration,m.callback):this.each(function(){m.callback&&m.callback.call(this)});return o.call(this,m)},_show:b.fn.show,show:function(l){if(i(l))return this._show.apply(this,arguments); +else{var k=h.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:b.fn.hide,hide:function(l){if(i(l))return this._hide.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:b.fn.toggle,toggle:function(l){if(i(l)||typeof l==="boolean"||b.isFunction(l))return this.__toggle.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(l){var k=this.css(l), +m=[];b.each(["em","px","%","pt"],function(o,q){if(k.indexOf(q)>0)m=[parseFloat(k),q]});return m}});b.easing.jswing=b.easing.swing;b.extend(b.easing,{def:"easeOutQuad",swing:function(l,k,m,o,q){return b.easing[b.easing.def](l,k,m,o,q)},easeInQuad:function(l,k,m,o,q){return o*(k/=q)*k+m},easeOutQuad:function(l,k,m,o,q){return-o*(k/=q)*(k-2)+m},easeInOutQuad:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k+m;return-o/2*(--k*(k-2)-1)+m},easeInCubic:function(l,k,m,o,q){return o*(k/=q)*k*k+m},easeOutCubic:function(l, +k,m,o,q){return o*((k=k/q-1)*k*k+1)+m},easeInOutCubic:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k+m;return o/2*((k-=2)*k*k+2)+m},easeInQuart:function(l,k,m,o,q){return o*(k/=q)*k*k*k+m},easeOutQuart:function(l,k,m,o,q){return-o*((k=k/q-1)*k*k*k-1)+m},easeInOutQuart:function(l,k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k*k+m;return-o/2*((k-=2)*k*k*k-2)+m},easeInQuint:function(l,k,m,o,q){return o*(k/=q)*k*k*k*k+m},easeOutQuint:function(l,k,m,o,q){return o*((k=k/q-1)*k*k*k*k+1)+m},easeInOutQuint:function(l, +k,m,o,q){if((k/=q/2)<1)return o/2*k*k*k*k*k+m;return o/2*((k-=2)*k*k*k*k+2)+m},easeInSine:function(l,k,m,o,q){return-o*Math.cos(k/q*(Math.PI/2))+o+m},easeOutSine:function(l,k,m,o,q){return o*Math.sin(k/q*(Math.PI/2))+m},easeInOutSine:function(l,k,m,o,q){return-o/2*(Math.cos(Math.PI*k/q)-1)+m},easeInExpo:function(l,k,m,o,q){return k==0?m:o*Math.pow(2,10*(k/q-1))+m},easeOutExpo:function(l,k,m,o,q){return k==q?m+o:o*(-Math.pow(2,-10*k/q)+1)+m},easeInOutExpo:function(l,k,m,o,q){if(k==0)return m;if(k== +q)return m+o;if((k/=q/2)<1)return o/2*Math.pow(2,10*(k-1))+m;return o/2*(-Math.pow(2,-10*--k)+2)+m},easeInCirc:function(l,k,m,o,q){return-o*(Math.sqrt(1-(k/=q)*k)-1)+m},easeOutCirc:function(l,k,m,o,q){return o*Math.sqrt(1-(k=k/q-1)*k)+m},easeInOutCirc:function(l,k,m,o,q){if((k/=q/2)<1)return-o/2*(Math.sqrt(1-k*k)-1)+m;return o/2*(Math.sqrt(1-(k-=2)*k)+1)+m},easeInElastic:function(l,k,m,o,q){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=q)==1)return m+o;s||(s=q*0.3);if(r").css({position:"absolute",visibility:"visible",left:-j*(c/g),top:-i*(h/e)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:c/g,height:h/e,left:a.left+j*(c/g)+(d.options.mode=="show"?(j-Math.floor(g/2))*(c/g):0),top:a.top+i*(h/e)+(d.options.mode=="show"?(i-Math.floor(e/2))*(h/e):0),opacity:d.options.mode=="show"?0:1}).animate({left:a.left+j*(c/g)+(d.options.mode=="show"?0:(j-Math.floor(g/2))*(c/g)),top:a.top+ +i*(h/e)+(d.options.mode=="show"?0:(i-Math.floor(e/2))*(h/e)),opacity:d.options.mode=="show"?1:0},d.duration||500);setTimeout(function(){d.options.mode=="show"?f.css({visibility:"visible"}):f.css({visibility:"visible"}).hide();d.callback&&d.callback.apply(f[0]);f.dequeue();b("div.ui-effects-explode").remove()},d.duration||500)})}})(jQuery); +(function(b){b.effects.fade=function(d){return this.queue(function(){var e=b(this),g=b.effects.setMode(e,d.options.mode||"hide");e.animate({opacity:g},{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){d.callback&&d.callback.apply(this,arguments);e.dequeue()}})})}})(jQuery); +(function(b){b.effects.fold=function(d){return this.queue(function(){var e=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(e,d.options.mode||"hide"),a=d.options.size||15,c=!!d.options.horizFirst,h=d.duration?d.duration/2:b.fx.speeds._default/2;b.effects.save(e,g);e.show();var i=b.effects.createWrapper(e).css({overflow:"hidden"}),j=f=="show"!=c,n=j?["width","height"]:["height","width"];j=j?[i.width(),i.height()]:[i.height(),i.width()];var p=/([0-9]+)%/.exec(a);if(p)a=parseInt(p[1], +10)/100*j[f=="hide"?0:1];if(f=="show")i.css(c?{height:0,width:a}:{height:a,width:0});c={};p={};c[n[0]]=f=="show"?j[0]:a;p[n[1]]=f=="show"?j[1]:0;i.animate(c,h,d.options.easing).animate(p,h,d.options.easing,function(){f=="hide"&&e.hide();b.effects.restore(e,g);b.effects.removeWrapper(e);d.callback&&d.callback.apply(e[0],arguments);e.dequeue()})})}})(jQuery); +(function(b){b.effects.highlight=function(d){return this.queue(function(){var e=b(this),g=["backgroundImage","backgroundColor","opacity"],f=b.effects.setMode(e,d.options.mode||"show"),a={backgroundColor:e.css("backgroundColor")};if(f=="hide")a.opacity=0;b.effects.save(e,g);e.show().css({backgroundImage:"none",backgroundColor:d.options.color||"#ffff99"}).animate(a,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&e.hide();b.effects.restore(e,g);f=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");d.callback&&d.callback.apply(this,arguments);e.dequeue()}})})}})(jQuery); +(function(b){b.effects.pulsate=function(d){return this.queue(function(){var e=b(this),g=b.effects.setMode(e,d.options.mode||"show");times=(d.options.times||5)*2-1;duration=d.duration?d.duration/2:b.fx.speeds._default/2;isVisible=e.is(":visible");animateTo=0;if(!isVisible){e.css("opacity",0).show();animateTo=1}if(g=="hide"&&isVisible||g=="show"&&!isVisible)times--;for(g=0;g').appendTo(document.body).addClass(d.options.className).css({top:f.top,left:f.left,height:e.innerHeight(),width:e.innerWidth(),position:"absolute"}).animate(g,d.duration,d.options.easing,function(){a.remove();d.callback&&d.callback.apply(e[0],arguments); +e.dequeue()})})}})(jQuery); +(function(b){b.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var d=this,e=d.options;d.running=0;d.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");d.headers= +d.element.find(e.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){e.disabled||b(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){e.disabled||b(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){e.disabled||b(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){e.disabled||b(this).removeClass("ui-state-focus")});d.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(e.navigation){var g=d.element.find("a").filter(e.navigationFilter).eq(0);if(g.length){var f=g.closest(".ui-accordion-header");d.active=f.length?f:g.closest(".ui-accordion-content").prev()}}d.active=d._findActive(d.active||e.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");d.active.next().addClass("ui-accordion-content-active");d._createIcons();d.resize();d.element.attr("role","tablist");d.headers.attr("role","tab").bind("keydown.accordion", +function(a){return d._keydown(a)}).next().attr("role","tabpanel");d.headers.not(d.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();d.active.length?d.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):d.headers.eq(0).attr("tabIndex",0);b.browser.safari||d.headers.find("a").attr("tabIndex",-1);e.event&&d.headers.bind(e.event.split(" ").join(".accordion ")+".accordion",function(a){d._clickHandler.call(d,a,this);a.preventDefault()})},_createIcons:function(){var d= +this.options;if(d.icons){b("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var d=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var e=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(d.autoHeight||d.fillHeight)e.css("height","");return b.Widget.prototype.destroy.call(this)},_setOption:function(d,e){b.Widget.prototype._setOption.apply(this,arguments);d=="active"&&this.activate(e);if(d=="icons"){this._destroyIcons(); +e&&this._createIcons()}if(d=="disabled")this.headers.add(this.headers.next())[e?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(d){if(!(this.options.disabled||d.altKey||d.ctrlKey)){var e=b.ui.keyCode,g=this.headers.length,f=this.headers.index(d.target),a=false;switch(d.keyCode){case e.RIGHT:case e.DOWN:a=this.headers[(f+1)%g];break;case e.LEFT:case e.UP:a=this.headers[(f-1+g)%g];break;case e.SPACE:case e.ENTER:this._clickHandler({target:d.target},d.target); +d.preventDefault()}if(a){b(d.target).attr("tabIndex",-1);b(a).attr("tabIndex",0);a.focus();return false}return true}},resize:function(){var d=this.options,e;if(d.fillSpace){if(b.browser.msie){var g=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}e=this.element.parent().height();b.browser.msie&&this.element.parent().css("overflow",g);this.headers.each(function(){e-=b(this).outerHeight(true)});this.headers.next().each(function(){b(this).height(Math.max(0,e-b(this).innerHeight()+ +b(this).height()))}).css("overflow","auto")}else if(d.autoHeight){e=0;this.headers.next().each(function(){e=Math.max(e,b(this).height("").height())}).height(e)}return this},activate:function(d){this.options.active=d;d=this._findActive(d)[0];this._clickHandler({target:d},d);return this},_findActive:function(d){return d?typeof d==="number"?this.headers.filter(":eq("+d+")"):this.headers.not(this.headers.not(d)):d===false?b([]):this.headers.filter(":eq(0)")},_clickHandler:function(d,e){var g=this.options; +if(!g.disabled)if(d.target){d=b(d.currentTarget||e);e=d[0]===this.active[0];g.active=g.collapsible&&e?false:this.headers.index(d);if(!(this.running||!g.collapsible&&e)){var f=this.active;i=d.next();c=this.active.next();h={options:g,newHeader:e&&g.collapsible?b([]):d,oldHeader:this.active,newContent:e&&g.collapsible?b([]):i,oldContent:c};var a=this.headers.index(this.active[0])>this.headers.index(d[0]);this.active=e?b([]):d;this._toggle(i,c,h,e,a);f.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header); +if(!e){d.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(g.icons.header).addClass(g.icons.headerSelected);d.next().addClass("ui-accordion-content-active")}}}else if(g.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);this.active.next().addClass("ui-accordion-content-active");var c=this.active.next(), +h={options:g,newHeader:b([]),oldHeader:g.active,newContent:b([]),oldContent:c},i=this.active=b([]);this._toggle(i,c,h)}},_toggle:function(d,e,g,f,a){var c=this,h=c.options;c.toShow=d;c.toHide=e;c.data=g;var i=function(){if(c)return c._completed.apply(c,arguments)};c._trigger("changestart",null,c.data);c.running=e.size()===0?d.size():e.size();if(h.animated){g={};g=h.collapsible&&f?{toShow:b([]),toHide:e,complete:i,down:a,autoHeight:h.autoHeight||h.fillSpace}:{toShow:d,toHide:e,complete:i,down:a,autoHeight:h.autoHeight|| +h.fillSpace};if(!h.proxied)h.proxied=h.animated;if(!h.proxiedDuration)h.proxiedDuration=h.duration;h.animated=b.isFunction(h.proxied)?h.proxied(g):h.proxied;h.duration=b.isFunction(h.proxiedDuration)?h.proxiedDuration(g):h.proxiedDuration;f=b.ui.accordion.animations;var j=h.duration,n=h.animated;if(n&&!f[n]&&!b.easing[n])n="slide";f[n]||(f[n]=function(p){this.slide(p,{easing:n,duration:j||700})});f[n](g)}else{if(h.collapsible&&f)d.toggle();else{e.hide();d.show()}i(true)}e.prev().attr({"aria-expanded":"false", +"aria-selected":"false",tabIndex:-1}).blur();d.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(d){this.running=d?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});b.extend(b.ui.accordion,{version:"1.8.11", +animations:{slide:function(d,e){d=b.extend({easing:"swing",duration:300},d,e);if(d.toHide.size())if(d.toShow.size()){var g=d.toShow.css("overflow"),f=0,a={},c={},h;e=d.toShow;h=e[0].style.width;e.width(parseInt(e.parent().width(),10)-parseInt(e.css("paddingLeft"),10)-parseInt(e.css("paddingRight"),10)-(parseInt(e.css("borderLeftWidth"),10)||0)-(parseInt(e.css("borderRightWidth"),10)||0));b.each(["height","paddingTop","paddingBottom"],function(i,j){c[j]="hide";i=(""+b.css(d.toShow[0],j)).match(/^([\d+-.]+)(.*)$/); +a[j]={value:i[1],unit:i[2]||"px"}});d.toShow.css({height:0,overflow:"hidden"}).show();d.toHide.filter(":hidden").each(d.complete).end().filter(":visible").animate(c,{step:function(i,j){if(j.prop=="height")f=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);d.toShow[0].style[j.prop]=f*a[j.prop].value+a[j.prop].unit},duration:d.duration,easing:d.easing,complete:function(){d.autoHeight||d.toShow.css("height","");d.toShow.css({width:h,overflow:g});d.complete()}})}else d.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},d);else d.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},d)},bounceslide:function(d){this.slide(d,{easing:d.down?"easeOutBounce":"swing",duration:d.down?1E3:200})}}})})(jQuery); +(function(b){var d=0;b.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var e=this,g=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(a){if(!(e.options.disabled||e.element.attr("readonly"))){f= +false;var c=b.ui.keyCode;switch(a.keyCode){case c.PAGE_UP:e._move("previousPage",a);break;case c.PAGE_DOWN:e._move("nextPage",a);break;case c.UP:e._move("previous",a);a.preventDefault();break;case c.DOWN:e._move("next",a);a.preventDefault();break;case c.ENTER:case c.NUMPAD_ENTER:if(e.menu.active){f=true;a.preventDefault()}case c.TAB:if(!e.menu.active)return;e.menu.select(a);break;case c.ESCAPE:e.element.val(e.term);e.close(a);break;default:clearTimeout(e.searching);e.searching=setTimeout(function(){if(e.term!= +e.element.val()){e.selectedItem=null;e.search(null,a)}},e.options.delay);break}}}).bind("keypress.autocomplete",function(a){if(f){f=false;a.preventDefault()}}).bind("focus.autocomplete",function(){if(!e.options.disabled){e.selectedItem=null;e.previous=e.element.val()}}).bind("blur.autocomplete",function(a){if(!e.options.disabled){clearTimeout(e.searching);e.closing=setTimeout(function(){e.close(a);e._change(a)},150)}});this._initSource();this.response=function(){return e._response.apply(e,arguments)}; +this.menu=b("
          ").addClass("ui-autocomplete").appendTo(b(this.options.appendTo||"body",g)[0]).mousedown(function(a){var c=e.menu.element[0];b(a.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(h){h.target!==e.element[0]&&h.target!==c&&!b.ui.contains(c,h.target)&&e.close()})},1);setTimeout(function(){clearTimeout(e.closing)},13)}).menu({focus:function(a,c){c=c.item.data("item.autocomplete");false!==e._trigger("focus",a,{item:c})&&/^key/.test(a.originalEvent.type)&& +e.element.val(c.value)},selected:function(a,c){var h=c.item.data("item.autocomplete"),i=e.previous;if(e.element[0]!==g.activeElement){e.element.focus();e.previous=i;setTimeout(function(){e.previous=i;e.selectedItem=h},1)}false!==e._trigger("select",a,{item:h})&&e.element.val(h.value);e.term=e.element.val();e.close(a);e.selectedItem=h},blur:function(){e.menu.element.is(":visible")&&e.element.val()!==e.term&&e.element.val(e.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); +b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(e,g){b.Widget.prototype._setOption.apply(this,arguments);e==="source"&&this._initSource();if(e==="appendTo")this.menu.element.appendTo(b(g||"body",this.element[0].ownerDocument)[0]);e==="disabled"&& +g&&this.xhr&&this.xhr.abort()},_initSource:function(){var e=this,g,f;if(b.isArray(this.options.source)){g=this.options.source;this.source=function(a,c){c(b.ui.autocomplete.filter(g,a.term))}}else if(typeof this.options.source==="string"){f=this.options.source;this.source=function(a,c){e.xhr&&e.xhr.abort();e.xhr=b.ajax({url:f,data:a,dataType:"json",autocompleteRequest:++d,success:function(h){this.autocompleteRequest===d&&c(h)},error:function(){this.autocompleteRequest===d&&c([])}})}}else this.source= +this.options.source},search:function(e,g){e=e!=null?e:this.element.val();this.term=this.element.val();if(e.length").data("item.autocomplete",g).append(b("").text(g.label)).appendTo(e)},_move:function(e,g){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(e)||this.menu.last()&&/^next/.test(e)){this.element.val(this.term);this.menu.deactivate()}else this.menu[e](g);else this.search(null,g)},widget:function(){return this.menu.element}});b.extend(b.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, +"\\$&")},filter:function(e,g){var f=new RegExp(b.ui.autocomplete.escapeRegex(g),"i");return b.grep(e,function(a){return f.test(a.label||a.value||a)})}})})(jQuery); +(function(b){b.widget("ui.menu",{_create:function(){var d=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(e){if(b(e.target).closest(".ui-menu-item a").length){e.preventDefault();d.select(e)}});this.refresh()},refresh:function(){var d=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(e){d.activate(e,b(this).parent())}).mouseleave(function(){d.deactivate()})},activate:function(d,e){this.deactivate();if(this.hasScroll()){var g=e.offset().top-this.element.offset().top,f=this.element.attr("scrollTop"),a=this.element.height();if(g<0)this.element.attr("scrollTop",f+g);else g>=a&&this.element.attr("scrollTop",f+g-a+e.height())}this.active=e.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",d,{item:e})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(d){this.move("next",".ui-menu-item:first",d)},previous:function(d){this.move("prev",".ui-menu-item:last",d)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(d,e,g){if(this.active){d=this.active[d+"All"](".ui-menu-item").eq(0); +d.length?this.activate(g,d):this.activate(g,this.element.children(e))}else this.activate(g,this.element.children(e))},nextPage:function(d){if(this.hasScroll())if(!this.active||this.last())this.activate(d,this.element.children(".ui-menu-item:first"));else{var e=this.active.offset().top,g=this.element.height(),f=this.element.children(".ui-menu-item").filter(function(){var a=b(this).offset().top-e-g+b(this).height();return a<10&&a>-10});f.length||(f=this.element.children(".ui-menu-item:last"));this.activate(d, +f)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(d){if(this.hasScroll())if(!this.active||this.first())this.activate(d,this.element.children(".ui-menu-item:last"));else{var e=this.active.offset().top,g=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var f=b(this).offset().top-e+g-b(this).height();return f<10&&f>-10});result.length||(result=this.element.children(".ui-menu-item:first")); +this.activate(d,result)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(f.empty()).text(),c=this.options.icons,h=c.primary&&c.secondary,i=[];if(c.primary||c.secondary){if(this.options.text)i.push("ui-button-text-icon"+(h?"s":c.primary?"-primary":"-secondary"));c.primary&&f.prepend("");c.secondary&&f.append("");if(!this.options.text){i.push(h?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||f.attr("title",a)}}else i.push("ui-button-text-only");f.addClass(i.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(f,a){f==="disabled"&&this.buttons.button("option",f,a);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");b.Widget.prototype.destroy.call(this)}})})(jQuery); +(function(b,d){function e(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};b.extend(this._defaults,this.regional[""]);this.dpDiv=b('
          ')}function g(a,c){b.extend(a,c);for(var h in c)if(c[h]== +null||c[h]==d)a[h]=c[h];return a}b.extend(b.ui,{datepicker:{version:"1.8.11"}});var f=(new Date).getTime();b.extend(e.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){g(this._defaults,a||{});return this},_attachDatepicker:function(a,c){var h=null;for(var i in this._defaults){var j=a.getAttribute("date:"+i);if(j){h=h||{};try{h[i]=eval(j)}catch(n){h[i]=j}}}i=a.nodeName.toLowerCase(); +j=i=="div"||i=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var p=this._newInst(b(a),j);p.settings=b.extend({},c||{},h||{});if(i=="input")this._connectDatepicker(a,p);else j&&this._inlineDatepicker(a,p)},_newInst:function(a,c){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:c,dpDiv:!c?this.dpDiv:b('
          ')}}, +_connectDatepicker:function(a,c){var h=b(a);c.append=b([]);c.trigger=b([]);if(!h.hasClass(this.markerClassName)){this._attachments(h,c);h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(i,j,n){c.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(c,j)});this._autoSize(c);b.data(a,"datepicker",c)}},_attachments:function(a,c){var h=this._get(c,"appendText"),i=this._get(c,"isRTL");c.append&& +c.append.remove();if(h){c.append=b(''+h+"");a[i?"before":"after"](c.append)}a.unbind("focus",this._showDatepicker);c.trigger&&c.trigger.remove();h=this._get(c,"showOn");if(h=="focus"||h=="both")a.focus(this._showDatepicker);if(h=="button"||h=="both"){h=this._get(c,"buttonText");var j=this._get(c,"buttonImage");c.trigger=b(this._get(c,"buttonImageOnly")?b("").addClass(this._triggerClass).attr({src:j,alt:h,title:h}):b('').addClass(this._triggerClass).html(j== +""?h:b("").attr({src:j,alt:h,title:h})));a[i?"before":"after"](c.trigger);c.trigger.click(function(){b.datepicker._datepickerShowing&&b.datepicker._lastInput==a[0]?b.datepicker._hideDatepicker():b.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var c=new Date(2009,11,20),h=this._get(a,"dateFormat");if(h.match(/[DM]/)){var i=function(j){for(var n=0,p=0,l=0;ln){n=j[l].length;p=l}return p};c.setMonth(i(this._get(a, +h.match(/MM/)?"monthNames":"monthNamesShort")));c.setDate(i(this._get(a,h.match(/DD/)?"dayNames":"dayNamesShort"))+20-c.getDay())}a.input.attr("size",this._formatDate(a,c).length)}},_inlineDatepicker:function(a,c){var h=b(a);if(!h.hasClass(this.markerClassName)){h.addClass(this.markerClassName).append(c.dpDiv).bind("setData.datepicker",function(i,j,n){c.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(c,j)});b.data(a,"datepicker",c);this._setDate(c,this._getDefaultDate(c), +true);this._updateDatepicker(c);this._updateAlternate(c);c.dpDiv.show()}},_dialogDatepicker:function(a,c,h,i,j){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=b('');this._dialogInput.keydown(this._doKeyDown);b("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};b.data(this._dialogInput[0],"datepicker",a)}g(a.settings,i||{}); +c=c&&c.constructor==Date?this._formatDate(a,c):c;this._dialogInput.val(c);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=h;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); +this._showDatepicker(this._dialogInput[0]);b.blockUI&&b.blockUI(this.dpDiv);b.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();b.removeData(a,"datepicker");if(i=="input"){h.append.remove();h.trigger.remove();c.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", +this._doKeyUp)}else if(i=="div"||i=="span")c.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=false;h.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(i=="div"||i=="span")c.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs, +function(j){return j==a?null:j})}},_disableDatepicker:function(a){var c=b(a),h=b.data(a,"datepicker");if(c.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=true;h.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(i=="div"||i=="span")c.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null: +j});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var c=0;c-1}},_doKeyUp:function(a){a=b.datepicker._getInst(a.target); +if(a.input.val()!=a.lastVal)try{if(b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,b.datepicker._getFormatConfig(a))){b.datepicker._setDateFromField(a);b.datepicker._updateAlternate(a);b.datepicker._updateDatepicker(a)}}catch(c){b.datepicker.log(c)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=b("input",a.parentNode)[0];if(!(b.datepicker._isDisabledDatepicker(a)||b.datepicker._lastInput==a)){var c=b.datepicker._getInst(a); +b.datepicker._curInst&&b.datepicker._curInst!=c&&b.datepicker._curInst.dpDiv.stop(true,true);var h=b.datepicker._get(c,"beforeShow");g(c.settings,h?h.apply(a,[a,c]):{});c.lastVal=null;b.datepicker._lastInput=a;b.datepicker._setDateFromField(c);if(b.datepicker._inDialog)a.value="";if(!b.datepicker._pos){b.datepicker._pos=b.datepicker._findPos(a);b.datepicker._pos[1]+=a.offsetHeight}var i=false;b(a).parents().each(function(){i|=b(this).css("position")=="fixed";return!i});if(i&&b.browser.opera){b.datepicker._pos[0]-= +document.documentElement.scrollLeft;b.datepicker._pos[1]-=document.documentElement.scrollTop}h={left:b.datepicker._pos[0],top:b.datepicker._pos[1]};b.datepicker._pos=null;c.dpDiv.empty();c.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});b.datepicker._updateDatepicker(c);h=b.datepicker._checkOffset(c,h,i);c.dpDiv.css({position:b.datepicker._inDialog&&b.blockUI?"static":i?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"});if(!c.inline){h=b.datepicker._get(c,"showAnim"); +var j=b.datepicker._get(c,"duration"),n=function(){b.datepicker._datepickerShowing=true;var p=c.dpDiv.find("iframe.ui-datepicker-cover");if(p.length){var l=b.datepicker._getBorders(c.dpDiv);p.css({left:-l[0],top:-l[1],width:c.dpDiv.outerWidth(),height:c.dpDiv.outerHeight()})}};c.dpDiv.zIndex(b(a).zIndex()+1);b.effects&&b.effects[h]?c.dpDiv.show(h,b.datepicker._get(c,"showOptions"),j,n):c.dpDiv[h||"show"](h?j:null,n);if(!h||!j)n();c.input.is(":visible")&&!c.input.is(":disabled")&&c.input.focus();b.datepicker._curInst= +c}}},_updateDatepicker:function(a){var c=this,h=b.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var i=a.dpDiv.find("iframe.ui-datepicker-cover");i.length&&i.css({left:-h[0],top:-h[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){b(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).removeClass("ui-datepicker-prev-hover"); +this.className.indexOf("ui-datepicker-next")!=-1&&b(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!c._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).addClass("ui-datepicker-next-hover")}}).end().find("."+ +this._dayOverClass+" a").trigger("mouseover").end();h=this._getNumberOfMonths(a);i=h[1];i>1?a.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",17*i+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==b.datepicker._curInst&&b.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&& +a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var j=a.yearshtml;setTimeout(function(){j===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);j=a.yearshtml=null},0)}},_getBorders:function(a){var c=function(h){return{thin:1,medium:2,thick:3}[h]||h};return[parseFloat(c(a.css("border-left-width"))),parseFloat(c(a.css("border-top-width")))]},_checkOffset:function(a,c,h){var i=a.dpDiv.outerWidth(),j=a.dpDiv.outerHeight(),n=a.input?a.input.outerWidth(): +0,p=a.input?a.input.outerHeight():0,l=document.documentElement.clientWidth+b(document).scrollLeft(),k=document.documentElement.clientHeight+b(document).scrollTop();c.left-=this._get(a,"isRTL")?i-n:0;c.left-=h&&c.left==a.input.offset().left?b(document).scrollLeft():0;c.top-=h&&c.top==a.input.offset().top+p?b(document).scrollTop():0;c.left-=Math.min(c.left,c.left+i>l&&l>i?Math.abs(c.left+i-l):0);c.top-=Math.min(c.top,c.top+j>k&&k>j?Math.abs(j+p):0);return c},_findPos:function(a){for(var c=this._get(this._getInst(a), +"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||b.expr.filters.hidden(a));)a=a[c?"previousSibling":"nextSibling"];a=b(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var c=this._curInst;if(!(!c||a&&c!=b.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(c,"showAnim");var h=this._get(c,"duration"),i=function(){b.datepicker._tidyDialog(c);this._curInst=null};b.effects&&b.effects[a]?c.dpDiv.hide(a,b.datepicker._get(c,"showOptions"),h,i):c.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"? +"fadeOut":"hide"](a?h:null,i);a||i();if(a=this._get(c,"onClose"))a.apply(c.input?c.input[0]:null,[c.input?c.input.val():"",c]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(b.blockUI){b.unblockUI();b("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(b.datepicker._curInst){a= +b(a.target);a[0].id!=b.datepicker._mainDivId&&a.parents("#"+b.datepicker._mainDivId).length==0&&!a.hasClass(b.datepicker.markerClassName)&&!a.hasClass(b.datepicker._triggerClass)&&b.datepicker._datepickerShowing&&!(b.datepicker._inDialog&&b.blockUI)&&b.datepicker._hideDatepicker()}},_adjustDate:function(a,c,h){a=b(a);var i=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(i,c+(h=="M"?this._get(i,"showCurrentAtPos"):0),h);this._updateDatepicker(i)}},_gotoToday:function(a){a= +b(a);var c=this._getInst(a[0]);if(this._get(c,"gotoCurrent")&&c.currentDay){c.selectedDay=c.currentDay;c.drawMonth=c.selectedMonth=c.currentMonth;c.drawYear=c.selectedYear=c.currentYear}else{var h=new Date;c.selectedDay=h.getDate();c.drawMonth=c.selectedMonth=h.getMonth();c.drawYear=c.selectedYear=h.getFullYear()}this._notifyChange(c);this._adjustDate(a)},_selectMonthYear:function(a,c,h){a=b(a);var i=this._getInst(a[0]);i._selectingMonthYear=false;i["selected"+(h=="M"?"Month":"Year")]=i["draw"+(h== +"M"?"Month":"Year")]=parseInt(c.options[c.selectedIndex].value,10);this._notifyChange(i);this._adjustDate(a)},_clickMonthYear:function(a){var c=this._getInst(b(a)[0]);c.input&&c._selectingMonthYear&&setTimeout(function(){c.input.focus()},0);c._selectingMonthYear=!c._selectingMonthYear},_selectDay:function(a,c,h,i){var j=b(a);if(!(b(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay=b("a",i).html();j.selectedMonth=j.currentMonth= +c;j.selectedYear=j.currentYear=h;this._selectDate(a,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(a){a=b(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,c){a=this._getInst(b(a)[0]);c=c!=null?c:this._formatDate(a);a.input&&a.input.val(c);this._updateAlternate(a);var h=this._get(a,"onSelect");if(h)h.apply(a.input?a.input[0]:null,[c,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker(); +this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var c=this._get(a,"altField");if(c){var h=this._get(a,"altFormat")||this._get(a,"dateFormat"),i=this._getDate(a),j=this.formatDate(h,i,this._getFormatConfig(a));b(c).each(function(){b(this).val(j)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var c=a.getTime();a.setMonth(0); +a.setDate(1);return Math.floor(Math.round((c-a)/864E5)/7)+1},parseDate:function(a,c,h){if(a==null||c==null)throw"Invalid arguments";c=typeof c=="object"?c.toString():c+"";if(c=="")return null;var i=(h?h.shortYearCutoff:null)||this._defaults.shortYearCutoff;i=typeof i!="string"?i:(new Date).getFullYear()%100+parseInt(i,10);for(var j=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,n=(h?h.dayNames:null)||this._defaults.dayNames,p=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort,l=(h? +h.monthNames:null)||this._defaults.monthNames,k=h=-1,m=-1,o=-1,q=false,s=function(x){(x=y+1-1){k=1;m=o;do{i=this._getDaysInMonth(h,k-1);if(m<=i)break;k++;m-=i}while(1)}B=this._daylightSavingAdjust(new Date(h,k-1,m));if(B.getFullYear()!=h||B.getMonth()+1!=k||B.getDate()!=m)throw"Invalid date";return B},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", +RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,c,h){if(!c)return"";var i=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,j=(h?h.dayNames:null)||this._defaults.dayNames,n=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort;h=(h?h.monthNames:null)||this._defaults.monthNames;var p=function(s){(s=q+112?a.getHours()+2:0);return a},_setDate:function(a,c,h){var i=!c,j=a.selectedMonth,n=a.selectedYear;c=this._restrictMinMax(a,this._determineDate(a,c,new Date));a.selectedDay= +a.currentDay=c.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=c.getMonth();a.drawYear=a.selectedYear=a.currentYear=c.getFullYear();if((j!=a.selectedMonth||n!=a.selectedYear)&&!h)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(i?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var c=new Date;c=this._daylightSavingAdjust(new Date(c.getFullYear(), +c.getMonth(),c.getDate()));var h=this._get(a,"isRTL"),i=this._get(a,"showButtonPanel"),j=this._get(a,"hideIfNoPrevNext"),n=this._get(a,"navigationAsDateFormat"),p=this._getNumberOfMonths(a),l=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),m=p[0]!=1||p[1]!=1,o=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),q=this._getMinMaxDate(a,"min"),s=this._getMinMaxDate(a,"max");l=a.drawMonth-l;var r=a.drawYear;if(l<0){l+=12;r--}if(s){var u= +this._daylightSavingAdjust(new Date(s.getFullYear(),s.getMonth()-p[0]*p[1]+1,s.getDate()));for(u=q&&uu;){l--;if(l<0){l=11;r--}}}a.drawMonth=l;a.drawYear=r;u=this._get(a,"prevText");u=!n?u:this.formatDate(u,this._daylightSavingAdjust(new Date(r,l-k,1)),this._getFormatConfig(a));u=this._canAdjustMonth(a,-1,r,l)?''+u+"":j?"":''+u+"";var v=this._get(a,"nextText");v=!n?v:this.formatDate(v,this._daylightSavingAdjust(new Date(r,l+k,1)),this._getFormatConfig(a));j=this._canAdjustMonth(a,+1,r,l)?''+v+"":j?"":''+v+"";k=this._get(a,"currentText");v=this._get(a,"gotoCurrent")&&a.currentDay?o:c;k=!n?k:this.formatDate(k,v,this._getFormatConfig(a));n=!a.inline?'":"";i=i?'
          '+(h?n:"")+(this._isInRange(a,v)?'":"")+(h?"":n)+"
          ":"";n=parseInt(this._get(a,"firstDay"),10);n=isNaN(n)?0:n;k=this._get(a,"showWeek");v=this._get(a,"dayNames");this._get(a,"dayNamesShort");var w=this._get(a,"dayNamesMin"),y= +this._get(a,"monthNames"),B=this._get(a,"monthNamesShort"),x=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),J=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),K="",G=0;G1)switch(H){case 0:D+=" ui-datepicker-group-first";A=" ui-corner-"+(h?"right":"left");break;case p[1]- +1:D+=" ui-datepicker-group-last";A=" ui-corner-"+(h?"left":"right");break;default:D+=" ui-datepicker-group-middle";A="";break}D+='">'}D+='
          '+(/all|left/.test(A)&&G==0?h?j:u:"")+(/all|right/.test(A)&&G==0?h?u:j:"")+this._generateMonthYearHeader(a,l,r,q,s,G>0||H>0,y,B)+'
          ';var E=k?'":"";for(A=0;A<7;A++){var z= +(A+n)%7;E+="=5?' class="ui-datepicker-week-end"':"")+'>'+w[z]+""}D+=E+"";E=this._getDaysInMonth(r,l);if(r==a.selectedYear&&l==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,E);A=(this._getFirstDayOfMonth(r,l)-n+7)%7;E=m?6:Math.ceil((A+E)/7);z=this._daylightSavingAdjust(new Date(r,l,1-A));for(var P=0;P";var Q=!k?"":'";for(A=0;A<7;A++){var I= +x?x.apply(a.input?a.input[0]:null,[z]):[true,""],F=z.getMonth()!=l,L=F&&!J||!I[0]||q&&zs;Q+='";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}D+= +Q+""}l++;if(l>11){l=0;r++}D+="
          '+this._get(a,"weekHeader")+"
          '+this._get(a,"calculateWeek")(z)+""+(F&&!C?" ":L?''+z.getDate()+"":''+z.getDate()+"")+"
          "+(m?""+(p[0]>0&&H==p[1]-1?'
          ':""):"");N+=D}K+=N}K+=i+(b.browser.msie&&parseInt(b.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return K},_generateMonthYearHeader:function(a,c,h,i,j,n,p,l){var k=this._get(a,"changeMonth"),m=this._get(a,"changeYear"),o=this._get(a,"showMonthAfterYear"),q='
          ', +s="";if(n||!k)s+=''+p[c]+"";else{p=i&&i.getFullYear()==h;var r=j&&j.getFullYear()==h;s+='"}o||(q+=s+(n||!(k&& +m)?" ":""));a.yearshtml="";if(n||!m)q+=''+h+"";else{l=this._get(a,"yearRange").split(":");var v=(new Date).getFullYear();p=function(w){w=w.match(/c[+-].*/)?h+parseInt(w.substring(1),10):w.match(/[+-].*/)?v+parseInt(w,10):parseInt(w,10);return isNaN(w)?v:w};c=p(l[0]);l=Math.max(c,p(l[1]||""));c=i?Math.max(c,i.getFullYear()):c;l=j?Math.min(l,j.getFullYear()):l;for(a.yearshtml+='";if(b.browser.mozilla)q+='";else{q+=a.yearshtml;a.yearshtml=null}}q+=this._get(a,"yearSuffix");if(o)q+=(n||!(k&&m)?" ":"")+s;q+="
          ";return q},_adjustInstDate:function(a,c,h){var i= +a.drawYear+(h=="Y"?c:0),j=a.drawMonth+(h=="M"?c:0);c=Math.min(a.selectedDay,this._getDaysInMonth(i,j))+(h=="D"?c:0);i=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(i,j,c)));a.selectedDay=i.getDate();a.drawMonth=a.selectedMonth=i.getMonth();a.drawYear=a.selectedYear=i.getFullYear();if(h=="M"||h=="Y")this._notifyChange(a)},_restrictMinMax:function(a,c){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");c=h&&ca?a:c},_notifyChange:function(a){var c=this._get(a, +"onChangeMonthYear");if(c)c.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,c){return this._determineDate(a,this._get(a,c+"Date"),null)},_getDaysInMonth:function(a,c){return 32-this._daylightSavingAdjust(new Date(a,c,32)).getDate()},_getFirstDayOfMonth:function(a,c){return(new Date(a,c,1)).getDay()},_canAdjustMonth:function(a,c,h,i){var j=this._getNumberOfMonths(a); +h=this._daylightSavingAdjust(new Date(h,i+(c<0?c:j[0]*j[1]),1));c<0&&h.setDate(this._getDaysInMonth(h.getFullYear(),h.getMonth()));return this._isInRange(a,h)},_isInRange:function(a,c){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!h||c.getTime()>=h.getTime())&&(!a||c.getTime()<=a.getTime())},_getFormatConfig:function(a){var c=this._get(a,"shortYearCutoff");c=typeof c!="string"?c:(new Date).getFullYear()%100+parseInt(c,10);return{shortYearCutoff:c,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,c,h,i){if(!c){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}c=c?typeof c=="object"?c:this._daylightSavingAdjust(new Date(i,h,c)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),c,this._getFormatConfig(a))}});b.fn.datepicker= +function(a){if(!this.length)return this;if(!b.datepicker.initialized){b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);b.datepicker.initialized=true}var c=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(c));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker, +[this[0]].concat(c));return this.each(function(){typeof a=="string"?b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this].concat(c)):b.datepicker._attachDatepicker(this,a)})};b.datepicker=new e;b.datepicker.initialized=false;b.datepicker.uuid=(new Date).getTime();b.datepicker.version="1.8.11";window["DP_jQuery_"+f]=b})(jQuery); +(function(b,d){var e={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},g={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};b.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(f){var a=b(this).css(f).offset().top;a<0&& +b(this).css("top",f.top-a)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var f=this,a=f.options,c=a.title||" ",h=b.ui.dialog.getTitleId(f.element),i=(f.uiDialog=b("
          ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a.dialogClass).css({zIndex:a.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(p){if(a.closeOnEscape&&p.keyCode&&p.keyCode===b.ui.keyCode.ESCAPE){f.close(p);p.preventDefault()}}).attr({role:"dialog","aria-labelledby":h}).mousedown(function(p){f.moveToTop(false,p)});f.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);var j=(f.uiDialogTitlebar=b("
          ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i),n=b('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){n.addClass("ui-state-hover")},function(){n.removeClass("ui-state-hover")}).focus(function(){n.addClass("ui-state-focus")}).blur(function(){n.removeClass("ui-state-focus")}).click(function(p){f.close(p);return false}).appendTo(j);(f.uiDialogTitlebarCloseText=b("")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(n);b("").addClass("ui-dialog-title").attr("id",h).html(c).prependTo(j);if(b.isFunction(a.beforeclose)&&!b.isFunction(a.beforeClose))a.beforeClose= +a.beforeclose;j.find("*").add(j).disableSelection();a.draggable&&b.fn.draggable&&f._makeDraggable();a.resizable&&b.fn.resizable&&f._makeResizable();f._createButtons(a.buttons);f._isOpen=false;b.fn.bgiframe&&i.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var f=this;f.overlay&&f.overlay.destroy();f.uiDialog.hide();f.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");f.uiDialog.remove();f.originalTitle&& +f.element.attr("title",f.originalTitle);return f},widget:function(){return this.uiDialog},close:function(f){var a=this,c,h;if(false!==a._trigger("beforeClose",f)){a.overlay&&a.overlay.destroy();a.uiDialog.unbind("keypress.ui-dialog");a._isOpen=false;if(a.options.hide)a.uiDialog.hide(a.options.hide,function(){a._trigger("close",f)});else{a.uiDialog.hide();a._trigger("close",f)}b.ui.dialog.overlay.resize();if(a.options.modal){c=0;b(".ui-dialog").each(function(){if(this!==a.uiDialog[0]){h=b(this).css("z-index"); +isNaN(h)||(c=Math.max(c,h))}});b.ui.dialog.maxZ=c}return a}},isOpen:function(){return this._isOpen},moveToTop:function(f,a){var c=this,h=c.options;if(h.modal&&!f||!h.stack&&!h.modal)return c._trigger("focus",a);if(h.zIndex>b.ui.dialog.maxZ)b.ui.dialog.maxZ=h.zIndex;if(c.overlay){b.ui.dialog.maxZ+=1;c.overlay.$el.css("z-index",b.ui.dialog.overlay.maxZ=b.ui.dialog.maxZ)}f={scrollTop:c.element.attr("scrollTop"),scrollLeft:c.element.attr("scrollLeft")};b.ui.dialog.maxZ+=1;c.uiDialog.css("z-index",b.ui.dialog.maxZ); +c.element.attr(f);c._trigger("focus",a);return c},open:function(){if(!this._isOpen){var f=this,a=f.options,c=f.uiDialog;f.overlay=a.modal?new b.ui.dialog.overlay(f):null;f._size();f._position(a.position);c.show(a.show);f.moveToTop(true);a.modal&&c.bind("keypress.ui-dialog",function(h){if(h.keyCode===b.ui.keyCode.TAB){var i=b(":tabbable",this),j=i.filter(":first");i=i.filter(":last");if(h.target===i[0]&&!h.shiftKey){j.focus(1);return false}else if(h.target===j[0]&&h.shiftKey){i.focus(1);return false}}}); +b(f.element.find(":tabbable").get().concat(c.find(".ui-dialog-buttonpane :tabbable").get().concat(c.get()))).eq(0).focus();f._isOpen=true;f._trigger("open");return f}},_createButtons:function(f){var a=this,c=false,h=b("
          ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),i=b("
          ").addClass("ui-dialog-buttonset").appendTo(h);a.uiDialog.find(".ui-dialog-buttonpane").remove();typeof f==="object"&&f!==null&&b.each(f,function(){return!(c=true)});if(c){b.each(f,function(j, +n){n=b.isFunction(n)?{click:n,text:j}:n;j=b('').attr(n,true).unbind("click").click(function(){n.click.apply(a.element[0],arguments)}).appendTo(i);b.fn.button&&j.button()});h.appendTo(a.uiDialog)}},_makeDraggable:function(){function f(j){return{position:j.position,offset:j.offset}}var a=this,c=a.options,h=b(document),i;a.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(j,n){i= +c.height==="auto"?"auto":b(this).height();b(this).height(b(this).height()).addClass("ui-dialog-dragging");a._trigger("dragStart",j,f(n))},drag:function(j,n){a._trigger("drag",j,f(n))},stop:function(j,n){c.position=[n.position.left-h.scrollLeft(),n.position.top-h.scrollTop()];b(this).removeClass("ui-dialog-dragging").height(i);a._trigger("dragStop",j,f(n));b.ui.dialog.overlay.resize()}})},_makeResizable:function(f){function a(j){return{originalPosition:j.originalPosition,originalSize:j.originalSize, +position:j.position,size:j.size}}f=f===d?this.options.resizable:f;var c=this,h=c.options,i=c.uiDialog.css("position");f=typeof f==="string"?f:"n,e,s,w,se,sw,ne,nw";c.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:c.element,maxWidth:h.maxWidth,maxHeight:h.maxHeight,minWidth:h.minWidth,minHeight:c._minHeight(),handles:f,start:function(j,n){b(this).addClass("ui-dialog-resizing");c._trigger("resizeStart",j,a(n))},resize:function(j,n){c._trigger("resize",j,a(n))},stop:function(j, +n){b(this).removeClass("ui-dialog-resizing");h.height=b(this).height();h.width=b(this).width();c._trigger("resizeStop",j,a(n));b.ui.dialog.overlay.resize()}}).css("position",i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var f=this.options;return f.height==="auto"?f.minHeight:Math.min(f.minHeight,f.height)},_position:function(f){var a=[],c=[0,0],h;if(f){if(typeof f==="string"||typeof f==="object"&&"0"in f){a=f.split?f.split(" "):[f[0],f[1]];if(a.length=== +1)a[1]=a[0];b.each(["left","top"],function(i,j){if(+a[i]===a[i]){c[i]=a[i];a[i]=j}});f={my:a.join(" "),at:a.join(" "),offset:c.join(" ")}}f=b.extend({},b.ui.dialog.prototype.options.position,f)}else f=b.ui.dialog.prototype.options.position;(h=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(b.extend({of:window},f));h||this.uiDialog.hide()},_setOptions:function(f){var a=this,c={},h=false;b.each(f,function(i,j){a._setOption(i,j);if(i in e)h=true;if(i in +g)c[i]=j});h&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",c)},_setOption:function(f,a){var c=this,h=c.uiDialog;switch(f){case "beforeclose":f="beforeClose";break;case "buttons":c._createButtons(a);break;case "closeText":c.uiDialogTitlebarCloseText.text(""+a);break;case "dialogClass":h.removeClass(c.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a);break;case "disabled":a?h.addClass("ui-dialog-disabled"):h.removeClass("ui-dialog-disabled"); +break;case "draggable":var i=h.is(":data(draggable)");i&&!a&&h.draggable("destroy");!i&&a&&c._makeDraggable();break;case "position":c._position(a);break;case "resizable":(i=h.is(":data(resizable)"))&&!a&&h.resizable("destroy");i&&typeof a==="string"&&h.resizable("option","handles",a);!i&&a!==false&&c._makeResizable(a);break;case "title":b(".ui-dialog-title",c.uiDialogTitlebar).html(""+(a||" "));break}b.Widget.prototype._setOption.apply(c,arguments)},_size:function(){var f=this.options,a,c,h= +this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(f.minWidth>f.width)f.width=f.minWidth;a=this.uiDialog.css({height:"auto",width:f.width}).height();c=Math.max(0,f.minHeight-a);if(f.height==="auto")if(b.support.minHeight)this.element.css({minHeight:c,height:"auto"});else{this.uiDialog.show();f=this.element.css("height","auto").height();h||this.uiDialog.hide();this.element.height(Math.max(f,c))}else this.element.height(Math.max(f.height-a,0));this.uiDialog.is(":data(resizable)")&& +this.uiDialog.resizable("option","minHeight",this._minHeight())}});b.extend(b.ui.dialog,{version:"1.8.11",uuid:0,maxZ:0,getTitleId:function(f){f=f.attr("id");if(!f){this.uuid+=1;f=this.uuid}return"ui-dialog-title-"+f},overlay:function(f){this.$el=b.ui.dialog.overlay.create(f)}});b.extend(b.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(f){return f+".dialog-overlay"}).join(" "),create:function(f){if(this.instances.length=== +0){setTimeout(function(){b.ui.dialog.overlay.instances.length&&b(document).bind(b.ui.dialog.overlay.events,function(c){if(b(c.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});b.fn.bgiframe&&a.bgiframe();this.instances.push(a);return a},destroy:function(f){var a=b.inArray(f,this.instances);a!=-1&&this.oldInstances.push(this.instances.splice(a,1)[0]);this.instances.length===0&&b([document,window]).unbind(".dialog-overlay");f.remove();var c=0;b.each(this.instances,function(){c=Math.max(c,this.css("z-index"))});this.maxZ=c},height:function(){var f,a;if(b.browser.msie&&b.browser.version<7){f=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +a=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return f0?a.left-h:Math.max(a.left-c.collisionPosition.left,a.left)},top:function(a,c){var h=b(window);h=c.collisionPosition.top+c.collisionHeight-h.height()-h.scrollTop();a.top=h>0?a.top-h:Math.max(a.top-c.collisionPosition.top,a.top)}},flip:{left:function(a,c){if(c.at[0]!=="center"){var h=b(window);h=c.collisionPosition.left+c.collisionWidth-h.width()-h.scrollLeft();var i=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,j=c.at[0]==="left"?c.targetWidth:-c.targetWidth,n=-2*c.offset[0];a.left+= +c.collisionPosition.left<0?i+j+n:h>0?i+j+n:0}},top:function(a,c){if(c.at[1]!=="center"){var h=b(window);h=c.collisionPosition.top+c.collisionHeight-h.height()-h.scrollTop();var i=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,j=c.at[1]==="top"?c.targetHeight:-c.targetHeight,n=-2*c.offset[1];a.top+=c.collisionPosition.top<0?i+j+n:h>0?i+j+n:0}}}};if(!b.offset.setOffset){b.offset.setOffset=function(a,c){if(/static/.test(b.curCSS(a,"position")))a.style.position="relative";var h=b(a), +i=h.offset(),j=parseInt(b.curCSS(a,"top",true),10)||0,n=parseInt(b.curCSS(a,"left",true),10)||0;i={top:c.top-i.top+j,left:c.left-i.left+n};"using"in c?c.using.call(a,i):h.css(i)};b.fn.offset=function(a){var c=this[0];if(!c||!c.ownerDocument)return null;if(a)return this.each(function(){b.offset.setOffset(this,a)});return f.call(this)}}})(jQuery); +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
          ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(e){if(e===d)return this._value();this._setOption("value",e);return this},_setOption:function(e,g){if(e==="value"){this.options.value=g;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var e=this.options.value;if(typeof e!=="number")e=0;return Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var e=this.value(),g=this._percentage();if(this.oldValue!==e){this.oldValue=e;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",e===this.options.max).width(g.toFixed(0)+"%");this.element.attr("aria-valuenow",e)}});b.extend(b.ui.progressbar,{version:"1.8.11"})})(jQuery); +(function(b){b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var d=this,e=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");e.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); +this.range=b([]);if(e.range){if(e.range===true){this.range=b("
          ");if(!e.values)e.values=[this._valueMin(),this._valueMin()];if(e.values.length&&e.values.length!==2)e.values=[e.values[0],e.values[0]]}else this.range=b("
          ");this.range.appendTo(this.element).addClass("ui-slider-range");if(e.range==="min"||e.range==="max")this.range.addClass("ui-slider-range-"+e.range);this.range.addClass("ui-widget-header")}b(".ui-slider-handle",this.element).length===0&&b("").appendTo(this.element).addClass("ui-slider-handle"); +if(e.values&&e.values.length)for(;b(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){e.disabled||b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(e.disabled)b(this).blur(); +else{b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(g){b(this).data("index.ui-slider-handle",g)});this.handles.keydown(function(g){var f=true,a=b(this).data("index.ui-slider-handle"),c,h,i;if(!d.options.disabled){switch(g.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:f= +false;if(!d._keySliding){d._keySliding=true;b(this).addClass("ui-state-active");c=d._start(g,a);if(c===false)return}break}i=d.options.step;c=d.options.values&&d.options.values.length?(h=d.values(a)):(h=d.value());switch(g.keyCode){case b.ui.keyCode.HOME:h=d._valueMin();break;case b.ui.keyCode.END:h=d._valueMax();break;case b.ui.keyCode.PAGE_UP:h=d._trimAlignValue(c+(d._valueMax()-d._valueMin())/5);break;case b.ui.keyCode.PAGE_DOWN:h=d._trimAlignValue(c-(d._valueMax()-d._valueMin())/5);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(c=== +d._valueMax())return;h=d._trimAlignValue(c+i);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(c===d._valueMin())return;h=d._trimAlignValue(c-i);break}d._slide(g,a,h);return f}}).keyup(function(g){var f=b(this).data("index.ui-slider-handle");if(d._keySliding){d._keySliding=false;d._stop(g,f);d._change(g,f);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(d){var e=this.options,g,f,a,c,h;if(e.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();g=this._normValueFromMouse({x:d.pageX,y:d.pageY});f=this._valueMax()-this._valueMin()+1;c=this;this.handles.each(function(i){var j=Math.abs(g-c.values(i));if(f>j){f=j;a=b(this);h=i}});if(e.range===true&&this.values(1)===e.min){h+=1;a=b(this.handles[h])}if(this._start(d, +h)===false)return false;this._mouseSliding=true;c._handleIndex=h;a.addClass("ui-state-active").focus();e=a.offset();this._clickOffset=!b(d.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:d.pageX-e.left-a.width()/2,top:d.pageY-e.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(d,h,g);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(d){var e=this._normValueFromMouse({x:d.pageX,y:d.pageY});this._slide(d,this._handleIndex,e);return false},_mouseStop:function(d){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(d,this._handleIndex);this._change(d,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var e; +if(this.orientation==="horizontal"){e=this.elementSize.width;d=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{e=this.elementSize.height;d=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}e=d/e;if(e>1)e=1;if(e<0)e=0;if(this.orientation==="vertical")e=1-e;d=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+e*d)},_start:function(d,e){var g={handle:this.handles[e],value:this.value()};if(this.options.values&&this.options.values.length){g.value= +this.values(e);g.values=this.values()}return this._trigger("start",d,g)},_slide:function(d,e,g){var f;if(this.options.values&&this.options.values.length){f=this.values(e?0:1);if(this.options.values.length===2&&this.options.range===true&&(e===0&&g>f||e===1&&g1){this.options.values[d]=this._trimAlignValue(e);this._refreshValue();this._change(null,d)}if(arguments.length)if(b.isArray(arguments[0])){g=this.options.values;f=arguments[0];for(a=0;a=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,g=(d-this._valueMin())%e;alignValue=d-g;if(Math.abs(g)*2>=e)alignValue+=g>0?e:-e;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var d=this.options.range,e=this.options,g=this,f=!this._animateOff?e.animate:false,a,c={},h,i,j,n;if(this.options.values&&this.options.values.length)this.handles.each(function(p){a=(g.values(p)-g._valueMin())/(g._valueMax()-g._valueMin())*100;c[g.orientation==="horizontal"?"left":"bottom"]=a+"%";b(this).stop(1,1)[f?"animate":"css"](c,e.animate);if(g.options.range===true)if(g.orientation==="horizontal"){if(p===0)g.range.stop(1,1)[f?"animate":"css"]({left:a+"%"},e.animate); +if(p===1)g.range[f?"animate":"css"]({width:a-h+"%"},{queue:false,duration:e.animate})}else{if(p===0)g.range.stop(1,1)[f?"animate":"css"]({bottom:a+"%"},e.animate);if(p===1)g.range[f?"animate":"css"]({height:a-h+"%"},{queue:false,duration:e.animate})}h=a});else{i=this.value();j=this._valueMin();n=this._valueMax();a=n!==j?(i-j)/(n-j)*100:0;c[g.orientation==="horizontal"?"left":"bottom"]=a+"%";this.handle.stop(1,1)[f?"animate":"css"](c,e.animate);if(d==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[f?"animate":"css"]({width:a+"%"},e.animate);if(d==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-a+"%"},{queue:false,duration:e.animate});if(d==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:a+"%"},e.animate);if(d==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-a+"%"},{queue:false,duration:e.animate})}}});b.extend(b.ui.slider,{version:"1.8.11"})})(jQuery); +(function(b,d){function e(){return++f}function g(){return++a}var f=0,a=0;b.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
          ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
        • #{label}
        • "},_create:function(){this._tabify(true)},_setOption:function(c,h){if(c=="selected")this.options.collapsible&& +h==this.options.selected||this.select(h);else{this.options[c]=h;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+g());return b.cookie.apply(null,[c].concat(b.makeArray(arguments)))},_ui:function(c,h){return{tab:c,panel:h,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= +b(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function h(r,u){r.css("display","");!b.support.opacity&&u.opacity&&r[0].style.removeAttribute("filter")}var i=this,j=this.options,n=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(r,u){var v=b(u).attr("href"),w=v.split("#")[0],y;if(w&&(w===location.toString().split("#")[0]|| +(y=b("base")[0])&&w===y.href)){v=u.hash;u.href=v}if(n.test(v))i.panels=i.panels.add(i.element.find(i._sanitizeSelector(v)));else if(v&&v!=="#"){b.data(u,"href.tabs",v);b.data(u,"load.tabs",v.replace(/#.*$/,""));v=i._tabId(u);u.href="#"+v;u=i.element.find("#"+v);if(!u.length){u=b(j.panelTemplate).attr("id",v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r-1]||i.list);u.data("destroy.tabs",true)}i.panels=i.panels.add(u)}else j.disabled.push(r)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===d){location.hash&&this.anchors.each(function(r,u){if(u.hash==location.hash){j.selected=r;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(i._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(r){return i.lis.index(r)}))).sort();b.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(b.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(j.selected>=0&&this.anchors.length){i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");i.element.queue("tabs",function(){i._trigger("show",null,i._ui(i.anchors[j.selected],i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))[0]))});this.load(j.selected)}b(window).bind("unload",function(){i.lis.add(i.anchors).unbind(".tabs");i.lis=i.anchors=i.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);c=0;for(var p;p=this.lis[c];c++)b(p)[b.inArray(c,j.disabled)!=-1&&!b(p).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var l=function(r,u){u.is(":not(.ui-state-disabled)")&&u.addClass("ui-state-"+r)},k=function(r,u){u.removeClass("ui-state-"+ +r)};this.lis.bind("mouseover.tabs",function(){l("hover",b(this))});this.lis.bind("mouseout.tabs",function(){k("hover",b(this))});this.anchors.bind("focus.tabs",function(){l("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",b(this).closest("li"))})}var m,o;if(j.fx)if(b.isArray(j.fx)){m=j.fx[0];o=j.fx[1]}else m=o=j.fx;var q=o?function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){h(u,o);i._trigger("show",null,i._ui(r,u[0]))})}:function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.removeClass("ui-tabs-hide");i._trigger("show",null,i._ui(r,u[0]))},s=m?function(r,u){u.animate(m,m.duration||"normal",function(){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");h(u,m);i.element.dequeue("tabs")})}:function(r,u){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");i.element.dequeue("tabs")}; +this.anchors.bind(j.event+".tabs",function(){var r=this,u=b(r).closest("li"),v=i.panels.filter(":not(.ui-tabs-hide)"),w=i.element.find(i._sanitizeSelector(r.hash));if(u.hasClass("ui-tabs-selected")&&!j.collapsible||u.hasClass("ui-state-disabled")||u.hasClass("ui-state-processing")||i.panels.filter(":animated").length||i._trigger("select",null,i._ui(this,w[0]))===false){this.blur();return false}j.selected=i.anchors.index(this);i.abort();if(j.collapsible)if(u.hasClass("ui-tabs-selected")){j.selected= +-1;j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){s(r,v)}).dequeue("tabs");this.blur();return false}else if(!v.length){j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){q(r,w)});i.load(i.anchors.index(this));this.blur();return false}j.cookie&&i._cookie(j.selected,j.cookie);if(w.length){v.length&&i.element.queue("tabs",function(){s(r,v)});i.element.queue("tabs",function(){q(r,w)});i.load(i.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));return c},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h= +b.data(this,"href.tabs");if(h)this.href=h;var i=b(this).unbind(".tabs");b.each(["href","load","cache"],function(j,n){i.removeData(n+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c, +h,i){if(i===d)i=this.anchors.length;var j=this,n=this.options;h=b(n.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,h));c=!c.indexOf("#")?c.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var p=j.element.find("#"+c);p.length||(p=b(n.panelTemplate).attr("id",c).data("destroy.tabs",true));p.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(i>=this.lis.length){h.appendTo(this.list);p.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[i]); +p.insertBefore(this.panels[i])}n.disabled=b.map(n.disabled,function(l){return l>=i?++l:l});this._tabify();if(this.anchors.length==1){n.selected=0;h.addClass("ui-tabs-selected ui-state-active");p.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[i],this.panels[i]));return this},remove:function(c){c=this._getIndex(c);var h=this.options,i=this.lis.eq(c).remove(),j=this.panels.eq(c).remove(); +if(i.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1=c?--n:n});this._tabify();this._trigger("remove",null,this._ui(i.find("a")[0],j[0]));return this},enable:function(c){c=this._getIndex(c);var h=this.options;if(b.inArray(c,h.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(i){return i!=c});this._trigger("enable",null, +this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){c=this._getIndex(c);var h=this.options;if(c!=h.selected){this.lis.eq(c).addClass("ui-state-disabled");h.disabled.push(c);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this},select:function(c){c=this._getIndex(c);if(c==-1)if(this.options.collapsible&&this.options.selected!=-1)c=this.options.selected;else return this;this.anchors.eq(c).trigger(this.options.event+".tabs");return this}, +load:function(c){c=this._getIndex(c);var h=this,i=this.options,j=this.anchors.eq(c)[0],n=b.data(j,"load.tabs");this.abort();if(!n||this.element.queue("tabs").length!==0&&b.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing");if(i.spinner){var p=b("span",j);p.data("label.tabs",p.html()).html(i.spinner)}this.xhr=b.ajax(b.extend({},i.ajaxOptions,{url:n,success:function(l,k){h.element.find(h._sanitizeSelector(j.hash)).html(l);h._cleanup();i.cache&&b.data(j, +"cache.tabs",true);h._trigger("load",null,h._ui(h.anchors[c],h.panels[c]));try{i.ajaxOptions.success(l,k)}catch(m){}},error:function(l,k){h._cleanup();h._trigger("load",null,h._ui(h.anchors[c],h.panels[c]));try{i.ajaxOptions.error(l,k,c,j)}catch(m){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(c,h){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.11"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(c,h){var i=this,j=this.options,n=i._rotate||(i._rotate=function(p){clearTimeout(i.rotation);i.rotation=setTimeout(function(){var l=j.selected;i.select(++l - */ - -/** - * Initialize WCF namespace - */ -var WCF = {}; - -/** - * Extends jQuery with additional methods. - */ -$.extend(true, { - /** - * Escapes an ID to work with jQuery selectors. - * - * @see http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F - * @param string id - * @return string - */ - wcfEscapeID: function(id) { - return id.replace(/(:|\.)/g, '\\$1'); - }, - - /** - * Returns true if given ID exists within DOM. - * - * @param string id - * @return boolean - */ - wcfIsset: function(id) { - return !!$('#' + $.wcfEscapeID(id)).length; - } -}); - -/** - * Extends jQuery's chainable methods. - */ -$.fn.extend({ - /** - * Returns tag name of current jQuery element. - * - * @returns string - */ - getTagName: function() { - return this.get(0).tagName.toLowerCase(); - }, - - /** - * Returns the dimensions for current element. - * - * @see http://api.jquery.com/hidden-selector/ - * @param string type - * @return object - */ - getDimensions: function(type) { - var dimensions = css = {}; - var wasHidden = false; - - // show element to retrieve dimensions and restore them later - if (this.is(':hidden')) { - css = { - display: this.css('display'), - visibility: this.css('visibility') - }; - - wasHidden = true; - - this.css({ - display: 'block', - visibility: 'hidden' - }); - } - - switch (type) { - case 'inner': - dimensions = { - height: this.innerHeight(), - width: this.innerWidth() - }; - break; - - case 'outer': - dimensions = { - height: this.outerHeight(), - width: this.outerWidth() - }; - break; - - default: - dimensions = { - height: this.height(), - width: this.width() - }; - break; - } - - // restore previous settings - if (wasHidden) { - this.css(css); - } - - return dimensions; - }, - - /** - * Returns the offsets for current element, defaults to position - * relative to document. - * - * @see http://api.jquery.com/hidden-selector/ - * @param string type - * @return object - */ - getOffsets: function(type) { - var offsets = css = {}; - var wasHidden = false; - - // show element to retrieve dimensions and restore them later - if (this.is(':hidden')) { - css = { - display: this.css('display'), - visibility: this.css('visibility') - }; - - wasHidden = true; - - this.css({ - display: 'block', - visibility: 'hidden' - }); - } - - switch (type) { - case 'offset': - offsets = this.offset(); - break; - - case 'position': - default: - offsets = this.position(); - break; - } - - // restore previous settings - if (wasHidden) { - this.css(css); - } - - return offsets; - }, - - /** - * Changes element's position to 'absolute' or 'fixed' while maintaining it's - * current position relative to viewport. Optionally removes element from - * current DOM-node and moving it into body-element (useful for drag & drop) - * - * @param boolean rebase - * @return object - */ - makePositioned: function(position, rebase) { - if (position != 'absolute' && position != 'fixed') { - position = 'absolute'; - } - - var $currentPosition = this.getOffsets('position'); - this.css({ - position: position, - left: $currentPosition.left, - margin: 0, - top: $currentPosition.top - }); - - if (rebase) { - this.remove().appentTo('body'); - } - - return this; - }, - - /** - * Disables a form element. - * - * @return jQuery - */ - disable: function() { - return this.attr('disabled', 'disabled'); - }, - - /** - * Enables a form element. - * - * @return jQuery - */ - enable: function() { - return this.removeAttr('disabled'); - }, - - /** - * Applies a grow-effect by resizing element while moving the - * element appropriately - * - * @param object data - * @param object options - * @return jQuery - */ - wcfGrow: function(data, options) { - // create temporarily element to determine dimensions - var $tempElementID = WCF.getRandomID(); - $('body').append('
          ' + data.content + '
          '); - var $tempElement = $('#' + $tempElementID); - - // get content dimensions - var $dimensions = $tempElement.getDimensions(); - - // remove temporarily element - $tempElement.empty().remove(); - - // move parent element, used if applying effect on dialogs - if (!data.parent) { - data.parent = this; - } - - // calculate values for grow-effect - var $borderHeight = parseInt(data.parent.css('borderTopWidth')) + parseInt(data.parent.css('borderBottomWidth')); - var $borderWidth = parseInt(data.parent.css('borderLeftWidth')) + parseInt(data.parent.css('borderRightWidth')); - - var $windowDimensions = $(window).getDimensions(); - var $leftOffset = Math.round(($windowDimensions.width - ($dimensions.width + $borderWidth)) / 2); - var $topOffset = Math.round(($windowDimensions.height - ($dimensions.height + $borderHeight)) / 2); - - data.parent.makePositioned('fixed', false); - data.parent.animate({ - left: $leftOffset + 'px', - top: $topOffset + 'px' - }, options); - - return this.animate({ - height: $dimensions.height, - width: $dimensions.width - }, options); - }, - - /** - * Shows an element by sliding and fading it into viewport. - * - * @param string direction - * @param object callback - * @returns jQuery - */ - wcfDropIn: function(direction, callback) { - if (!direction) direction = 'up'; - - return this.show(WCF.getEffect(this.getTagName(), 'drop'), { direction: direction }, 600, callback); - }, - - /** - * Hides an element by sliding and fading it out the viewport. - * - * @param string direction - * @param object callback - * @returns jQuery - */ - wcfDropOut: function(direction, callback) { - if (!direction) direction = 'down'; - - return this.hide(WCF.getEffect(this.getTagName(), 'drop'), { direction: direction }, 600, callback); - }, - - /** - * Shows an element by blinding it up. - * - * @param string direction - * @param object callback - * @returns jQuery - */ - wcfBlindIn: function(direction, callback) { - if (!direction) direction = 'vertical'; - - return this.show(WCF.getEffect(this.getTagName(), 'blind'), { direction: direction }, 200, callback); - }, - - /** - * Hides an element by blinding it down. - * - * @param string direction - * @param object callback - * @returns jQuery - */ - wcfBlindOut: function(direction, callback) { - if (!direction) direction = 'vertical'; - - return this.hide(WCF.getEffect(this.getTagName(), 'blind'), { direction: direction }, 200, callback); - }, - - /** - * Highlights an element. - * - * @param object options - * @param object callback - * @returns jQuery - */ - wcfHighlight: function(options, callback) { - return this.effect('highlight', options, 600, callback); - } -}); - -/** - * WoltLab Community Framework core methods - */ -$.extend(WCF, { - /** - * Counter for dynamic element id's - * - * @var integer - */ - _idCounter: 0, - - /** - * Shows a modal dialog with a built-in AJAX-loader. - * - * @param string dialogID - * @param boolean resetDialog - */ - showAJAXDialog: function(dialogID, resetDialog) { - if (!dialogID) { - dialogID = this.getRandomID(); - } - - if (!$.wcfIsset(dialogID)) { - $('body').append($('
          ')); - } - - var dialog = $('#' + $.wcfEscapeID(dialogID)); - - if (resetDialog) { - dialog.empty(); - } - - dialog.addClass('overlayLoading'); - - var dialogOptions = arguments[2] || {}; - dialog.wcfAJAXDialog(dialogOptions); - }, - - /** - * Shows a modal dialog. - * @param string dialogID - */ - showDialog: function(dialogID) { - // we cannot work with a non-existant dialog, if you wish to - // load content via AJAX, see showAJAXDialog() instead - if (!$.wcfIsset(dialogID)) return; - - var $dialog = $('#' + $.wcfEscapeID(dialogID)); - - var dialogOptions = arguments[2] || {}; - $dialog.wcfDialog(dialogOptions); - }, - - /** - * Returns a dynamically created id. - * - * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/dom/dom.js#L1789 - * @return string - */ - getRandomID: function() { - var $elementID = ''; - - do { - $elementID = 'wcf' + this._idCounter++; - } - while ($.wcfIsset($elementID)); - - return $elementID; - }, - - /** - * Wrapper for $.inArray which returns boolean value instead of - * index value, similar to PHP's in_array(). - * - * @param mixed needle - * @param array haystack - * @return boolean - */ - inArray: function(needle, haystack) { - return ($.inArray(needle, haystack) != -1); - }, - - /** - * Adjusts effect for partially supported elements. - * - * @param object object - * @param string effect - * @return string - */ - getEffect: function(tagName, effect) { - // most effects are not properly supported on table rows, use highlight instead - if (tagName == 'tr') { - return 'highlight'; - } - - return effect; - } -}); - -/** - * Provides a simple call for periodical executed functions. Based upon - * ideas by Prototype's PeriodicalExecuter. - * - * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/periodical_executer.js - * @param function callback - * @param integer delay - */ -WCF.PeriodicalExecuter = function(callback, delay) { this.init(callback, delay); }; -WCF.PeriodicalExecuter.prototype = { - /** - * Initializes a periodical executer. - * - * @param function callback - * @param integer delay - */ - init: function(callback, delay) { - this.callback = callback; - this.delay = delay; - this.loop = true; - - this.intervalID = setInterval($.proxy(this._execute, this), this.delay); - }, - - /** - * Executes callback. - */ - _execute: function() { - this.callback(this); - - if (!this.loop) { - clearInterval(this.intervalID); - } - }, - - /** - * Terminates loop. - */ - stop: function() { - this.loop = false; - } -}; - -/** - * Namespace for AJAXProxies - */ -WCF.Action = {}; - -/** - * Basic implementation for AJAX-based proxyies - * - * @param object options - */ -WCF.Action.Proxy = function(options) { this.init(options); }; -WCF.Action.Proxy.prototype = { - /** - * Initializes AJAXProxy. - * - * @param object options - */ - init: function(options) { - // initialize default values - this.options = $.extend(true, { - autoSend: false, - data: { }, - after: null, - init: null, - failure: null, - success: null, - type: 'POST', - url: 'index.php?action=AJAXProxy&t=' + SECURITY_TOKEN + SID_ARG_2ND - }, options); - - this.confirmationDialog = null; - this.loading = null; - - // send request immediately after initialization - if (this.options.autoSend) { - this.sendRequest(); - } - }, - - /** - * Sends an AJAX request. - */ - sendRequest: function() { - this._init(); - - $.ajax({ - data: this.options.data, - dataType: 'json', - type: this.options.type, - url: this.options.url, - success: $.proxy(this._success, this), - error: $.proxy(this._failure, this) - }); - }, - - /** - * Fires before request is send, displays global loading status. - */ - _init: function() { - if ($.isFunction(this.options.init)) { - this.options.init(); - } - - $('').appendTo($('body')); - this.loading = $('#actionProxyLoading'); - this.loading.wcfDropIn(); - }, - - /** - * Handles AJAX errors. - * - * @param object jqXHR - * @param string textStatus - * @param string errorThrown - */ - _failure: function(jqXHR, textStatus, errorThrown) { - try { - var data = $.parseJSON(jqXHR.responseText); - - // call child method if applicable - if ($.isFunction(this.options.failure)) { - this.options.failure(jqXHR, textStatus, errorThrown, data); - } - - var $randomID = WCF.getRandomID(); - $('

          Der Server antwortete: ' + data.message + '.

          ').wcfDialog(); - } - // failed to parse JSON - catch (e) { - var $randomID = WCF.getRandomID(); - $('

          Der Server antwortete: ' + jqXHR.responseText + '.

          ').wcfDialog(); - } - - this._after(); - }, - - /** - * Handles successful AJAX requests. - * - * @param object data - * @param string textStatus - * @param object jqXHR - */ - _success: function(data, textStatus, jqXHR) { - // call child method if applicable - if ($.isFunction(this.options.success)) { - this.options.success(data, textStatus, jqXHR); - } - - this._after(); - }, - - /** - * Fires after an AJAX request, hides global loading status. - */ - _after: function() { - if ($.isFunction(this.options.after)) { - this.options.after(); - } - - this.loading.wcfDropOut('up'); - }, - - /** - * Sets options, MUST be used to set parameters before sending request - * if calling from child classes. - * - * @param string optionName - * @param mixed optionData - */ - setOption: function(optionName, optionData) { - this.options[optionName] = optionData; - } -}; - -/** - * Basic implementation for simple proxy access using bound elements. - * - * @param object options - * @param object callbacks - */ -WCF.Action.SimpleProxy = function(options, callbacks) { this.init(options, callbacks); }; -WCF.Action.SimpleProxy.prototype = { - /** - * Initializes SimpleProxy. - * - * @param object options - * @param object callbacks - */ - init: function(options, callbacks) { - /** - * action-specific options - */ - this.options = $.extend(true, { - action: '', - className: '', - elements: null, - eventName: 'click' - }, options); - - /** - * proxy-specific options - */ - this.callbacks = $.extend(true, { - after: null, - failure: null, - init: null, - success: null - }, callbacks); - - if (!this.options.elements) return; - - // initialize proxy - this.proxy = new WCF.Action.Proxy(this.callbacks); - - // bind event listener - this.options.elements.each($.proxy(function(index, element) { - $(element).bind(this.options.eventName, $.proxy(this._handleEvent, this)); - }, this)); - }, - - /** - * Handles event actions. - * - * @param object event - */ - _handleEvent: function(event) { - this.proxy.setOption('data', { - actionName: this.options.action, - className: this.options.className, - objectIDs: [ $(event.target).data('objectID') ] - }); - - this.proxy.sendRequest(); - } -}; - -/** - * Basic implementation for AJAXProxy-based deletion. - * - * @param string className - * @param jQuery containerList - */ -WCF.Action.Delete = function(className, containerList) { this.init(className, containerList); }; -WCF.Action.Delete.prototype = { - /** - * Initializes 'delete'-Proxy. - * - * @param string className - * @param jQuery containerList - */ - init: function(className, containerList) { - if (!containerList.length) return; - this.containerList = containerList; - this.className = className; - - // initialize proxy - var options = { - success: $.proxy(this._success, this) - }; - this.proxy = new WCF.Action.Proxy(options); - - // bind event listener - this.containerList.each($.proxy(function(index, container) { - $(container).find('.deleteButton').bind('click', $.proxy(this._click, this)); - }, this)); - }, - - /** - * Sends AJAX request. - * - * @param object event - */ - _click: function(event) { - var $target = $(event.target); - - if ($target.data('confirmMessage')) { - if (confirm($target.data('confirmMessage'))) { - this._sendRequest($target); - } - } - else { - this._sendRequest($target); - } - - }, - - _sendRequest: function(object) { - this.proxy.setOption('data', { - actionName: 'delete', - className: this.className, - objectIDs: [ $(object).data('objectID') ] - }); - - this.proxy.sendRequest(); - }, - - /** - * Deletes items from containers. - * - * @param object data - * @param string textStatus - * @param object jqXHR - */ - _success: function(data, textStatus, jqXHR) { - // remove items - this.containerList.each(function(index, container) { - var $objectID = $(container).find('.deleteButton').data('objectID'); - if (WCF.inArray($objectID, data.objectIDs)) { - $(container).wcfBlindOut('up', function() { - $(container).empty().remove(); - }, container); - } - }); - } -}; - -/** - * Basic implementation for AJAXProxy-based toggle actions. - * - * @param string className - * @param jQuery containerList - */ -WCF.Action.Toggle = function(className, containerList) { this.init(className, containerList); }; -WCF.Action.Toggle.prototype = { - /** - * Initializes 'toggle'-Proxy - * - * @param string className - * @param jQuery containerList - */ - init: function(className, containerList) { - if (!containerList.length) return; - this.containerList = containerList; - this.className = className; - - // initialize proxy - var options = { - success: $.proxy(this._success, this) - }; - this.proxy = new WCF.Action.Proxy(options); - - // bind event listener - this.containerList.each($.proxy(function(index, container) { - $(container).find('.toggleButton').bind('click', $.proxy(this._click, this)); - }, this)); - }, - - /** - * Sends AJAX request. - * - * @param object event - */ - _click: function(event) { - this.proxy.setOption('data', { - actionName: 'toggle', - className: this.className, - objectIDs: [ $(event.target).data('objectID') ] - }); - - this.proxy.sendRequest(); - }, - - /** - * Toggles status icons. - * - * @param object data - * @param string textStatus - * @param object jqXHR - */ - _success: function(data, textStatus, jqXHR) { - // remove items - this.containerList.each(function(index, container) { - var $toggleButton = $(container).find('.toggleButton'); - if (WCF.inArray($toggleButton.data('objectID'), data.objectIDs)) { - $(container).wcfHighlight(); - - // toggle icon source - $toggleButton.attr('src', function() { - if (this.src.match(/enabled(S|M|L)\.png$/)) { - return this.src.replace(/enabled(S|M|L)\.png$/, 'disabled$1\.png'); - } - else { - return this.src.replace(/disabled(S|M|L)\.png$/, 'enabled$1\.png'); - } - }); - // toogle icon title - $toggleButton.attr('title', function() { - if (this.src.match(/enabled(S|M|L)\.png$/)) { - return $(this).data('disableMessage'); - } - else { - return $(this).data('enableMessage'); - } - }); - } - }); - } -}; - -/** - * Namespace for date-related functions. - */ -WCF.Date = {}; - -/** - * Provides utility functions for date operations. - */ -WCF.Date.Util = { - /** - * Returns UTC timestamp, if date is not given, current time will be used. - * - * @param Date date - * @return integer - */ - gmdate: function(date) { - var $date = (date) ? date : new Date(); - - return Math.round(Date.UTC( - $date.getUTCFullYear(), - $date.getUTCMonth(), - $date.getUTCDay(), - $date.getUTCHours(), - $date.getUTCMinutes(), - $date.getUTCSeconds() - ) / 1000); - }, - - /** - * Returns a Date object with precise offset (including timezone and local timezone). - * Parameter timestamp must be in miliseconds! - * - * @param integer timestamp - * @param integer offset - * @return Date - */ - getTimezoneDate: function(timestamp, offset) { - var $date = new Date(timestamp); - var $localOffset = $date.getTimezoneOffset() * -1 * 60000; - - return new Date((timestamp - $localOffset - offset)); - } -}; - -/** - * Handles relative time designations. - */ -WCF.Date.Time = function() { this.init(); }; -WCF.Date.Time.prototype = { - /** - * Initializes relative datetimes. - */ - init: function() { - // initialize variables - this.elements = $('time.datetime'); - this.timestamp = 0; - - // calculate relative datetime on init - this._refresh(); - - // re-calculate relative datetime every minute - new WCF.PeriodicalExecuter($.proxy(this._refresh, this), 60000); - }, - - /** - * Refreshes relative datetime for each element. - */ - _refresh: function() { - // TESTING ONLY! - var $date = new Date(); - this.timestamp = ($date.getTime() - $date.getMilliseconds()) / 1000; - // TESTING ONLY! - - this.elements.each($.proxy(this._refreshElement, this)); - }, - - /** - * Refreshes relative datetime for current element. - * - * @param integer index - * @param object element - */ - _refreshElement: function(index, element) { - if (!$(element).attr('title')) { - $(element).attr('title', $(element).text()); - } - - var $timestamp = $(element).data('timestamp'); - var $date = $(element).data('date'); - var $time = $(element).data('time'); - var $offset = $(element).data('offset'); - - // timestamp is less than 60 minutes ago (display 1 hour ago rather than 60 minutes ago) - if (this.timestamp < ($timestamp + 3540)) { - var $minutes = Math.round((this.timestamp - $timestamp) / 60); - $(element).text(eval(WCF.Language.get('wcf.global.date.relative.minutes'))); - } - // timestamp is less than 24 hours ago - else if (this.timestamp < ($timestamp + 86400)) { - var $hours = Math.round((this.timestamp - $timestamp) / 3600); - $(element).text(eval(WCF.Language.get('wcf.global.date.relative.hours'))); - } - // timestamp is less than a week ago - else if (this.timestamp < ($timestamp + 604800)) { - var $days = Math.round((this.timestamp - $timestamp) / 86400); - var $string = eval(WCF.Language.get('wcf.global.date.relative.pastDays')); - - // get day of week - var $dateObj = WCF.Date.Util.getTimezoneDate(($timestamp * 1000), $offset); - var $dow = $dateObj.getDay(); - - $(element).text($string.replace(/\%day\%/, WCF.Language.get('__days')[$dow]).replace(/\%time\%/, $time)); - } - // timestamp is between ~700 million years BC and last week - else { - var $string = WCF.Language.get('wcf.global.date.dateTimeFormat'); - $(element).text($string.replace(/\%date\%/, $date).replace(/\%time\%/, $time)); - } - } -}; - -/** - * Hash-like dictionary. Based upon idead from Prototype's hash - * - * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/hash.js - */ -WCF.Dictionary = function() { this.init(); }; -WCF.Dictionary.prototype = { - /** - * Initializes a new dictionary. - */ - init: function() { - this.variables = { }; - }, - - /** - * Adds an entry. - * - * @param string key - * @param mixed value - */ - add: function(key, value) { - this.variables[key] = value; - }, - - /** - * Adds a traditional object to current dataset. - * - * @param object object - */ - addObject: function(object) { - for (var $key in object) { - this.add($key, object[$key]); - } - }, - - /** - * Adds a dictionary to current dataset. - * - * @param object dictionary - */ - addDictionary: function(dictionary) { - dictionary.each($.proxy(function(pair) { - this.add(pair.key, pair.value); - }, this)); - }, - - /** - * Retrieves the value of an entry or returns null if key is not found. - * - * @param string key - * @returns mixed - */ - get: function(key) { - if (this.isset(key)) { - return this.variables[key]; - } - - return null; - }, - - /** - * Returns true if given key is a valid entry. - * - * @param string key - */ - isset: function(key) { - return this.variables.hasOwnProperty(key); - }, - - /** - * Removes an entry. - * - * @param string key - */ - remove: function(key) { - delete this.variables[key]; - }, - - /** - * Iterates through dictionary. - * - * Usage: - * var $hash = new WCF.Dictionary(); - * $hash.add('foo', 'bar'); - * $hash.each(function(pair) { - * // alerts: foo = bar - * alert(pair.key + ' = ' + pair.value); - * }); - * - * @param function callback - */ - each: function(callback) { - if (!$.isFunction(callback)) { - return; - } - - for (var $key in this.variables) { - var $value = this.variables[$key]; - var $pair = { - key: $key, - value: $value - }; - - callback($pair); - } - } -}; - -/** - * Global language storage. - * - * @see WCF.Dictionary - */ -WCF.Language = { - _variables: new WCF.Dictionary(), - - /** - * @see WCF.Dictionary.addObject() - */ - add: function(key, value) { - this._variables.add(key, value); - }, - - /** - * @see WCF.Dictionary.addObject() - */ - addObject: function(object) { - this._variables.addObject(object); - }, - - /** - * Retrieves a variable. - * - * @param string key - * @return mixed - */ - get: function(key) { - return this._variables.get(key); - } -}; - -/** - * String utilities. - */ -WCF.String = { - /** - * Escapes special HTML-characters within a string - * - * @param string string - * @return string - */ - escapeHTML: function (string) { - return string.replace(/&/g, '&').replace(/"/g, '"').replace(//g, '>'); - }, - - /** - * Escapes a String to work with RegExp. - * - * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/regexp.js#L25 - * @param string string - * @return string - */ - escapeRegExp: function(string) { - return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); - }, - - /** - * Makes a string's first character uppercase - * - * @param string string - * @return string - */ - ucfirst: function(string) { - return string.substring(0, 1).toUpperCase() + string.substring(1); - }, - - /** - * Adds thousands separators to a given number. - * - * @param mixed number - * @return string - */ - addThousandsSeparator: function(number) { - var $numberString = String(number); - if (number >= 1000 || number <= -1000) { - var $negative = false; - if (number <= -1000) { - $negative = true; - $numberString = $numberString.substring(1); - } - var $separator = WCF.Language.get('wcf.global.thousandsSeparator'); - - if ($separator != null && $separator != '') { - var $numElements = new Array(); - var $firstPart = $numberString.length % 3 - if ($firstPart == 0) $firstPart = 3; - for (var $i = 0; $i < Math.ceil($numberString.length / 3); $i++) { - if ($i == 0) $numElements.push($numberString.substring(0, $firstPart)); - else { - var $start = (($i - 1) * 3) + $firstPart - $numElements.push($numberString.substring($start, $start + 3)); - } - } - $numberString = (($negative) ? ('-') : ('')) + $numElements.join($separator); - } - } - - return $numberString; - } -}; - -/** - * Basic implementation for WCF TabMenus. Use the data attributes 'active' to specify the - * tab which should be shown on init. Furthermore you may specify a 'store' data-attribute - * which will be filled with the currently selected tab. - */ -WCF.TabMenu = { - /** - * Initializes all TabMenus - */ - init: function() { - $('.tabMenuContainer').each(function(index, tabMenu) { - if (!$(tabMenu).attr('id')) { - var $randomID = WCF.getRandomID(); - $(tabMenu).attr('id', $randomID); - } - - // init jQuery UI TabMenu - $(tabMenu).wcfTabs({ - select: function(event, ui) { - var $panel = $(ui.panel); - var $container = $panel.closest('.tabMenuContainer'); - - // store currently selected item - if ($container.data('store')) { - if ($.wcfIsset($container.data('store'))) { - $('#' + $container.data('store')).attr('value', $panel.attr('id')); - } - } - } - }); - - // display active item on init - if ($(tabMenu).data('active')) { - $(tabMenu).find('.tabMenuContent').each(function(index, tabMenuItem) { - if ($(tabMenuItem).attr('id') == $(tabMenu).data('active')) { - $(tabMenu).wcfTabs('select', index); - } - }); - } - }); - } -}; - -/** - * Templates that may be fetched more than once with different variables. Based upon ideas from Prototype's template - * - * Usage: - * var myTemplate = new WCF.Template('{$hello} World'); - * myTemplate.fetch({ hello: 'Hi' }); // Hi World - * myTemplate.fetch({ hello: 'Hello' }); // Hello World - * - * my2ndTemplate = new WCF.Template('{@$html}{$html}'); - * my2ndTemplate.fetch({ html: 'Test' }); // Test<b>Test</b> - * - * var my3rdTemplate = new WCF.Template('You can use {literal}{$variable}{/literal}-Tags here'); - * my3rdTemplate.fetch({ variable: 'Not shown' }); // You can use {$variable}-Tags here - * - * - * @param template template-content - * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/template.js - */ -WCF.Template = function(template) { this.init(template); }; -WCF.Template.prototype = { - /** - * Template-content - * - * @var string - */ - _template: '', - - /** - * Saved literal-tags - * - * @var WCF.Dictionary - */ - _literals: new WCF.Dictionary(), - - /** - * Prepares template - * - * @param $template template-content - */ - init: function($template) { - this._template = $template; - - // save literal-tags - this._template = this._template.replace(/\{literal\}(.*?)\{\/literal\}/g, $.proxy(function ($match) { - // hopefully no one uses this string in one of his templates - var id = '@@@@@@@@@@@'+Math.random()+'@@@@@@@@@@@'; - this._literals.add(id, $match.replace(/\{\/?literal\}/g, '')); - - return id; - }, this)); - }, - - /** - * Fetches the template with the given variables - * - * @param $variables variables to insert - * @return parsed template - */ - fetch: function($variables) { - var $result = this._template; - - // insert them :) - for (var $key in $variables) { - $result = $result.replace(new RegExp(WCF.String.escapeRegExp('{$'+$key+'}'), 'g'), WCF.String.escapeHTML($variables[$key])); - $result = $result.replace(new RegExp(WCF.String.escapeRegExp('{@$'+$key+'}'), 'g'), $variables[$key]); - } - - // insert delimiter tags - $result = $result.replace('{ldelim}', '{').replace('{rdelim}', '}'); - - // and re-insert saved literals - return this.insertLiterals($result); - }, - - /** - * Inserts literals into given string - * - * @param $template string to insert into - * @return string with inserted literals - */ - insertLiterals: function ($template) { - this._literals.each(function ($pair) { - $template = $template.replace($pair.key, $pair.value); - }); - - return $template; - }, - - /** - * Compiles this template into javascript-code - * - * @return WCF.Template.Compiled - */ - compile: function () { - var $compiled = this._template; - - // escape \ and ' - $compiled = $compiled.replace('\\', '\\\\').replace("'", "\\'"); - - // parse our variable-tags - $compiled = $compiled.replace(/\{\$(.*?)\}/g, function ($match) { - var $name = '$v.' + $match.substring(2, $match.length - 1); - // trinary operator to maintain compatibility with uncompiled template - // ($name) ? $name : '$match' - // -> $v.muh ? $v.muh : '{$muh}' - return "' + WCF.String.escapeHTML("+ $name + " ? " + $name + " : '" + $match + "') + '"; - }).replace(/\{@\$(.*?)\}/g, function ($match) { - var $name = '$v.' + $match.substring(3, $match.length - 1); - // trinary operator to maintain compatibility with uncompiled template - // ($name) ? $name : '$match' - // -> $v.muh ? $v.muh : '{$muh}' - return "' + ("+ $name + " ? " + $name + " : '" + $match + "') + '"; - }); - - // insert delimiter tags - $compiled = $compiled.replace('{ldelim}', '{').replace('{rdelim}', '}'); - - // and re-insert saved literals - return new WCF.Template.Compiled("'" + this.insertLiterals($compiled) + "';"); - } -}; - -/** - * Represents a compiled template - * - * @param compiled compiled template - */ -WCF.Template.Compiled = function(compiled) { this.init(compiled); }; -WCF.Template.Compiled.prototype = { - /** - * Compiled template - * - * @var string - */ - _compiled: '', - - /** - * Initializes our compiled template - * - * @param $compiled compiled template - */ - init: function($compiled) { - this._compiled = $compiled; - }, - - /** - * @see WCF.Template.fetch - */ - fetch: function($v) { - return eval(this._compiled); - } -}; - -/** - * Toggles options. - * - * @param string element - * @param array showItems - * @param array hideItems - */ -WCF.ToggleOptions = function(element, showItems, hideItems) { this.init(element, showItems, hideItems); }; -WCF.ToggleOptions.prototype = { - /** - * target item - * - * @var jQuery - */ - _element: null, - - /** - * list of items to be shown - * - * @var array - */ - _showItems: [], - - /** - * list of items to be hidden - * - * @var array - */ - _hideItems: [], - - /** - * Initializes option toggle. - * - * @param string element - * @param array showItems - * @param array hideItems - */ - init: function(element, showItems, hideItems) { - this._element = $('#' + element); - this._showItems = showItems; - this._hideItems = hideItems; - - // bind event - this._element.click($.proxy(this._toggle, this)); - - // execute toggle on init - this._toggle(); - }, - - /** - * Toggles items. - */ - _toggle: function() { - if (!this._element.attr('checked')) return; - - for (var $i = 0, $length = this._showItems.length; $i < $length; $i++) { - var $item = this._showItems[$i]; - - $('#' + $item).show(); - } - - for (var $i = 0, $length = this._hideItems.length; $i < $length; $i++) { - var $item = this._hideItems[$i]; - - $('#' + $item).hide(); - } - } -}; - -/** - * Basic implementation for WCF dialogs. - */ -$.widget('ui.wcfDialog', $.ui.dialog, { - _init: function() { - this.options.autoOpen = true; - this.options.close = function(event, ui) { - $(this).parent('.ui-dialog').wcfDropOut('down', $.proxy(function() { - $(this).parent('.ui-dialog').empty().remove(); - }, this)); - }; - this.options.height = 'auto'; - this.options.minHeight = 0; - this.options.modal = true; - this.options.width = 'auto'; - - $.ui.dialog.prototype._init.apply(this, arguments); - } -}); - -/** - * Basic implementation for WCF dialogs loading content - * via AJAX before calling dialog itself. - */ -$.widget('ui.wcfAJAXDialog', $.ui.dialog, { - /** - * Indicates wether callback was already executed - * - * @var boolean - */ - _callbackExecuted: false, - - /** - * Initializes AJAX-request to fetch content. - */ - _init: function() { - if (this.options.ajax) { - this._loadContent(); - } - - // force dialog to be placed centered - this.options.position = { - my: 'center center', - at: 'center center' - }; - - // dialog should display a spinner-like image, thus immediately fire up dialog - this.options.autoOpen = true; - this.options.width = 'auto'; - this.options.minHeight = 80; - - // disable ability to move dialog - this.options.resizable = false; - this.options.draggable = false; - - this.options.modal = true; - this.options.hide = { - effect: 'drop', - direction: 'down' - }; - - this.options.close = function(event, ui) { - // loading ajax content seems to block properly closing - $(this).parent('.ui-dialog').empty().remove(); - }; - - if (this.options.preventClose) { - this.options.closeOnEscape = false; - } - - $.ui.dialog.prototype._init.apply(this, arguments); - - // remove complete node instead of removing node-by-node - if (this.options.hideTitle && this.options.preventClose) { - this.element.parent('.ui-dialog').find('div.ui-dialog-titlebar').empty().remove(); - } - else { - if (this.options.hideTitle) { - // remove title element - $('#ui-dialog-title-' + this.element.attr('id')).empty().remove(); - } - - if (this.options.preventClose) { - // remove close-button - this.element.parent('.ui-dialog').find('a.ui-dialog-titlebar-close').empty().remove(); - } - } - }, - - /** - * Loads content via AJAX. - * - * @todo Enforce JSON - */ - _loadContent: function() { - var $type = 'GET'; - if (this.options.ajax.type) { - $type = this.options.ajax.type; - - if (this.options.ajax.type != 'GET' && this.options.ajax.type != 'POST') { - $type = 'GET'; - } - } - - var $data = this.options.ajax.data || {}; - - $.ajax({ - url: this.options.ajax.url, - context: this, - dataType: 'json', - type: $type, - data: $data, - success: $.proxy(this._createDialog, this), - error: function(transport) { - alert(transport.responseText); - } - }); - }, - - /** - * Inserts content. - * - * @param string data - */ - _createDialog: function(data) { - data.ignoreTemplate = true; - this.element.data('responseData', data); - - this.element.wcfGrow({ - content: data.template, - parent: this.element.parent('.ui-dialog') - }, { - duration: 600, - complete: $.proxy(function(data) { - this.element.css({ - height: 'auto' - }); - - // prevent double execution due to two complete-calls (two times animate) - if (this._callbackExecuted) { - return; - } - - this._callbackExecuted = true; - - this.element.removeClass('overlayLoading'); - this.element.html(this.element.data('responseData').template); - - if (this.options.ajax.success) { - this.options.ajax.success(); - } - }, this) - }); - }, - - /** - * Redraws dialog, should be executed everytime content is changed. - */ - redraw: function() { - var $dimensions = this.element.getDimensions(); - - if ($dimensions.height > 200) { - this.element.wcfGrow({ - content: this.element.html(), - parent: this.element.parent('.ui-dialog') - }, { - duration: 600, - complete: function() { - $(this).css({ height: 'auto' }); - } - }); - } - } -}); - -/** - * Workaround for ids containing a dot ".", until jQuery UI devs learn - * to properly escape ids ... (it took 18 months until they finally - * fixed it!) - * - * @see http://bugs.jqueryui.com/ticket/4681 - */ -$.widget('ui.wcfTabs', $.ui.tabs, { - _init: function() { - $.ui.dialog.prototype._init.apply(this, arguments); - }, - - _sanitizeSelector: function(hash) { - return hash.replace(/([:\.])/g, '\\$1'); - } -}); - -/** - * jQuery widget implementation of the wcf pagination. - */ -$.widget('ui.wcfPages', { - SHOW_LINKS: 11, - SHOW_SUB_LINKS: 20, - - options: { - // vars - activePage: 1, - maxPage: 1, - - // icons - previousIcon: RELATIVE_WCF_DIR + 'icon/previousS.png', - previousDisabledIcon: RELATIVE_WCF_DIR + 'icon/previousDisabledS.png', - arrowDownIcon: RELATIVE_WCF_DIR + 'icon/arrowDown.png', - nextIcon: RELATIVE_WCF_DIR + 'icon/nextS.png', - nextDisabledIcon: RELATIVE_WCF_DIR + 'icon/nextDisabledS.png', - - // language - // we use options here instead of language variables, because the paginator is not only usable with pages - nextPage: null, - previousPage: null, - }, - - /** - * Creates the pages widget. - */ - _create: function() { - if (this.options.nextPage === null) this.options.nextPage = WCF.Language.get('wcf.global.page.next'); - if (this.options.previousPage === null) this.options.previousPage = WCF.Language.get('wcf.global.page.previous'); - - this.element.addClass('pageNavigation'); - - this._render(); - }, - - /** - * Destroys the pages widget. - */ - destroy: function() { - $.Widget.prototype.destroy.apply(this, arguments); - - this.element.children().remove(); - }, - - /** - * Renders th pages widget. - */ - _render: function() { - // only render if we have more than 1 page - if (!this.options.disabled && this.options.maxPage > 1) { - // make sure pagination is visible - if (this.element.hasClass('hidden')) { - this.element.removeClass('hidden'); - } - this.element.show(); - - this.element.children().remove(); - - var $pageList = $('
            '); - this.element.append($pageList); - - var $previousElement = $('
          • '); - $pageList.append($previousElement); - - if (this.options.activePage > 1) { - var $previousLink = $(''); - $previousElement.append($previousLink); - this._bindSwitchPage($previousLink, this.options.activePage - 1); - - var $previousImage = $(''); - $previousLink.append($previousImage); - } - else { - var $previousImage = $(''); - $previousElement.append($previousImage); - } - $previousElement.addClass('skip'); - - // add first page - $pageList.append(this._renderLink(1)); - - // calculate page links - var $maxLinks = this.SHOW_LINKS - 4; - var $linksBefore = this.options.activePage - 2; - if ($linksBefore < 0) $linksBefore = 0; - var $linksAfter = this.options.maxPage - (this.options.activePage + 1); - if ($linksAfter < 0) $linksAfter = 0; - if (this.options.activePage > 1 && this.options.activePage < this.options.maxPage) $maxLinks--; - - var $half = $maxLinks / 2; - var $left = this.options.activePage; - var $right = this.options.activePage; - if ($left < 1) $left = 1; - if ($right < 1) $right = 1; - if ($right > this.options.maxPage - 1) $right = this.options.maxPage - 1; - - if ($linksBefore >= $half) { - $left -= $half; - } - else { - $left -= $linksBefore; - $right += $half - $linksBefore; - } - - if ($linksAfter >= $half) { - $right += $half; - } - else { - $right += $linksAfter; - $left -= $half - $linksAfter; - } - - $right = Math.ceil($right); - $left = Math.ceil($left); - if ($left < 1) $left = 1; - if ($right > this.options.maxPage) $right = this.options.maxPage; - - // left ... links - if ($left > 1) { - if ($left - 1 < 2) { - $pageList.append(this._renderLink(2)); - } - else { - var $leftChildren = $('
          • '); - $pageList.append($leftChildren); - - var $leftChildrenLink = $(''); - $leftChildren.append($leftChildrenLink); - $leftChildrenLink.click($.proxy(this._startInput, this)); - - var $leftChildrenImage = $(''); - $leftChildrenLink.append($leftChildrenImage); - - var $leftChildrenInput = $(''); - $leftChildren.append($leftChildrenInput); - $leftChildrenInput.keydown($.proxy(this._handleInput, this)); - $leftChildrenInput.keyup($.proxy(this._handleInput, this)); - $leftChildrenInput.blur($.proxy(this._stopInput, this)); - - var $leftChildrenContainer = $('
            '); - $leftChildren.append($leftChildrenContainer); - - var $leftChildrenList = $('
              '); - $leftChildrenContainer.append($leftChildrenList); - - // render sublinks - var $k = 0; - var $step = Math.ceil(($left - 2) / this.SHOW_SUB_LINKS); - for (var $i = 2; $i <= $left; $i += $step) { - $leftChildrenList.append(this._renderLink($i, ($k != 0 && $k % 4 == 0))); - $k++; - } - } - } - - // visible links - for (var $i = $left + 1; $i < $right; $i++) { - $pageList.append(this._renderLink($i)); - } - - // right ... links - if ($right < this.options.maxPage) { - if (this.options.maxPage - $right < 2) { - $pageList.append(this._renderLink(this.options.maxPage - 1)); - } - else { - var $rightChildren = $('
            • '); - $pageList.append($rightChildren); - - var $rightChildrenLink = $(''); - $rightChildren.append($rightChildrenLink); - $rightChildrenLink.click($.proxy(this._startInput, this)); - - var $rightChildrenImage = $(''); - $rightChildrenLink.append($rightChildrenImage); - - var $rightChildrenInput = $(''); - $rightChildren.append($rightChildrenInput); - $rightChildrenInput.keydown($.proxy(this._handleInput, this)); - $rightChildrenInput.keyup($.proxy(this._handleInput, this)); - $rightChildrenInput.blur($.proxy(this._stopInput, this)); - - var $rightChildrenContainer = $('
              '); - $rightChildren.append($rightChildrenContainer); - - var $rightChildrenList = $('
                '); - $rightChildrenContainer.append($rightChildrenList); - - // render sublinks - var $k = 0; - var $step = Math.ceil((this.options.maxPage - $right) / this.SHOW_SUB_LINKS); - for (var $i = $right; $i < this.options.maxPage; $i += $step) { - $rightChildrenList.append(this._renderLink($i, ($k != 0 && $k % 4 == 0))); - $k++; - } - } - } - - // add last page - $pageList.append(this._renderLink(this.options.maxPage)); - - // add next button - var $nextElement = $('
              • '); - $pageList.append($nextElement); - - if (this.options.activePage < this.options.maxPage) { - var $nextLink = $(''); - $nextElement.append($nextLink); - this._bindSwitchPage($nextLink, this.options.activePage + 1); - - var $nextImage = $(''); - $nextLink.append($nextImage); - } - else { - var $nextImage = $(''); - $nextElement.append($nextImage); - } - $nextElement.addClass('skip'); - } - else { - // otherwise hide the paginator if not already hidden - this.element.hide(); - } - }, - - /** - * Renders a page link - * - * @parameter integer page - * - * @return $(element) - */ - _renderLink: function(page, lineBreak) { - var $pageElement = $('
              • '); - if (lineBreak != undefined && lineBreak) { - $pageElement.addClass('break'); - } - if (page != this.options.activePage) { - var $pageLink = $('' + WCF.String.addThousandsSeparator(page) + ''); - $pageElement.append($pageLink); - this._bindSwitchPage($pageLink, page); - } - else { - $pageElement.addClass('active'); - var $pageSubElement = $('' + WCF.String.addThousandsSeparator(page) + ''); - $pageElement.append($pageSubElement); - } - - return $pageElement; - }, - - /** - * Binds the 'click'-event for the page switching to the given element. - * - * @parameter $(element) element - * @paremeter integer page - */ - _bindSwitchPage: function(element, page) { - var $self = this; - element.click(function() { - $self.switchPage(page); - }); - }, - - /** - * Switches to the given page - * - * @parameter Event event - * @parameter integer page - */ - switchPage: function(page) { - this._setOption('activePage', page); - }, - - /** - * Sets the given option to the given value. - * See the jQuery UI widget documentation for more. - */ - _setOption: function(key, value) { - if (key == 'activePage') { - if (value != this.options[key] && value > 0 && value <= this.options.maxPage) { - // you can prevent the page switching by returning false or by event.preventDefault() - // in a shouldSwitch-callback. e.g. if an AJAX request is already running. - var $result = this._trigger('shouldSwitch', undefined, { - nextPage: value, - }); - - if ($result) { - this.options[key] = value; - this._render(); - this._trigger('switched', undefined, { - activePage: value, - }); - } - else { - this._trigger('notSwitched', undefined, { - activePage: value, - }); - } - } - } - else { - this.options[key] = value; - - if (key == 'disabled') { - if (value) { - this.element.children().remove(); - } - else { - this._render() - } - } - else if (key == 'maxPage') { - this._render(); - } - } - - return this; - }, - - /** - * Start input of pagenumber - * - * @parameter Event event - */ - _startInput: function(event) { - // hide a-tag - var $childLink = $(event.currentTarget); - if (!$childLink.is('a')) $childLink = $childLink.parent('a'); - - $childLink.hide(); - - // show input-tag - var $childInput = $childLink.parent('li').children('input') - .css('display', 'block') - .val(''); - - $childInput.focus(); - }, - - /** - * Stops input of pagenumber - * - * @parameter Event event - */ - _stopInput: function(event) { - // hide input-tag - var $childInput = $(event.currentTarget); - $childInput.css('display', 'none'); - - // show a-tag - var $childContainer = $childInput.parent('li') - if ($childContainer != undefined && $childContainer != null) { - $childContainer.children('a').show(); - } - }, - - /** - * Handles input of pagenumber - * - * @parameter Event event - */ - _handleInput: function(event) { - var $ie7 = ($.browser.msie && $.browser.version == '7.0'); - if (event.type != 'keyup' || $ie7) { - if (!$ie7 || ((event.which == 13 || event.which == 27) && event.type == 'keyup')) { - if (event.which == 13) { - this.switchPage(parseInt($(event.currentTarget).val())); - } - - if (event.which == 13 || event.which == 27) { - this._stopInput(event); - event.stopPropagation(); - } - } - } - } -}); - -/** - * Encapsulate eval() within an own function to prevent problems - * with optimizing and minifiny JS. - * - * @param mixed expression - * @returns mixed - */ -function wcfEval(expression) { - return eval(expression); -} +/** + * Class and function collection for WCF + * + * @author Tim Düsterhus, Alexander Ebert + * @copyright 2001-2011 WoltLab GmbH + * @license GNU Lesser General Public License + */ + +/** + * Initialize WCF namespace + */ +var WCF = {}; + +/** + * Extends jQuery with additional methods. + */ +$.extend(true, { + /** + * Escapes an ID to work with jQuery selectors. + * + * @see http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F + * @param string id + * @return string + */ + wcfEscapeID: function(id) { + return id.replace(/(:|\.)/g, '\\$1'); + }, + + /** + * Returns true if given ID exists within DOM. + * + * @param string id + * @return boolean + */ + wcfIsset: function(id) { + return !!$('#' + $.wcfEscapeID(id)).length; + } +}); + +/** + * Extends jQuery's chainable methods. + */ +$.fn.extend({ + /** + * Returns tag name of current jQuery element. + * + * @returns string + */ + getTagName: function() { + return this.get(0).tagName.toLowerCase(); + }, + + /** + * Returns the dimensions for current element. + * + * @see http://api.jquery.com/hidden-selector/ + * @param string type + * @return object + */ + getDimensions: function(type) { + var dimensions = css = {}; + var wasHidden = false; + + // show element to retrieve dimensions and restore them later + if (this.is(':hidden')) { + css = { + display: this.css('display'), + visibility: this.css('visibility') + }; + + wasHidden = true; + + this.css({ + display: 'block', + visibility: 'hidden' + }); + } + + switch (type) { + case 'inner': + dimensions = { + height: this.innerHeight(), + width: this.innerWidth() + }; + break; + + case 'outer': + dimensions = { + height: this.outerHeight(), + width: this.outerWidth() + }; + break; + + default: + dimensions = { + height: this.height(), + width: this.width() + }; + break; + } + + // restore previous settings + if (wasHidden) { + this.css(css); + } + + return dimensions; + }, + + /** + * Returns the offsets for current element, defaults to position + * relative to document. + * + * @see http://api.jquery.com/hidden-selector/ + * @param string type + * @return object + */ + getOffsets: function(type) { + var offsets = css = {}; + var wasHidden = false; + + // show element to retrieve dimensions and restore them later + if (this.is(':hidden')) { + css = { + display: this.css('display'), + visibility: this.css('visibility') + }; + + wasHidden = true; + + this.css({ + display: 'block', + visibility: 'hidden' + }); + } + + switch (type) { + case 'offset': + offsets = this.offset(); + break; + + case 'position': + default: + offsets = this.position(); + break; + } + + // restore previous settings + if (wasHidden) { + this.css(css); + } + + return offsets; + }, + + /** + * Changes element's position to 'absolute' or 'fixed' while maintaining it's + * current position relative to viewport. Optionally removes element from + * current DOM-node and moving it into body-element (useful for drag & drop) + * + * @param boolean rebase + * @return object + */ + makePositioned: function(position, rebase) { + if (position != 'absolute' && position != 'fixed') { + position = 'absolute'; + } + + var $currentPosition = this.getOffsets('position'); + this.css({ + position: position, + left: $currentPosition.left, + margin: 0, + top: $currentPosition.top + }); + + if (rebase) { + this.remove().appentTo('body'); + } + + return this; + }, + + /** + * Disables a form element. + * + * @return jQuery + */ + disable: function() { + return this.attr('disabled', 'disabled'); + }, + + /** + * Enables a form element. + * + * @return jQuery + */ + enable: function() { + return this.removeAttr('disabled'); + }, + + /** + * Applies a grow-effect by resizing element while moving the + * element appropriately + * + * @param object data + * @param object options + * @return jQuery + */ + wcfGrow: function(data, options) { + // create temporarily element to determine dimensions + var $tempElementID = WCF.getRandomID(); + $('body').append('
                ' + data.content + '
                '); + var $tempElement = $('#' + $tempElementID); + + // get content dimensions + var $dimensions = $tempElement.getDimensions(); + + // remove temporarily element + $tempElement.empty().remove(); + + // move parent element, used if applying effect on dialogs + if (!data.parent) { + data.parent = this; + } + + // calculate values for grow-effect + var $borderHeight = parseInt(data.parent.css('borderTopWidth')) + parseInt(data.parent.css('borderBottomWidth')); + var $borderWidth = parseInt(data.parent.css('borderLeftWidth')) + parseInt(data.parent.css('borderRightWidth')); + + var $windowDimensions = $(window).getDimensions(); + var $leftOffset = Math.round(($windowDimensions.width - ($dimensions.width + $borderWidth)) / 2); + var $topOffset = Math.round(($windowDimensions.height - ($dimensions.height + $borderHeight)) / 2); + + data.parent.makePositioned('fixed', false); + data.parent.animate({ + left: $leftOffset + 'px', + top: $topOffset + 'px' + }, options); + + return this.animate({ + height: $dimensions.height, + width: $dimensions.width + }, options); + }, + + /** + * Shows an element by sliding and fading it into viewport. + * + * @param string direction + * @param object callback + * @returns jQuery + */ + wcfDropIn: function(direction, callback) { + if (!direction) direction = 'up'; + + return this.show(WCF.getEffect(this.getTagName(), 'drop'), { direction: direction }, 600, callback); + }, + + /** + * Hides an element by sliding and fading it out the viewport. + * + * @param string direction + * @param object callback + * @returns jQuery + */ + wcfDropOut: function(direction, callback) { + if (!direction) direction = 'down'; + + return this.hide(WCF.getEffect(this.getTagName(), 'drop'), { direction: direction }, 600, callback); + }, + + /** + * Shows an element by blinding it up. + * + * @param string direction + * @param object callback + * @returns jQuery + */ + wcfBlindIn: function(direction, callback) { + if (!direction) direction = 'vertical'; + + return this.show(WCF.getEffect(this.getTagName(), 'blind'), { direction: direction }, 200, callback); + }, + + /** + * Hides an element by blinding it down. + * + * @param string direction + * @param object callback + * @returns jQuery + */ + wcfBlindOut: function(direction, callback) { + if (!direction) direction = 'vertical'; + + return this.hide(WCF.getEffect(this.getTagName(), 'blind'), { direction: direction }, 200, callback); + }, + + /** + * Highlights an element. + * + * @param object options + * @param object callback + * @returns jQuery + */ + wcfHighlight: function(options, callback) { + return this.effect('highlight', options, 600, callback); + } +}); + +/** + * WoltLab Community Framework core methods + */ +$.extend(WCF, { + /** + * Counter for dynamic element id's + * + * @var integer + */ + _idCounter: 0, + + /** + * Shows a modal dialog with a built-in AJAX-loader. + * + * @param string dialogID + * @param boolean resetDialog + */ + showAJAXDialog: function(dialogID, resetDialog) { + if (!dialogID) { + dialogID = this.getRandomID(); + } + + if (!$.wcfIsset(dialogID)) { + $('body').append($('
                ')); + } + + var dialog = $('#' + $.wcfEscapeID(dialogID)); + + if (resetDialog) { + dialog.empty(); + } + + dialog.addClass('overlayLoading'); + + var dialogOptions = arguments[2] || {}; + dialog.wcfAJAXDialog(dialogOptions); + }, + + /** + * Shows a modal dialog. + * @param string dialogID + */ + showDialog: function(dialogID) { + // we cannot work with a non-existant dialog, if you wish to + // load content via AJAX, see showAJAXDialog() instead + if (!$.wcfIsset(dialogID)) return; + + var $dialog = $('#' + $.wcfEscapeID(dialogID)); + + var dialogOptions = arguments[2] || {}; + $dialog.wcfDialog(dialogOptions); + }, + + /** + * Returns a dynamically created id. + * + * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/dom/dom.js#L1789 + * @return string + */ + getRandomID: function() { + var $elementID = ''; + + do { + $elementID = 'wcf' + this._idCounter++; + } + while ($.wcfIsset($elementID)); + + return $elementID; + }, + + /** + * Wrapper for $.inArray which returns boolean value instead of + * index value, similar to PHP's in_array(). + * + * @param mixed needle + * @param array haystack + * @return boolean + */ + inArray: function(needle, haystack) { + return ($.inArray(needle, haystack) != -1); + }, + + /** + * Adjusts effect for partially supported elements. + * + * @param object object + * @param string effect + * @return string + */ + getEffect: function(tagName, effect) { + // most effects are not properly supported on table rows, use highlight instead + if (tagName == 'tr') { + return 'highlight'; + } + + return effect; + } +}); + +/** + * Provides a simple call for periodical executed functions. Based upon + * ideas by Prototype's PeriodicalExecuter. + * + * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/periodical_executer.js + * @param function callback + * @param integer delay + */ +WCF.PeriodicalExecuter = function(callback, delay) { this.init(callback, delay); }; +WCF.PeriodicalExecuter.prototype = { + /** + * Initializes a periodical executer. + * + * @param function callback + * @param integer delay + */ + init: function(callback, delay) { + this.callback = callback; + this.delay = delay; + this.loop = true; + + this.intervalID = setInterval($.proxy(this._execute, this), this.delay); + }, + + /** + * Executes callback. + */ + _execute: function() { + this.callback(this); + + if (!this.loop) { + clearInterval(this.intervalID); + } + }, + + /** + * Terminates loop. + */ + stop: function() { + this.loop = false; + } +}; + +/** + * Namespace for AJAXProxies + */ +WCF.Action = {}; + +/** + * Basic implementation for AJAX-based proxyies + * + * @param object options + */ +WCF.Action.Proxy = function(options) { this.init(options); }; +WCF.Action.Proxy.prototype = { + /** + * Initializes AJAXProxy. + * + * @param object options + */ + init: function(options) { + // initialize default values + this.options = $.extend(true, { + autoSend: false, + data: { }, + after: null, + init: null, + failure: null, + success: null, + type: 'POST', + url: 'index.php?action=AJAXProxy&t=' + SECURITY_TOKEN + SID_ARG_2ND + }, options); + + this.confirmationDialog = null; + this.loading = null; + + // send request immediately after initialization + if (this.options.autoSend) { + this.sendRequest(); + } + }, + + /** + * Sends an AJAX request. + */ + sendRequest: function() { + this._init(); + + $.ajax({ + data: this.options.data, + dataType: 'json', + type: this.options.type, + url: this.options.url, + success: $.proxy(this._success, this), + error: $.proxy(this._failure, this) + }); + }, + + /** + * Fires before request is send, displays global loading status. + */ + _init: function() { + if ($.isFunction(this.options.init)) { + this.options.init(); + } + + $('').appendTo($('body')); + this.loading = $('#actionProxyLoading'); + this.loading.wcfDropIn(); + }, + + /** + * Handles AJAX errors. + * + * @param object jqXHR + * @param string textStatus + * @param string errorThrown + */ + _failure: function(jqXHR, textStatus, errorThrown) { + try { + var data = $.parseJSON(jqXHR.responseText); + + // call child method if applicable + if ($.isFunction(this.options.failure)) { + this.options.failure(jqXHR, textStatus, errorThrown, data); + } + + var $randomID = WCF.getRandomID(); + $('

                Der Server antwortete: ' + data.message + '.

                ').wcfDialog(); + } + // failed to parse JSON + catch (e) { + var $randomID = WCF.getRandomID(); + $('

                Der Server antwortete: ' + jqXHR.responseText + '.

                ').wcfDialog(); + } + + this._after(); + }, + + /** + * Handles successful AJAX requests. + * + * @param object data + * @param string textStatus + * @param object jqXHR + */ + _success: function(data, textStatus, jqXHR) { + // call child method if applicable + if ($.isFunction(this.options.success)) { + this.options.success(data, textStatus, jqXHR); + } + + this._after(); + }, + + /** + * Fires after an AJAX request, hides global loading status. + */ + _after: function() { + if ($.isFunction(this.options.after)) { + this.options.after(); + } + + this.loading.wcfDropOut('up'); + }, + + /** + * Sets options, MUST be used to set parameters before sending request + * if calling from child classes. + * + * @param string optionName + * @param mixed optionData + */ + setOption: function(optionName, optionData) { + this.options[optionName] = optionData; + } +}; + +/** + * Basic implementation for simple proxy access using bound elements. + * + * @param object options + * @param object callbacks + */ +WCF.Action.SimpleProxy = function(options, callbacks) { this.init(options, callbacks); }; +WCF.Action.SimpleProxy.prototype = { + /** + * Initializes SimpleProxy. + * + * @param object options + * @param object callbacks + */ + init: function(options, callbacks) { + /** + * action-specific options + */ + this.options = $.extend(true, { + action: '', + className: '', + elements: null, + eventName: 'click' + }, options); + + /** + * proxy-specific options + */ + this.callbacks = $.extend(true, { + after: null, + failure: null, + init: null, + success: null + }, callbacks); + + if (!this.options.elements) return; + + // initialize proxy + this.proxy = new WCF.Action.Proxy(this.callbacks); + + // bind event listener + this.options.elements.each($.proxy(function(index, element) { + $(element).bind(this.options.eventName, $.proxy(this._handleEvent, this)); + }, this)); + }, + + /** + * Handles event actions. + * + * @param object event + */ + _handleEvent: function(event) { + this.proxy.setOption('data', { + actionName: this.options.action, + className: this.options.className, + objectIDs: [ $(event.target).data('objectID') ] + }); + + this.proxy.sendRequest(); + } +}; + +/** + * Basic implementation for AJAXProxy-based deletion. + * + * @param string className + * @param jQuery containerList + */ +WCF.Action.Delete = function(className, containerList) { this.init(className, containerList); }; +WCF.Action.Delete.prototype = { + /** + * Initializes 'delete'-Proxy. + * + * @param string className + * @param jQuery containerList + */ + init: function(className, containerList) { + if (!containerList.length) return; + this.containerList = containerList; + this.className = className; + + // initialize proxy + var options = { + success: $.proxy(this._success, this) + }; + this.proxy = new WCF.Action.Proxy(options); + + // bind event listener + this.containerList.each($.proxy(function(index, container) { + $(container).find('.deleteButton').bind('click', $.proxy(this._click, this)); + }, this)); + }, + + /** + * Sends AJAX request. + * + * @param object event + */ + _click: function(event) { + var $target = $(event.target); + + if ($target.data('confirmMessage')) { + if (confirm($target.data('confirmMessage'))) { + this._sendRequest($target); + } + } + else { + this._sendRequest($target); + } + + }, + + _sendRequest: function(object) { + this.proxy.setOption('data', { + actionName: 'delete', + className: this.className, + objectIDs: [ $(object).data('objectID') ] + }); + + this.proxy.sendRequest(); + }, + + /** + * Deletes items from containers. + * + * @param object data + * @param string textStatus + * @param object jqXHR + */ + _success: function(data, textStatus, jqXHR) { + // remove items + this.containerList.each(function(index, container) { + var $objectID = $(container).find('.deleteButton').data('objectID'); + if (WCF.inArray($objectID, data.objectIDs)) { + $(container).wcfBlindOut('up', function() { + $(container).empty().remove(); + }, container); + } + }); + } +}; + +/** + * Basic implementation for AJAXProxy-based toggle actions. + * + * @param string className + * @param jQuery containerList + */ +WCF.Action.Toggle = function(className, containerList) { this.init(className, containerList); }; +WCF.Action.Toggle.prototype = { + /** + * Initializes 'toggle'-Proxy + * + * @param string className + * @param jQuery containerList + */ + init: function(className, containerList) { + if (!containerList.length) return; + this.containerList = containerList; + this.className = className; + + // initialize proxy + var options = { + success: $.proxy(this._success, this) + }; + this.proxy = new WCF.Action.Proxy(options); + + // bind event listener + this.containerList.each($.proxy(function(index, container) { + $(container).find('.toggleButton').bind('click', $.proxy(this._click, this)); + }, this)); + }, + + /** + * Sends AJAX request. + * + * @param object event + */ + _click: function(event) { + this.proxy.setOption('data', { + actionName: 'toggle', + className: this.className, + objectIDs: [ $(event.target).data('objectID') ] + }); + + this.proxy.sendRequest(); + }, + + /** + * Toggles status icons. + * + * @param object data + * @param string textStatus + * @param object jqXHR + */ + _success: function(data, textStatus, jqXHR) { + // remove items + this.containerList.each(function(index, container) { + var $toggleButton = $(container).find('.toggleButton'); + if (WCF.inArray($toggleButton.data('objectID'), data.objectIDs)) { + $(container).wcfHighlight(); + + // toggle icon source + $toggleButton.attr('src', function() { + if (this.src.match(/enabled(S|M|L)\.png$/)) { + return this.src.replace(/enabled(S|M|L)\.png$/, 'disabled$1\.png'); + } + else { + return this.src.replace(/disabled(S|M|L)\.png$/, 'enabled$1\.png'); + } + }); + // toogle icon title + $toggleButton.attr('title', function() { + if (this.src.match(/enabled(S|M|L)\.png$/)) { + return $(this).data('disableMessage'); + } + else { + return $(this).data('enableMessage'); + } + }); + } + }); + } +}; + +/** + * Namespace for date-related functions. + */ +WCF.Date = {}; + +/** + * Provides utility functions for date operations. + */ +WCF.Date.Util = { + /** + * Returns UTC timestamp, if date is not given, current time will be used. + * + * @param Date date + * @return integer + */ + gmdate: function(date) { + var $date = (date) ? date : new Date(); + + return Math.round(Date.UTC( + $date.getUTCFullYear(), + $date.getUTCMonth(), + $date.getUTCDay(), + $date.getUTCHours(), + $date.getUTCMinutes(), + $date.getUTCSeconds() + ) / 1000); + }, + + /** + * Returns a Date object with precise offset (including timezone and local timezone). + * Parameter timestamp must be in miliseconds! + * + * @param integer timestamp + * @param integer offset + * @return Date + */ + getTimezoneDate: function(timestamp, offset) { + var $date = new Date(timestamp); + var $localOffset = $date.getTimezoneOffset() * -1 * 60000; + + return new Date((timestamp - $localOffset - offset)); + } +}; + +/** + * Handles relative time designations. + */ +WCF.Date.Time = function() { this.init(); }; +WCF.Date.Time.prototype = { + /** + * Initializes relative datetimes. + */ + init: function() { + // initialize variables + this.elements = $('time.datetime'); + this.timestamp = 0; + + // calculate relative datetime on init + this._refresh(); + + // re-calculate relative datetime every minute + new WCF.PeriodicalExecuter($.proxy(this._refresh, this), 60000); + }, + + /** + * Refreshes relative datetime for each element. + */ + _refresh: function() { + // TESTING ONLY! + var $date = new Date(); + this.timestamp = ($date.getTime() - $date.getMilliseconds()) / 1000; + // TESTING ONLY! + + this.elements.each($.proxy(this._refreshElement, this)); + }, + + /** + * Refreshes relative datetime for current element. + * + * @param integer index + * @param object element + */ + _refreshElement: function(index, element) { + if (!$(element).attr('title')) { + $(element).attr('title', $(element).text()); + } + + var $timestamp = $(element).data('timestamp'); + var $date = $(element).data('date'); + var $time = $(element).data('time'); + var $offset = $(element).data('offset'); + + // timestamp is less than 60 minutes ago (display 1 hour ago rather than 60 minutes ago) + if (this.timestamp < ($timestamp + 3540)) { + var $minutes = Math.round((this.timestamp - $timestamp) / 60); + $(element).text(eval(WCF.Language.get('wcf.global.date.relative.minutes'))); + } + // timestamp is less than 24 hours ago + else if (this.timestamp < ($timestamp + 86400)) { + var $hours = Math.round((this.timestamp - $timestamp) / 3600); + $(element).text(eval(WCF.Language.get('wcf.global.date.relative.hours'))); + } + // timestamp is less than a week ago + else if (this.timestamp < ($timestamp + 604800)) { + var $days = Math.round((this.timestamp - $timestamp) / 86400); + var $string = eval(WCF.Language.get('wcf.global.date.relative.pastDays')); + + // get day of week + var $dateObj = WCF.Date.Util.getTimezoneDate(($timestamp * 1000), $offset); + var $dow = $dateObj.getDay(); + + $(element).text($string.replace(/\%day\%/, WCF.Language.get('__days')[$dow]).replace(/\%time\%/, $time)); + } + // timestamp is between ~700 million years BC and last week + else { + var $string = WCF.Language.get('wcf.global.date.dateTimeFormat'); + $(element).text($string.replace(/\%date\%/, $date).replace(/\%time\%/, $time)); + } + } +}; + +/** + * Hash-like dictionary. Based upon idead from Prototype's hash + * + * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/hash.js + */ +WCF.Dictionary = function() { this.init(); }; +WCF.Dictionary.prototype = { + /** + * Initializes a new dictionary. + */ + init: function() { + this.variables = { }; + }, + + /** + * Adds an entry. + * + * @param string key + * @param mixed value + */ + add: function(key, value) { + this.variables[key] = value; + }, + + /** + * Adds a traditional object to current dataset. + * + * @param object object + */ + addObject: function(object) { + for (var $key in object) { + this.add($key, object[$key]); + } + }, + + /** + * Adds a dictionary to current dataset. + * + * @param object dictionary + */ + addDictionary: function(dictionary) { + dictionary.each($.proxy(function(pair) { + this.add(pair.key, pair.value); + }, this)); + }, + + /** + * Retrieves the value of an entry or returns null if key is not found. + * + * @param string key + * @returns mixed + */ + get: function(key) { + if (this.isset(key)) { + return this.variables[key]; + } + + return null; + }, + + /** + * Returns true if given key is a valid entry. + * + * @param string key + */ + isset: function(key) { + return this.variables.hasOwnProperty(key); + }, + + /** + * Removes an entry. + * + * @param string key + */ + remove: function(key) { + delete this.variables[key]; + }, + + /** + * Iterates through dictionary. + * + * Usage: + * var $hash = new WCF.Dictionary(); + * $hash.add('foo', 'bar'); + * $hash.each(function(pair) { + * // alerts: foo = bar + * alert(pair.key + ' = ' + pair.value); + * }); + * + * @param function callback + */ + each: function(callback) { + if (!$.isFunction(callback)) { + return; + } + + for (var $key in this.variables) { + var $value = this.variables[$key]; + var $pair = { + key: $key, + value: $value + }; + + callback($pair); + } + } +}; + +/** + * Global language storage. + * + * @see WCF.Dictionary + */ +WCF.Language = { + _variables: new WCF.Dictionary(), + + /** + * @see WCF.Dictionary.addObject() + */ + add: function(key, value) { + this._variables.add(key, value); + }, + + /** + * @see WCF.Dictionary.addObject() + */ + addObject: function(object) { + this._variables.addObject(object); + }, + + /** + * Retrieves a variable. + * + * @param string key + * @return mixed + */ + get: function(key) { + return this._variables.get(key); + } +}; + +/** + * String utilities. + */ +WCF.String = { + /** + * Escapes special HTML-characters within a string + * + * @param string string + * @return string + */ + escapeHTML: function (string) { + return string.replace(/&/g, '&').replace(/"/g, '"').replace(//g, '>'); + }, + + /** + * Escapes a String to work with RegExp. + * + * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/regexp.js#L25 + * @param string string + * @return string + */ + escapeRegExp: function(string) { + return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); + }, + + /** + * Makes a string's first character uppercase + * + * @param string string + * @return string + */ + ucfirst: function(string) { + return string.substring(0, 1).toUpperCase() + string.substring(1); + }, + + /** + * Adds thousands separators to a given number. + * + * @param mixed number + * @return string + */ + addThousandsSeparator: function(number) { + var $numberString = String(number); + if (number >= 1000 || number <= -1000) { + var $negative = false; + if (number <= -1000) { + $negative = true; + $numberString = $numberString.substring(1); + } + var $separator = WCF.Language.get('wcf.global.thousandsSeparator'); + + if ($separator != null && $separator != '') { + var $numElements = new Array(); + var $firstPart = $numberString.length % 3 + if ($firstPart == 0) $firstPart = 3; + for (var $i = 0; $i < Math.ceil($numberString.length / 3); $i++) { + if ($i == 0) $numElements.push($numberString.substring(0, $firstPart)); + else { + var $start = (($i - 1) * 3) + $firstPart + $numElements.push($numberString.substring($start, $start + 3)); + } + } + $numberString = (($negative) ? ('-') : ('')) + $numElements.join($separator); + } + } + + return $numberString; + } +}; + +/** + * Basic implementation for WCF TabMenus. Use the data attributes 'active' to specify the + * tab which should be shown on init. Furthermore you may specify a 'store' data-attribute + * which will be filled with the currently selected tab. + */ +WCF.TabMenu = { + /** + * Initializes all TabMenus + */ + init: function() { + $('.tabMenuContainer').each(function(index, tabMenu) { + if (!$(tabMenu).attr('id')) { + var $randomID = WCF.getRandomID(); + $(tabMenu).attr('id', $randomID); + } + + // init jQuery UI TabMenu + $(tabMenu).wcfTabs({ + select: function(event, ui) { + var $panel = $(ui.panel); + var $container = $panel.closest('.tabMenuContainer'); + + // store currently selected item + if ($container.data('store')) { + if ($.wcfIsset($container.data('store'))) { + $('#' + $container.data('store')).attr('value', $panel.attr('id')); + } + } + } + }); + + // display active item on init + if ($(tabMenu).data('active')) { + $(tabMenu).find('.tabMenuContent').each(function(index, tabMenuItem) { + if ($(tabMenuItem).attr('id') == $(tabMenu).data('active')) { + $(tabMenu).wcfTabs('select', index); + } + }); + } + }); + } +}; + +/** + * Templates that may be fetched more than once with different variables. Based upon ideas from Prototype's template + * + * Usage: + * var myTemplate = new WCF.Template('{$hello} World'); + * myTemplate.fetch({ hello: 'Hi' }); // Hi World + * myTemplate.fetch({ hello: 'Hello' }); // Hello World + * + * my2ndTemplate = new WCF.Template('{@$html}{$html}'); + * my2ndTemplate.fetch({ html: 'Test' }); // Test<b>Test</b> + * + * var my3rdTemplate = new WCF.Template('You can use {literal}{$variable}{/literal}-Tags here'); + * my3rdTemplate.fetch({ variable: 'Not shown' }); // You can use {$variable}-Tags here + * + * + * @param template template-content + * @see https://github.com/sstephenson/prototype/blob/master/src/prototype/lang/template.js + */ +WCF.Template = function(template) { this.init(template); }; +WCF.Template.prototype = { + /** + * Template-content + * + * @var string + */ + _template: '', + + /** + * Saved literal-tags + * + * @var WCF.Dictionary + */ + _literals: new WCF.Dictionary(), + + /** + * Prepares template + * + * @param $template template-content + */ + init: function($template) { + this._template = $template; + + // save literal-tags + this._template = this._template.replace(/\{literal\}(.*?)\{\/literal\}/g, $.proxy(function ($match) { + // hopefully no one uses this string in one of his templates + var id = '@@@@@@@@@@@'+Math.random()+'@@@@@@@@@@@'; + this._literals.add(id, $match.replace(/\{\/?literal\}/g, '')); + + return id; + }, this)); + }, + + /** + * Fetches the template with the given variables + * + * @param $variables variables to insert + * @return parsed template + */ + fetch: function($variables) { + var $result = this._template; + + // insert them :) + for (var $key in $variables) { + $result = $result.replace(new RegExp(WCF.String.escapeRegExp('{$'+$key+'}'), 'g'), WCF.String.escapeHTML($variables[$key])); + $result = $result.replace(new RegExp(WCF.String.escapeRegExp('{@$'+$key+'}'), 'g'), $variables[$key]); + } + + // insert delimiter tags + $result = $result.replace('{ldelim}', '{').replace('{rdelim}', '}'); + + // and re-insert saved literals + return this.insertLiterals($result); + }, + + /** + * Inserts literals into given string + * + * @param $template string to insert into + * @return string with inserted literals + */ + insertLiterals: function ($template) { + this._literals.each(function ($pair) { + $template = $template.replace($pair.key, $pair.value); + }); + + return $template; + }, + + /** + * Compiles this template into javascript-code + * + * @return WCF.Template.Compiled + */ + compile: function () { + var $compiled = this._template; + + // escape \ and ' + $compiled = $compiled.replace('\\', '\\\\').replace("'", "\\'"); + + // parse our variable-tags + $compiled = $compiled.replace(/\{\$(.*?)\}/g, function ($match) { + var $name = '$v.' + $match.substring(2, $match.length - 1); + // trinary operator to maintain compatibility with uncompiled template + // ($name) ? $name : '$match' + // -> $v.muh ? $v.muh : '{$muh}' + return "' + WCF.String.escapeHTML("+ $name + " ? " + $name + " : '" + $match + "') + '"; + }).replace(/\{@\$(.*?)\}/g, function ($match) { + var $name = '$v.' + $match.substring(3, $match.length - 1); + // trinary operator to maintain compatibility with uncompiled template + // ($name) ? $name : '$match' + // -> $v.muh ? $v.muh : '{$muh}' + return "' + ("+ $name + " ? " + $name + " : '" + $match + "') + '"; + }); + + // insert delimiter tags + $compiled = $compiled.replace('{ldelim}', '{').replace('{rdelim}', '}'); + + // and re-insert saved literals + return new WCF.Template.Compiled("'" + this.insertLiterals($compiled) + "';"); + } +}; + +/** + * Represents a compiled template + * + * @param compiled compiled template + */ +WCF.Template.Compiled = function(compiled) { this.init(compiled); }; +WCF.Template.Compiled.prototype = { + /** + * Compiled template + * + * @var string + */ + _compiled: '', + + /** + * Initializes our compiled template + * + * @param $compiled compiled template + */ + init: function($compiled) { + this._compiled = $compiled; + }, + + /** + * @see WCF.Template.fetch + */ + fetch: function($v) { + return eval(this._compiled); + } +}; + +/** + * Toggles options. + * + * @param string element + * @param array showItems + * @param array hideItems + */ +WCF.ToggleOptions = function(element, showItems, hideItems) { this.init(element, showItems, hideItems); }; +WCF.ToggleOptions.prototype = { + /** + * target item + * + * @var jQuery + */ + _element: null, + + /** + * list of items to be shown + * + * @var array + */ + _showItems: [], + + /** + * list of items to be hidden + * + * @var array + */ + _hideItems: [], + + /** + * Initializes option toggle. + * + * @param string element + * @param array showItems + * @param array hideItems + */ + init: function(element, showItems, hideItems) { + this._element = $('#' + element); + this._showItems = showItems; + this._hideItems = hideItems; + + // bind event + this._element.click($.proxy(this._toggle, this)); + + // execute toggle on init + this._toggle(); + }, + + /** + * Toggles items. + */ + _toggle: function() { + if (!this._element.attr('checked')) return; + + for (var $i = 0, $length = this._showItems.length; $i < $length; $i++) { + var $item = this._showItems[$i]; + + $('#' + $item).show(); + } + + for (var $i = 0, $length = this._hideItems.length; $i < $length; $i++) { + var $item = this._hideItems[$i]; + + $('#' + $item).hide(); + } + } +}; + +/** + * Basic implementation for WCF dialogs. + */ +$.widget('ui.wcfDialog', $.ui.dialog, { + _init: function() { + this.options.autoOpen = true; + this.options.close = function(event, ui) { + $(this).parent('.ui-dialog').wcfDropOut('down', $.proxy(function() { + $(this).parent('.ui-dialog').empty().remove(); + }, this)); + }; + this.options.height = 'auto'; + this.options.minHeight = 0; + this.options.modal = true; + this.options.width = 'auto'; + + $.ui.dialog.prototype._init.apply(this, arguments); + } +}); + +/** + * Basic implementation for WCF dialogs loading content + * via AJAX before calling dialog itself. + */ +$.widget('ui.wcfAJAXDialog', $.ui.dialog, { + /** + * Indicates wether callback was already executed + * + * @var boolean + */ + _callbackExecuted: false, + + /** + * Initializes AJAX-request to fetch content. + */ + _init: function() { + if (this.options.ajax) { + this._loadContent(); + } + + // force dialog to be placed centered + this.options.position = { + my: 'center center', + at: 'center center' + }; + + // dialog should display a spinner-like image, thus immediately fire up dialog + this.options.autoOpen = true; + this.options.width = 'auto'; + this.options.minHeight = 80; + + // disable ability to move dialog + this.options.resizable = false; + this.options.draggable = false; + + this.options.modal = true; + this.options.hide = { + effect: 'drop', + direction: 'down' + }; + + this.options.close = function(event, ui) { + // loading ajax content seems to block properly closing + $(this).parent('.ui-dialog').empty().remove(); + }; + + if (this.options.preventClose) { + this.options.closeOnEscape = false; + } + + $.ui.dialog.prototype._init.apply(this, arguments); + + // remove complete node instead of removing node-by-node + if (this.options.hideTitle && this.options.preventClose) { + this.element.parent('.ui-dialog').find('div.ui-dialog-titlebar').empty().remove(); + } + else { + if (this.options.hideTitle) { + // remove title element + $('#ui-dialog-title-' + this.element.attr('id')).empty().remove(); + } + + if (this.options.preventClose) { + // remove close-button + this.element.parent('.ui-dialog').find('a.ui-dialog-titlebar-close').empty().remove(); + } + } + }, + + /** + * Loads content via AJAX. + * + * @todo Enforce JSON + */ + _loadContent: function() { + var $type = 'GET'; + if (this.options.ajax.type) { + $type = this.options.ajax.type; + + if (this.options.ajax.type != 'GET' && this.options.ajax.type != 'POST') { + $type = 'GET'; + } + } + + var $data = this.options.ajax.data || {}; + + $.ajax({ + url: this.options.ajax.url, + context: this, + dataType: 'json', + type: $type, + data: $data, + success: $.proxy(this._createDialog, this), + error: function(transport) { + alert(transport.responseText); + } + }); + }, + + /** + * Inserts content. + * + * @param string data + */ + _createDialog: function(data) { + data.ignoreTemplate = true; + this.element.data('responseData', data); + + this.element.wcfGrow({ + content: data.template, + parent: this.element.parent('.ui-dialog') + }, { + duration: 600, + complete: $.proxy(function(data) { + this.element.css({ + height: 'auto' + }); + + // prevent double execution due to two complete-calls (two times animate) + if (this._callbackExecuted) { + return; + } + + this._callbackExecuted = true; + + this.element.removeClass('overlayLoading'); + this.element.html(this.element.data('responseData').template); + + if (this.options.ajax.success) { + this.options.ajax.success(); + } + }, this) + }); + }, + + /** + * Redraws dialog, should be executed everytime content is changed. + */ + redraw: function() { + var $dimensions = this.element.getDimensions(); + + if ($dimensions.height > 200) { + this.element.wcfGrow({ + content: this.element.html(), + parent: this.element.parent('.ui-dialog') + }, { + duration: 600, + complete: function() { + $(this).css({ height: 'auto' }); + } + }); + } + } +}); + +/** + * Workaround for ids containing a dot ".", until jQuery UI devs learn + * to properly escape ids ... (it took 18 months until they finally + * fixed it!) + * + * @see http://bugs.jqueryui.com/ticket/4681 + */ +$.widget('ui.wcfTabs', $.ui.tabs, { + _init: function() { + $.ui.dialog.prototype._init.apply(this, arguments); + }, + + _sanitizeSelector: function(hash) { + return hash.replace(/([:\.])/g, '\\$1'); + } +}); + +/** + * jQuery widget implementation of the wcf pagination. + */ +$.widget('ui.wcfPages', { + SHOW_LINKS: 11, + SHOW_SUB_LINKS: 20, + + options: { + // vars + activePage: 1, + maxPage: 1, + + // icons + previousIcon: RELATIVE_WCF_DIR + 'icon/previousS.png', + previousDisabledIcon: RELATIVE_WCF_DIR + 'icon/previousDisabledS.png', + arrowDownIcon: RELATIVE_WCF_DIR + 'icon/arrowDown.png', + nextIcon: RELATIVE_WCF_DIR + 'icon/nextS.png', + nextDisabledIcon: RELATIVE_WCF_DIR + 'icon/nextDisabledS.png', + + // language + // we use options here instead of language variables, because the paginator is not only usable with pages + nextPage: null, + previousPage: null, + }, + + /** + * Creates the pages widget. + */ + _create: function() { + if (this.options.nextPage === null) this.options.nextPage = WCF.Language.get('wcf.global.page.next'); + if (this.options.previousPage === null) this.options.previousPage = WCF.Language.get('wcf.global.page.previous'); + + this.element.addClass('pageNavigation'); + + this._render(); + }, + + /** + * Destroys the pages widget. + */ + destroy: function() { + $.Widget.prototype.destroy.apply(this, arguments); + + this.element.children().remove(); + }, + + /** + * Renders th pages widget. + */ + _render: function() { + // only render if we have more than 1 page + if (!this.options.disabled && this.options.maxPage > 1) { + // make sure pagination is visible + if (this.element.hasClass('hidden')) { + this.element.removeClass('hidden'); + } + this.element.show(); + + this.element.children().remove(); + + var $pageList = $('
                  '); + this.element.append($pageList); + + var $previousElement = $('
                • '); + $pageList.append($previousElement); + + if (this.options.activePage > 1) { + var $previousLink = $(''); + $previousElement.append($previousLink); + this._bindSwitchPage($previousLink, this.options.activePage - 1); + + var $previousImage = $(''); + $previousLink.append($previousImage); + } + else { + var $previousImage = $(''); + $previousElement.append($previousImage); + } + $previousElement.addClass('skip'); + + // add first page + $pageList.append(this._renderLink(1)); + + // calculate page links + var $maxLinks = this.SHOW_LINKS - 4; + var $linksBefore = this.options.activePage - 2; + if ($linksBefore < 0) $linksBefore = 0; + var $linksAfter = this.options.maxPage - (this.options.activePage + 1); + if ($linksAfter < 0) $linksAfter = 0; + if (this.options.activePage > 1 && this.options.activePage < this.options.maxPage) $maxLinks--; + + var $half = $maxLinks / 2; + var $left = this.options.activePage; + var $right = this.options.activePage; + if ($left < 1) $left = 1; + if ($right < 1) $right = 1; + if ($right > this.options.maxPage - 1) $right = this.options.maxPage - 1; + + if ($linksBefore >= $half) { + $left -= $half; + } + else { + $left -= $linksBefore; + $right += $half - $linksBefore; + } + + if ($linksAfter >= $half) { + $right += $half; + } + else { + $right += $linksAfter; + $left -= $half - $linksAfter; + } + + $right = Math.ceil($right); + $left = Math.ceil($left); + if ($left < 1) $left = 1; + if ($right > this.options.maxPage) $right = this.options.maxPage; + + // left ... links + if ($left > 1) { + if ($left - 1 < 2) { + $pageList.append(this._renderLink(2)); + } + else { + var $leftChildren = $('
                • '); + $pageList.append($leftChildren); + + var $leftChildrenLink = $(''); + $leftChildren.append($leftChildrenLink); + $leftChildrenLink.click($.proxy(this._startInput, this)); + + var $leftChildrenImage = $(''); + $leftChildrenLink.append($leftChildrenImage); + + var $leftChildrenInput = $(''); + $leftChildren.append($leftChildrenInput); + $leftChildrenInput.keydown($.proxy(this._handleInput, this)); + $leftChildrenInput.keyup($.proxy(this._handleInput, this)); + $leftChildrenInput.blur($.proxy(this._stopInput, this)); + + var $leftChildrenContainer = $('
                  '); + $leftChildren.append($leftChildrenContainer); + + var $leftChildrenList = $('
                    '); + $leftChildrenContainer.append($leftChildrenList); + + // render sublinks + var $k = 0; + var $step = Math.ceil(($left - 2) / this.SHOW_SUB_LINKS); + for (var $i = 2; $i <= $left; $i += $step) { + $leftChildrenList.append(this._renderLink($i, ($k != 0 && $k % 4 == 0))); + $k++; + } + } + } + + // visible links + for (var $i = $left + 1; $i < $right; $i++) { + $pageList.append(this._renderLink($i)); + } + + // right ... links + if ($right < this.options.maxPage) { + if (this.options.maxPage - $right < 2) { + $pageList.append(this._renderLink(this.options.maxPage - 1)); + } + else { + var $rightChildren = $('
                  • '); + $pageList.append($rightChildren); + + var $rightChildrenLink = $(''); + $rightChildren.append($rightChildrenLink); + $rightChildrenLink.click($.proxy(this._startInput, this)); + + var $rightChildrenImage = $(''); + $rightChildrenLink.append($rightChildrenImage); + + var $rightChildrenInput = $(''); + $rightChildren.append($rightChildrenInput); + $rightChildrenInput.keydown($.proxy(this._handleInput, this)); + $rightChildrenInput.keyup($.proxy(this._handleInput, this)); + $rightChildrenInput.blur($.proxy(this._stopInput, this)); + + var $rightChildrenContainer = $('
                    '); + $rightChildren.append($rightChildrenContainer); + + var $rightChildrenList = $('
                      '); + $rightChildrenContainer.append($rightChildrenList); + + // render sublinks + var $k = 0; + var $step = Math.ceil((this.options.maxPage - $right) / this.SHOW_SUB_LINKS); + for (var $i = $right; $i < this.options.maxPage; $i += $step) { + $rightChildrenList.append(this._renderLink($i, ($k != 0 && $k % 4 == 0))); + $k++; + } + } + } + + // add last page + $pageList.append(this._renderLink(this.options.maxPage)); + + // add next button + var $nextElement = $('
                    • '); + $pageList.append($nextElement); + + if (this.options.activePage < this.options.maxPage) { + var $nextLink = $(''); + $nextElement.append($nextLink); + this._bindSwitchPage($nextLink, this.options.activePage + 1); + + var $nextImage = $(''); + $nextLink.append($nextImage); + } + else { + var $nextImage = $(''); + $nextElement.append($nextImage); + } + $nextElement.addClass('skip'); + } + else { + // otherwise hide the paginator if not already hidden + this.element.hide(); + } + }, + + /** + * Renders a page link + * + * @parameter integer page + * + * @return $(element) + */ + _renderLink: function(page, lineBreak) { + var $pageElement = $('
                    • '); + if (lineBreak != undefined && lineBreak) { + $pageElement.addClass('break'); + } + if (page != this.options.activePage) { + var $pageLink = $('' + WCF.String.addThousandsSeparator(page) + ''); + $pageElement.append($pageLink); + this._bindSwitchPage($pageLink, page); + } + else { + $pageElement.addClass('active'); + var $pageSubElement = $('' + WCF.String.addThousandsSeparator(page) + ''); + $pageElement.append($pageSubElement); + } + + return $pageElement; + }, + + /** + * Binds the 'click'-event for the page switching to the given element. + * + * @parameter $(element) element + * @paremeter integer page + */ + _bindSwitchPage: function(element, page) { + var $self = this; + element.click(function() { + $self.switchPage(page); + }); + }, + + /** + * Switches to the given page + * + * @parameter Event event + * @parameter integer page + */ + switchPage: function(page) { + this._setOption('activePage', page); + }, + + /** + * Sets the given option to the given value. + * See the jQuery UI widget documentation for more. + */ + _setOption: function(key, value) { + if (key == 'activePage') { + if (value != this.options[key] && value > 0 && value <= this.options.maxPage) { + // you can prevent the page switching by returning false or by event.preventDefault() + // in a shouldSwitch-callback. e.g. if an AJAX request is already running. + var $result = this._trigger('shouldSwitch', undefined, { + nextPage: value, + }); + + if ($result) { + this.options[key] = value; + this._render(); + this._trigger('switched', undefined, { + activePage: value, + }); + } + else { + this._trigger('notSwitched', undefined, { + activePage: value, + }); + } + } + } + else { + this.options[key] = value; + + if (key == 'disabled') { + if (value) { + this.element.children().remove(); + } + else { + this._render() + } + } + else if (key == 'maxPage') { + this._render(); + } + } + + return this; + }, + + /** + * Start input of pagenumber + * + * @parameter Event event + */ + _startInput: function(event) { + // hide a-tag + var $childLink = $(event.currentTarget); + if (!$childLink.is('a')) $childLink = $childLink.parent('a'); + + $childLink.hide(); + + // show input-tag + var $childInput = $childLink.parent('li').children('input') + .css('display', 'block') + .val(''); + + $childInput.focus(); + }, + + /** + * Stops input of pagenumber + * + * @parameter Event event + */ + _stopInput: function(event) { + // hide input-tag + var $childInput = $(event.currentTarget); + $childInput.css('display', 'none'); + + // show a-tag + var $childContainer = $childInput.parent('li') + if ($childContainer != undefined && $childContainer != null) { + $childContainer.children('a').show(); + } + }, + + /** + * Handles input of pagenumber + * + * @parameter Event event + */ + _handleInput: function(event) { + var $ie7 = ($.browser.msie && $.browser.version == '7.0'); + if (event.type != 'keyup' || $ie7) { + if (!$ie7 || ((event.which == 13 || event.which == 27) && event.type == 'keyup')) { + if (event.which == 13) { + this.switchPage(parseInt($(event.currentTarget).val())); + } + + if (event.which == 13 || event.which == 27) { + this._stopInput(event); + event.stopPropagation(); + } + } + } + } +}); + +/** + * Encapsulate eval() within an own function to prevent problems + * with optimizing and minifiny JS. + * + * @param mixed expression + * @returns mixed + */ +function wcfEval(expression) { + return eval(expression); +} diff --git a/wcfsetup/install/files/lib/acp/action/AJAXProxyAction.class.php b/wcfsetup/install/files/lib/acp/action/AJAXProxyAction.class.php index be9ef4f233..6cf562206c 100755 --- a/wcfsetup/install/files/lib/acp/action/AJAXProxyAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/AJAXProxyAction.class.php @@ -1,14 +1,14 @@ - - * @package com.woltlab.wcf - * @subpackage acp.action - * @category Community Framework - */ + + * @package com.woltlab.wcf + * @subpackage acp.action + * @category Community Framework + */ class AJAXProxyAction extends \wcf\action\AJAXProxyAction { } diff --git a/wcfsetup/install/files/lib/acp/action/InstallPackageAction.class.php b/wcfsetup/install/files/lib/acp/action/InstallPackageAction.class.php index ad0cf4196c..7803f0c33c 100755 --- a/wcfsetup/install/files/lib/acp/action/InstallPackageAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/InstallPackageAction.class.php @@ -1,157 +1,157 @@ - - * @package com.woltlab.wcf - * @subpackage acp.action - * @category Community Framework - */ -class InstallPackageAction extends AbstractDialogAction { - /** - * current node - * - * @var string - */ - public $node = ''; - - /** - * PackageInstallationDispatcher object - * - * @var PackageInstallationDispatcher - */ - public $installation = null; - - /** - * PackageInstallationQueue object - * - * @var PackageInstallationQueue - */ - public $queue = null; - - /** - * current queue id - * - * @var integer - */ - public $queueID = 0; - - // system - public $templateName = 'packageInstallationStep'; - - /** - * @see wcf\action\IAction::readParameters() - */ - public function readParameters() { - parent::readParameters(); - - if (isset($_POST['node'])) $this->node = StringUtil::trim($_POST['node']); - if (isset($_POST['queueID'])) $this->queueID = intval($_POST['queueID']); - $this->queue = new PackageInstallationQueue($this->queueID); - - if (!$this->queue->queueID) { - throw new IllegalLinkException(); - } - - $this->installation = new PackageInstallationDispatcher($this->queue); - } - - /** - * Executes installation based upon nodes. - */ - protected function stepInstall() { - $step = $this->installation->install($this->node); - - if ($step->hasDocument()) { - $this->data = array( - 'innerTemplate' => $step->getTemplate(), - 'node' => $step->getNode(), - 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node), - 'step' => 'install' - ); - } - else { - if ($step->getNode() == '') { - // perform final actions - $queueID = $this->installation->completeSetup(); - - // begin with next queue - if ($queueID) { - $this->data = array( - 'progress' => 100, - 'queueID' => $queueID, - 'step' => 'prepare' - ); - return; - } - - // no more queues, show success - $this->data = array( - 'progress' => 100, - 'step' => 'success' - ); - return; - } - - // continue with next node - $this->data = array( - 'step' => 'install', - 'node' => $step->getNode(), - 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node) - ); - } - } - - /** - * Prepares the installation process. - */ - protected function stepPrepare() { - // update package information - $this->installation->updatePackage(); - - // clean-up previously created nodes - $this->installation->nodeBuilder->purgeNodes(); - - // create node tree - $this->installation->nodeBuilder->buildNodes(); - $nextNode = $this->installation->nodeBuilder->getNextNode(); - - WCF::getTPL()->assign(array( - 'queue' => $this->queue - )); - - $this->data = array( - 'template' => WCF::getTPL()->fetch($this->templateName), - 'step' => 'install', - 'node' => $nextNode, - 'currentAction' => WCF::getLanguage()->get('wcf.package.installation.step.installing'), - 'progress' => 0 - ); - } - - /** - * @see wcf\action\AbstractDialogAction\AbstractDialogAction::validateStep() - */ - protected function validateStep() { - switch ($this->step) { - case 'install': - case 'prepare': - continue; - break; - - default: - throw new IllegalLinkException(); - break; - } - } -} + + * @package com.woltlab.wcf + * @subpackage acp.action + * @category Community Framework + */ +class InstallPackageAction extends AbstractDialogAction { + /** + * current node + * + * @var string + */ + public $node = ''; + + /** + * PackageInstallationDispatcher object + * + * @var PackageInstallationDispatcher + */ + public $installation = null; + + /** + * PackageInstallationQueue object + * + * @var PackageInstallationQueue + */ + public $queue = null; + + /** + * current queue id + * + * @var integer + */ + public $queueID = 0; + + // system + public $templateName = 'packageInstallationStep'; + + /** + * @see wcf\action\IAction::readParameters() + */ + public function readParameters() { + parent::readParameters(); + + if (isset($_POST['node'])) $this->node = StringUtil::trim($_POST['node']); + if (isset($_POST['queueID'])) $this->queueID = intval($_POST['queueID']); + $this->queue = new PackageInstallationQueue($this->queueID); + + if (!$this->queue->queueID) { + throw new IllegalLinkException(); + } + + $this->installation = new PackageInstallationDispatcher($this->queue); + } + + /** + * Executes installation based upon nodes. + */ + protected function stepInstall() { + $step = $this->installation->install($this->node); + + if ($step->hasDocument()) { + $this->data = array( + 'innerTemplate' => $step->getTemplate(), + 'node' => $step->getNode(), + 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node), + 'step' => 'install' + ); + } + else { + if ($step->getNode() == '') { + // perform final actions + $queueID = $this->installation->completeSetup(); + + // begin with next queue + if ($queueID) { + $this->data = array( + 'progress' => 100, + 'queueID' => $queueID, + 'step' => 'prepare' + ); + return; + } + + // no more queues, show success + $this->data = array( + 'progress' => 100, + 'step' => 'success' + ); + return; + } + + // continue with next node + $this->data = array( + 'step' => 'install', + 'node' => $step->getNode(), + 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node) + ); + } + } + + /** + * Prepares the installation process. + */ + protected function stepPrepare() { + // update package information + $this->installation->updatePackage(); + + // clean-up previously created nodes + $this->installation->nodeBuilder->purgeNodes(); + + // create node tree + $this->installation->nodeBuilder->buildNodes(); + $nextNode = $this->installation->nodeBuilder->getNextNode(); + + WCF::getTPL()->assign(array( + 'queue' => $this->queue + )); + + $this->data = array( + 'template' => WCF::getTPL()->fetch($this->templateName), + 'step' => 'install', + 'node' => $nextNode, + 'currentAction' => WCF::getLanguage()->get('wcf.package.installation.step.installing'), + 'progress' => 0 + ); + } + + /** + * @see wcf\action\AbstractDialogAction\AbstractDialogAction::validateStep() + */ + protected function validateStep() { + switch ($this->step) { + case 'install': + case 'prepare': + continue; + break; + + default: + throw new IllegalLinkException(); + break; + } + } +} diff --git a/wcfsetup/install/files/lib/acp/action/LogoutAction.class.php b/wcfsetup/install/files/lib/acp/action/LogoutAction.class.php index b72222a0da..2f18ed59ba 100755 --- a/wcfsetup/install/files/lib/acp/action/LogoutAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/LogoutAction.class.php @@ -1,40 +1,40 @@ - - * @package com.woltlab.wcf - * @subpackage acp.action - * @category Community Framework - */ -class LogoutAction extends AbstractSecureAction { - /** - * @see wcf\action\IAction::execute() - */ - public function execute() { - parent::execute(); - - // validate - if (!WCF::getUser()->userID) { - throw new IllegalLinkException(); - } - - // do logout - WCF::getSession()->delete(); - - $this->executed(); - - // forward to index page - // warning: if doLogout() writes a cookie this is buggy in MS IIS - HeaderUtil::redirect('index.php'.SID_ARG_1ST); - exit; - } -} + + * @package com.woltlab.wcf + * @subpackage acp.action + * @category Community Framework + */ +class LogoutAction extends AbstractSecureAction { + /** + * @see wcf\action\IAction::execute() + */ + public function execute() { + parent::execute(); + + // validate + if (!WCF::getUser()->userID) { + throw new IllegalLinkException(); + } + + // do logout + WCF::getSession()->delete(); + + $this->executed(); + + // forward to index page + // warning: if doLogout() writes a cookie this is buggy in MS IIS + HeaderUtil::redirect('index.php'.SID_ARG_1ST); + exit; + } +} diff --git a/wcfsetup/install/files/lib/acp/action/OptionExportAction.class.php b/wcfsetup/install/files/lib/acp/action/OptionExportAction.class.php index d30e104283..51edb8475f 100755 --- a/wcfsetup/install/files/lib/acp/action/OptionExportAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/OptionExportAction.class.php @@ -1,54 +1,54 @@ - - * @package com.woltlab.wcf - * @subpackage acp.action - * @category Community Framework - */ -class OptionExportAction extends AbstractAction { - /** - * @see wcf\action\AbstractAction\AbstractAction::$neededPermissions - */ - public $neededPermissions = array('admin.system.canEditOption'); - - /** - * @see wcf\action\IAction::execute(); - */ - public function execute() { - parent::execute(); - - // header - @header('Content-type: text/xml'); - - // file name - @header('Content-disposition: attachment; filename="options.xml"'); - - // no cache headers - @header('Pragma: no-cache'); - @header('Expires: 0'); - - // content - echo "\n\n"; - - $options = Option::getOptions(); - foreach ($options as $option) { - echo "\t\n"; - } - - echo ''; - $this->executed(); - exit; - } -} + + * @package com.woltlab.wcf + * @subpackage acp.action + * @category Community Framework + */ +class OptionExportAction extends AbstractAction { + /** + * @see wcf\action\AbstractAction\AbstractAction::$neededPermissions + */ + public $neededPermissions = array('admin.system.canEditOption'); + + /** + * @see wcf\action\IAction::execute(); + */ + public function execute() { + parent::execute(); + + // header + @header('Content-type: text/xml'); + + // file name + @header('Content-disposition: attachment; filename="options.xml"'); + + // no cache headers + @header('Pragma: no-cache'); + @header('Expires: 0'); + + // content + echo "\n\n"; + + $options = Option::getOptions(); + foreach ($options as $option) { + echo "\t\n"; + } + + echo ''; + $this->executed(); + exit; + } +} diff --git a/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php b/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php index 2ecd601153..91b4860041 100755 --- a/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php @@ -1,149 +1,149 @@ - - * @package com.woltlab.wcf - * @subpackage acp.action - * @category Community Framework - */ -class UninstallPackageAction extends InstallPackageAction { - /** - * active package id - * - * @var integer - */ - protected $packageID = 0; - - // system - public $templateName = 'packageUninstallationStep'; - - /** - * @see wcf\action\IAction::readParameters() - */ - public function readParameters() { - AbstractDialogAction::readParameters(); - - if (isset($_POST['node'])) $this->node = StringUtil::trim($_POST['node']); - - if (isset($_POST['packageID'])) { - $this->packageID = intval($_POST['packageID']); - } - else { - if (isset($_POST['queueID'])) $this->queueID = intval($_POST['queueID']); - $this->queue = new PackageInstallationQueue($this->queueID); - - if (!$this->queue->queueID) { - throw new IllegalLinkException(); - } - - $this->installation = new PackageUninstallationDispatcher($this->queue); - } - } - - /** - * Prepares the uninstallation process. - */ - protected function stepPrepare() { - $package = new Package($this->packageID); - if (!$package->packageID) { - throw new IllegalLinkException(); - } - - if (PackageUninstallationDispatcher::hasDependencies($package->packageID)) { - throw new SystemException('hasDependencies'); - } - else { - // get new process no - $processNo = PackageInstallationQueue::getNewProcessNo(); - - // create queue - $queue = PackageInstallationQueueEditor::create(array( - 'processNo' => $processNo, - 'userID' => WCF::getUser()->userID, - 'packageName' => $package->getName(), - 'packageID' => $package->packageID, - 'action' => 'uninstall', - 'cancelable' => 0 - )); - - // initialize uninstallation - $this->installation = new PackageUninstallationDispatcher($queue); - - $this->installation->nodeBuilder->purgeNodes(); - $this->installation->nodeBuilder->buildNodes(); - - WCF::getTPL()->assign(array( - 'queue' => $queue - )); - - $this->data = array( - 'template' => WCF::getTPL()->fetch($this->templateName), - 'step' => 'uninstall', - 'node' => $this->installation->nodeBuilder->getNextNode(), - 'currentAction' => WCF::getLanguage()->get('wcf.package.installation.step.uninstalling'), - 'progress' => 0, - 'queueID' => $queue->queueID - ); - } - } - - /** - * Uninstalls node components and returns next node. - * - * @param string $node - * @return string - */ - public function stepUninstall() { - $node = $this->installation->uninstall($this->node); - - if ($node == '') { - // remove node data - $this->installation->nodeBuilder->purgeNodes(); - - // TODO: Show 'success' template at this point - $this->data = array( - 'progress' => 100, - 'step' => 'success' - ); - return; - } - - // continue with next node - $this->data = array( - 'step' => 'uninstall', - 'node' => $node, - 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node) - ); - } - - /** - * @see AbstractDialogAction::validateStep() - */ - protected function validateStep() { - switch ($this->step) { - case 'prepare': - case 'uninstall': - continue; - break; - - default: - die(print_r($_POST, true)); - throw new IllegalLinkException(); - break; - } - } -} + + * @package com.woltlab.wcf + * @subpackage acp.action + * @category Community Framework + */ +class UninstallPackageAction extends InstallPackageAction { + /** + * active package id + * + * @var integer + */ + protected $packageID = 0; + + // system + public $templateName = 'packageUninstallationStep'; + + /** + * @see wcf\action\IAction::readParameters() + */ + public function readParameters() { + AbstractDialogAction::readParameters(); + + if (isset($_POST['node'])) $this->node = StringUtil::trim($_POST['node']); + + if (isset($_POST['packageID'])) { + $this->packageID = intval($_POST['packageID']); + } + else { + if (isset($_POST['queueID'])) $this->queueID = intval($_POST['queueID']); + $this->queue = new PackageInstallationQueue($this->queueID); + + if (!$this->queue->queueID) { + throw new IllegalLinkException(); + } + + $this->installation = new PackageUninstallationDispatcher($this->queue); + } + } + + /** + * Prepares the uninstallation process. + */ + protected function stepPrepare() { + $package = new Package($this->packageID); + if (!$package->packageID) { + throw new IllegalLinkException(); + } + + if (PackageUninstallationDispatcher::hasDependencies($package->packageID)) { + throw new SystemException('hasDependencies'); + } + else { + // get new process no + $processNo = PackageInstallationQueue::getNewProcessNo(); + + // create queue + $queue = PackageInstallationQueueEditor::create(array( + 'processNo' => $processNo, + 'userID' => WCF::getUser()->userID, + 'packageName' => $package->getName(), + 'packageID' => $package->packageID, + 'action' => 'uninstall', + 'cancelable' => 0 + )); + + // initialize uninstallation + $this->installation = new PackageUninstallationDispatcher($queue); + + $this->installation->nodeBuilder->purgeNodes(); + $this->installation->nodeBuilder->buildNodes(); + + WCF::getTPL()->assign(array( + 'queue' => $queue + )); + + $this->data = array( + 'template' => WCF::getTPL()->fetch($this->templateName), + 'step' => 'uninstall', + 'node' => $this->installation->nodeBuilder->getNextNode(), + 'currentAction' => WCF::getLanguage()->get('wcf.package.installation.step.uninstalling'), + 'progress' => 0, + 'queueID' => $queue->queueID + ); + } + } + + /** + * Uninstalls node components and returns next node. + * + * @param string $node + * @return string + */ + public function stepUninstall() { + $node = $this->installation->uninstall($this->node); + + if ($node == '') { + // remove node data + $this->installation->nodeBuilder->purgeNodes(); + + // TODO: Show 'success' template at this point + $this->data = array( + 'progress' => 100, + 'step' => 'success' + ); + return; + } + + // continue with next node + $this->data = array( + 'step' => 'uninstall', + 'node' => $node, + 'progress' => $this->installation->nodeBuilder->calculateProgress($this->node) + ); + } + + /** + * @see AbstractDialogAction::validateStep() + */ + protected function validateStep() { + switch ($this->step) { + case 'prepare': + case 'uninstall': + continue; + break; + + default: + die(print_r($_POST, true)); + throw new IllegalLinkException(); + break; + } + } +} diff --git a/wcfsetup/install/files/lib/acp/form/ACPForm.class.php b/wcfsetup/install/files/lib/acp/form/ACPForm.class.php index cf98b005f5..129258d54a 100755 --- a/wcfsetup/install/files/lib/acp/form/ACPForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ACPForm.class.php @@ -1,33 +1,33 @@ - - * @package com.woltlab.wcf - * @subpackage acp.form - * @category Community Framework - */ -class ACPForm extends AbstractForm { - /** - * Active acp menu item. - * - * @var string - */ - public $activeMenuItem = ''; - - /** - * @see wcf\page\IPage::show() - */ - public function show() { - // enable menu item - if (!empty($this->activeMenuItem)) ACPMenu::getInstance()->setActiveMenuItem($this->activeMenuItem); - - parent::show(); - } -} + + * @package com.woltlab.wcf + * @subpackage acp.form + * @category Community Framework + */ +class ACPForm extends AbstractForm { + /** + * Active acp menu item. + * + * @var string + */ + public $activeMenuItem = ''; + + /** + * @see wcf\page\IPage::show() + */ + public function show() { + // enable menu item + if (!empty($this->activeMenuItem)) ACPMenu::getInstance()->setActiveMenuItem($this->activeMenuItem); + + parent::show(); + } +} diff --git a/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php index 24ee8d1ca8..0412674061 100755 --- a/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php @@ -1,378 +1,378 @@ - - * @package com.woltlab.wcf - * @subpackage acp.form - * @category Community Framework - */ -abstract class AbstractOptionListForm extends AbstractForm { - /** - * @see wcf\form\AbstractForm::$errorField - */ - public $errorField = array(); - - /** - * @see wcf\form\AbstractForm::$errorType - */ - public $errorType = array(); - - /** - * cache name - * @var string - */ - public $cacheName = 'option-'; - - /** - * cache class name - * @var string - */ - public $cacheClass = 'wcf\system\cache\builder\CacheBuilderOption'; - - /** - * list of all option categories - * @var array - */ - public $cachedCategories = array(); - - /** - * list of all options - * @var array
                    ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Captcha-Bild anzeigen lassen. Unregistrierte Benutzer müssen erst den Code eingeben, der auf diesem Bild steht. Roboter können diesen Code nicht lesen. Beachte, dass Captcha-Bilder von blinden und sehbehinderten Benutzern nicht identifiziert werden können.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1} (#{@$excludedPackage.instanceNo}){/if} in Version {$excludedPackage.packageVersion}]]> - - 1} (#{@$excludingPackage.instanceNo}){/if} in Version {$excludingPackage.packageVersion}]]> - - {$package.name} ({if $package.open == 0}ist bereits installiert{else}{if $package.file|isset}liegt dem Paket bei{else}fehlt{/if}{/if})]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getName()}« kann mit dem angegebenen Archiv nicht aktualisiert werden.]]> - - - - - - - - - getName()}« aktualisieren]]> - - - - - - - - - - - - - - - - - - - - - - - {$packageName|encodeJS}: ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {foreach from=$failures item=$failure}{$failure.templateName} (ursprünglich gepatcht von: {$failure.packageName})
                    {/foreach}Wahrscheinlich wird deshalb das Paket, das den jeweiligen Patch ursprünglich angewendet hatte, nicht mehr funktionieren. Du solltest dieses Update dennoch fortsetzen. Klick dazu auf »Weiter«.]]>
                    - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1} (#{$updatableInstance.instanceNo}){/if} Version {$updatableInstance.packageVersion} aktualisieren]]> - - - - - - - - - - - - - - 1} (#{#$package.instanceNo}){/if} {$package.fromversion} wird aktualisiert auf {$package.toVersion}]]> - - - - - username}«]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Character Separated Values)]]> - Extensible Markup Language)]]> - - - - - - - - - - - - - - - ohne zusätzliche Sicherheitsabfrage auf alle Benutzer aus, die unter die eingestellten Bedingungen fallen. Die Bearbeitungen können unter Umständen sehr rechenintensiv werden und sollten deshalb möglichst nur dann ausgeführt werden, wenn sich die Seite im Wartungsmodus befindet! Die Veränderungen können nicht rückgängig gemacht werden. Bitte benutze diese Funktion mit der nötigen Vorsicht!]]> - - - - - - - - - - - - - - - - - - - Hier kannst du die E-Mail-Adresse des Absenders definieren.{if MAIL_USE_FORMATTED_ADDRESS} Es ist auch folgendes Format möglich:{/if}

                    -{if MAIL_USE_FORMATTED_ADDRESS}

                    Absender Name <email@absender.tld>

                    {/if} -

                    Wenn du unter System -> Optionen -> E-Mail alles ausgefüllt hast, wird dieses Feld automatisch ausgefüllt. Solltest du E-Mails per SMTP senden, so achte darauf, dass die E-Mail-Adresse des Absenders auch vom Server akzeptiert werden muss.

                    ]]>
                    - - - - - - - - - user->username}.]]> -
                    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Heute, %H:%M]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 ? "Bild " + (this.currentIndex + 1) + " von " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Newbie: Intro to cron]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschst.]]> + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschst.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  • memcached.org
                  • +
                  ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Captcha-Bild anzeigen lassen. Unregistrierte Benutzer müssen erst den Code eingeben, der auf diesem Bild steht. Roboter können diesen Code nicht lesen. Beachte, dass Captcha-Bilder von blinden und sehbehinderten Benutzern nicht identifiziert werden können.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1} (#{@$excludedPackage.instanceNo}){/if} in Version {$excludedPackage.packageVersion}]]> + + 1} (#{@$excludingPackage.instanceNo}){/if} in Version {$excludingPackage.packageVersion}]]> + + {$package.name} ({if $package.open == 0}ist bereits installiert{else}{if $package.file|isset}liegt dem Paket bei{else}fehlt{/if}{/if})]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getName()}« kann mit dem angegebenen Archiv nicht aktualisiert werden.]]> + + + + + + + + + getName()}« aktualisieren]]> + + + + + + + + + + + + + + + + + + + + + + + {$packageName|encodeJS}: ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {foreach from=$failures item=$failure}{$failure.templateName} (ursprünglich gepatcht von: {$failure.packageName})
                  {/foreach}Wahrscheinlich wird deshalb das Paket, das den jeweiligen Patch ursprünglich angewendet hatte, nicht mehr funktionieren. Du solltest dieses Update dennoch fortsetzen. Klick dazu auf »Weiter«.]]>
                  + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1} (#{$updatableInstance.instanceNo}){/if} Version {$updatableInstance.packageVersion} aktualisieren]]> + + + + + + + + + + + + + + 1} (#{#$package.instanceNo}){/if} {$package.fromversion} wird aktualisiert auf {$package.toVersion}]]> + + + + + username}«]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Character Separated Values)]]> + Extensible Markup Language)]]> + + + + + + + + + + + + + + + ohne zusätzliche Sicherheitsabfrage auf alle Benutzer aus, die unter die eingestellten Bedingungen fallen. Die Bearbeitungen können unter Umständen sehr rechenintensiv werden und sollten deshalb möglichst nur dann ausgeführt werden, wenn sich die Seite im Wartungsmodus befindet! Die Veränderungen können nicht rückgängig gemacht werden. Bitte benutze diese Funktion mit der nötigen Vorsicht!]]> + + + + + + + + + + + + + + + + + + + Hier kannst du die E-Mail-Adresse des Absenders definieren.{if MAIL_USE_FORMATTED_ADDRESS} Es ist auch folgendes Format möglich:{/if}

                  +{if MAIL_USE_FORMATTED_ADDRESS}

                  Absender Name <email@absender.tld>

                  {/if} +

                  Wenn du unter System -> Optionen -> E-Mail alles ausgefüllt hast, wird dieses Feld automatisch ausgefüllt. Solltest du E-Mails per SMTP senden, so achte darauf, dass die E-Mail-Adresse des Absenders auch vom Server akzeptiert werden muss.

                  ]]>
                  + + + + + + + + + user->username}.]]> +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Heute, %H:%M]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 ? "Bild " + (this.currentIndex + 1) + " von " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml index 08bd3fda0f..7ca91c1b85 100644 --- a/wcfsetup/install/lang/de.xml +++ b/wcfsetup/install/lang/de.xml @@ -1,1033 +1,1033 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Newbie: Intro to cron]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschen.]]> - {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschen.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                • memcached.org
                • -
                ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Captcha-Bild anzeigen lassen. Unregistrierte Benutzer müssen erst den Code eingeben, der auf diesem Bild steht. Roboter können diesen Code nicht lesen. Beachten Sie, dass Captcha-Bilder von blinden und sehbehinderten Benutzern nicht identifiziert werden können.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1} (#{@$excludedPackage.instanceNo}){/if} in Version {$excludedPackage.packageVersion}]]> - - 1} (#{@$excludingPackage.instanceNo}){/if} in Version {$excludingPackage.packageVersion}]]> - - {$package.name} ({if $package.open == 0}ist bereits installiert{else}{if $package.file|isset}liegt dem Paket bei{else}fehlt{/if}{/if})]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getName()}« kann mit dem angegebenen Archiv nicht aktualisiert werden.]]> - - - - - - - - - getName()}« aktualisieren]]> - - - - - - - - - - - - - - - - - - - - - {$packageName|encodeJS}: ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1} (#{$updatableInstance.instanceNo}){/if} Version {$updatableInstance.packageVersion} aktualisieren]]> - - - - - - - - - - - - - - 1} (#{#$package.instanceNo}){/if} {$package.fromversion} wird aktualisiert auf {$package.toVersion}]]> - - - - - username}«]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Character Separated Values)]]> - Extensible Markup Language)]]> - - - - - - - - - - - - - - - ohne zusätzliche Sicherheitsabfrage auf alle Benutzer aus, die unter die eingestellten Bedingungen fallen. Die Bearbeitungen können unter Umständen sehr rechenintensiv werden und sollten deshalb möglichst nur dann ausgeführt werden, wenn sich die Seite im Wartungsmodus befindet! Die Veränderungen können nicht rückgängig gemacht werden. Bitte benutzen Sie diese Funktion mit der nötigen Vorsicht!]]> - - - - - - - - - - - - - - - - - - - Hier können Sie die E-Mail-Adresse des Absenders definieren.{if MAIL_USE_FORMATTED_ADDRESS} Es ist auch folgendes Format möglich:{/if}

                -{if MAIL_USE_FORMATTED_ADDRESS}

                Absender Name <email@absender.tld>

                {/if} -

                Wenn Sie unter System -> Optionen -> E-Mail alles ausgefüllt haben, wird dieses Feld automatisch ausgefüllt. Sollten Sie E-Mails per SMTP senden, so achten Sie darauf, dass die E-Mail-Adresse des Absenders auch vom Server akzeptiert werden muss.

                ]]>
                - - - - - - - - - user->username}.]]> -
                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1) ? $minutes + ' Minuten' : 'einer Minute' )]]> - 1) ? $hours + ' Stunden' : 'einer Stunde' )]]> - 1) ? '%day%' : 'Gestern' ) + ', %time%']]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 ? "Bild " + (this.currentIndex + 1) + " von " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Newbie: Intro to cron]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschen.]]> + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php löschen.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              • memcached.org
              • +
              ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Captcha-Bild anzeigen lassen. Unregistrierte Benutzer müssen erst den Code eingeben, der auf diesem Bild steht. Roboter können diesen Code nicht lesen. Beachten Sie, dass Captcha-Bilder von blinden und sehbehinderten Benutzern nicht identifiziert werden können.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1} (#{@$excludedPackage.instanceNo}){/if} in Version {$excludedPackage.packageVersion}]]> + + 1} (#{@$excludingPackage.instanceNo}){/if} in Version {$excludingPackage.packageVersion}]]> + + {$package.name} ({if $package.open == 0}ist bereits installiert{else}{if $package.file|isset}liegt dem Paket bei{else}fehlt{/if}{/if})]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getName()}« kann mit dem angegebenen Archiv nicht aktualisiert werden.]]> + + + + + + + + + getName()}« aktualisieren]]> + + + + + + + + + + + + + + + + + + + + + {$packageName|encodeJS}: ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1} (#{$updatableInstance.instanceNo}){/if} Version {$updatableInstance.packageVersion} aktualisieren]]> + + + + + + + + + + + + + + 1} (#{#$package.instanceNo}){/if} {$package.fromversion} wird aktualisiert auf {$package.toVersion}]]> + + + + + username}«]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Character Separated Values)]]> + Extensible Markup Language)]]> + + + + + + + + + + + + + + + ohne zusätzliche Sicherheitsabfrage auf alle Benutzer aus, die unter die eingestellten Bedingungen fallen. Die Bearbeitungen können unter Umständen sehr rechenintensiv werden und sollten deshalb möglichst nur dann ausgeführt werden, wenn sich die Seite im Wartungsmodus befindet! Die Veränderungen können nicht rückgängig gemacht werden. Bitte benutzen Sie diese Funktion mit der nötigen Vorsicht!]]> + + + + + + + + + + + + + + + + + + + Hier können Sie die E-Mail-Adresse des Absenders definieren.{if MAIL_USE_FORMATTED_ADDRESS} Es ist auch folgendes Format möglich:{/if}

              +{if MAIL_USE_FORMATTED_ADDRESS}

              Absender Name <email@absender.tld>

              {/if} +

              Wenn Sie unter System -> Optionen -> E-Mail alles ausgefüllt haben, wird dieses Feld automatisch ausgefüllt. Sollten Sie E-Mails per SMTP senden, so achten Sie darauf, dass die E-Mail-Adresse des Absenders auch vom Server akzeptiert werden muss.

              ]]>
              + + + + + + + + + user->username}.]]> +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1) ? $minutes + ' Minuten' : 'einer Minute' )]]> + 1) ? $hours + ' Stunden' : 'einer Stunde' )]]> + 1) ? '%day%' : 'Gestern' ) + ', %time%']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 ? "Bild " + (this.currentIndex + 1) + " von " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml index 8c580da668..877c1f72c8 100644 --- a/wcfsetup/install/lang/en.xml +++ b/wcfsetup/install/lang/en.xml @@ -1,903 +1,903 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Newbie: Intro to cron.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php.]]> - {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            • memcached.org
            • -]]>
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Captcha images on every place where web forms can be submitted. Unregistered users then first have to identify the code on the Captcha before they can submit the form. Robots cannot read the code. Please not that Captcha images cannot be read by blind and visually impaired people.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              - - - - - - - - - 1} (#{@$excludedPackage.instanceNo}){/if} in version {$excludedPackage.packageVersion}]]> - - 1} (#{@$excludingPackage.instanceNo}){/if} in version {$excludingPackage.packageVersion}]]> - - - {$package.name} ({if $package.open == 0}Installed{else}{if $package.file|isset}is located within this Package{else}Not available{/if}{/if})]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getName()}" could not be updated with the supplied archive.]]> - - - - - - - - - getName()}"]]> - - - - - - - - - - - - - - - - - - - - - - - {$packageName|encodeJS}: ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {foreach from=$failures item=$failure}{$failure.templateName} (Originally patched by: {$failure.packageName})
              {/foreach}The original patch package that was previously applied may no longer function. You should still continue with this update by clicking on the "{lang}wcf.global.button.next{/lang}" button.]]>
              - - - - - - - - - - - - - - - - - - - - - - - - - - -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1}s{/if})]]> - 1} (#{$updatableInstance.instanceNo}){/if} version {$updatableInstance.packageVersion}]]> - - - - - - - - - - - - - - 1} (#{#$package.instanceNo}){/if} {$package.fromversion} is updated to {$package.toVersion}]]> - - - - - username}"]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Character Separated Values)]]> - Extensible Markup Language)]]> - - - - - - - - - 1}s{/if}]]> - - - - - - without additional security notification, on all users matching the set conditions. Bulk processing can be very performance intensive, so it should only be executed when the forum is offline. To have a correct display of your content you should update the counters. The processing can not be reversed, so please be attentive when using this function.]]> - - - - - - - - - - - - - - - - - - - Here you can enter the sender's e-mail address in the following format:

              -

              {if MAIL_USE_FORMATTED_ADDRESS}Senders name <email@sender.tld>{else}email@sender.tld{/if}

              -

              If you have completely filled in the section under System -> Options -> E-mail, then this field will automatically be filled in. If you are sending e-mails using SMTP, then the sender's e-mail-Address must also be accepted by the server.

              ]]>
              - - - - - - - - - user->username}.]]> -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \T\o\d\a\y, g:ia]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 ? "Image " + (this.currentIndex + 1) + " of " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Newbie: Intro to cron.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php.]]> + {@RELATIVE_WCF_DIR}acp/masterPassword.inc.php.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            • memcached.org
            • +]]>
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Captcha images on every place where web forms can be submitted. Unregistered users then first have to identify the code on the Captcha before they can submit the form. Robots cannot read the code. Please not that Captcha images cannot be read by blind and visually impaired people.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              + + + + + + + + + 1} (#{@$excludedPackage.instanceNo}){/if} in version {$excludedPackage.packageVersion}]]> + + 1} (#{@$excludingPackage.instanceNo}){/if} in version {$excludingPackage.packageVersion}]]> + + + {$package.name} ({if $package.open == 0}Installed{else}{if $package.file|isset}is located within this Package{else}Not available{/if}{/if})]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + getName()}" could not be updated with the supplied archive.]]> + + + + + + + + + getName()}"]]> + + + + + + + + + + + + + + + + + + + + + + + {$packageName|encodeJS}: ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {foreach from=$failures item=$failure}{$failure.templateName} (Originally patched by: {$failure.packageName})
              {/foreach}The original patch package that was previously applied may no longer function. You should still continue with this update by clicking on the "{lang}wcf.global.button.next{/lang}" button.]]>
              + + + + + + + + + + + + + + + + + + + + + + + + + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1}s{/if})]]> + 1} (#{$updatableInstance.instanceNo}){/if} version {$updatableInstance.packageVersion}]]> + + + + + + + + + + + + + + 1} (#{#$package.instanceNo}){/if} {$package.fromversion} is updated to {$package.toVersion}]]> + + + + + username}"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Character Separated Values)]]> + Extensible Markup Language)]]> + + + + + + + + + 1}s{/if}]]> + + + + + + without additional security notification, on all users matching the set conditions. Bulk processing can be very performance intensive, so it should only be executed when the forum is offline. To have a correct display of your content you should update the counters. The processing can not be reversed, so please be attentive when using this function.]]> + + + + + + + + + + + + + + + + + + + Here you can enter the sender's e-mail address in the following format:

              +

              {if MAIL_USE_FORMATTED_ADDRESS}Senders name <email@sender.tld>{else}email@sender.tld{/if}

              +

              If you have completely filled in the section under System -> Options -> E-mail, then this field will automatically be filled in. If you are sending e-mails using SMTP, then the sender's e-mail-Address must also be accepted by the server.

              ]]>
              + + + + + + + + + user->username}.]]> +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \T\o\d\a\y, g:ia]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 ? "Image " + (this.currentIndex + 1) + " of " + this.links.length + (this.currentLink.title ? (" - " + this.currentLink.title) : "") : (this.currentLink.title ? this.currentLink.title : "")]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              diff --git a/wcfsetup/setup/db/install.sql b/wcfsetup/setup/db/install.sql index 536cb53295..6d74acbaa3 100644 --- a/wcfsetup/setup/db/install.sql +++ b/wcfsetup/setup/db/install.sql @@ -1,827 +1,827 @@ -/**** tables ****/ -DROP TABLE IF EXISTS wcf1_acp_menu_item; -CREATE TABLE wcf1_acp_menu_item ( - menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - menuItem VARCHAR(255) NOT NULL DEFAULT '', - parentMenuItem VARCHAR(255) NOT NULL DEFAULT '', - menuItemLink VARCHAR(255) NOT NULL DEFAULT '', - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - UNIQUE KEY menuItem (menuItem, packageID) -); - -DROP TABLE IF EXISTS wcf1_acp_session; -CREATE TABLE wcf1_acp_session ( - sessionID CHAR(40) NOT NULL PRIMARY KEY, - packageID INT(10), - userID INT(10), - ipAddress VARCHAR(39) NOT NULL DEFAULT '', - userAgent VARCHAR(255) NOT NULL DEFAULT '', - lastActivityTime INT(10) NOT NULL DEFAULT 0, - requestURI VARCHAR(255) NOT NULL DEFAULT '', - requestMethod VARCHAR(4) NOT NULL DEFAULT '', - username VARCHAR(255) NOT NULL DEFAULT '', - KEY sessionID (sessionID, packageID) -); - -DROP TABLE IF EXISTS wcf1_acp_session_data; -CREATE TABLE wcf1_acp_session_data ( - sessionID CHAR(40) NOT NULL PRIMARY KEY, - sessionVariables MEDIUMTEXT -); - -DROP TABLE IF EXISTS wcf1_acp_session_access_log; -CREATE TABLE wcf1_acp_session_access_log ( - sessionAccessLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - sessionLogID INT(10) NOT NULL, - packageID INT(10), - ipAddress VARCHAR(39) NOT NULL DEFAULT '', - time INT(10) NOT NULL DEFAULT 0, - requestURI VARCHAR(255) NOT NULL DEFAULT '', - requestMethod VARCHAR(4) NOT NULL DEFAULT '', - className VARCHAR(255) NOT NULL DEFAULT '', - KEY sessionLogID (sessionLogID) -); - -DROP TABLE IF EXISTS wcf1_acp_session_log; -CREATE TABLE wcf1_acp_session_log ( - sessionLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - sessionID CHAR(40) NOT NULL DEFAULT '', - userID INT(10), - ipAddress VARCHAR(39) NOT NULL DEFAULT '', - hostname VARCHAR(255) NOT NULL DEFAULT '', - userAgent VARCHAR(255) NOT NULL DEFAULT '', - time INT(10) NOT NULL DEFAULT 0, - lastActivityTime INT(10) NOT NULL DEFAULT 0, - KEY sessionID (sessionID) -); - -DROP TABLE IF EXISTS wcf1_acp_template; -CREATE TABLE wcf1_acp_template ( - templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10), - templateName VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY (packageID, templateName) -); - -DROP TABLE IF EXISTS wcf1_application; -CREATE TABLE wcf1_application ( - packageID INT(10) NOT NULL PRIMARY KEY, - domainName VARCHAR(255) NOT NULL, - domainPath VARCHAR(255) NOT NULL DEFAULT '/', - groupID INT(10), - isPrimary TINYINT(1) NOT NULL DEFAULT 0 -); - -DROP TABLE IF EXISTS wcf1_application_group; -CREATE TABLE wcf1_application_group ( - groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - groupName VARCHAR(255) NOT NULL -); - -DROP TABLE IF EXISTS wcf1_cache_resource; -CREATE TABLE wcf1_cache_resource ( - cacheResource VARCHAR(255) NOT NULL PRIMARY KEY -); - -DROP TABLE IF EXISTS wcf1_cleanup_listener; -CREATE TABLE wcf1_cleanup_listener ( - listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - className VARCHAR(255) NOT NULL DEFAULT '', - objectType VARCHAR(255) NOT NULL DEFAULT '', - lastUpdateTime INT(10) NOT NULL DEFAULT 0, - UNIQUE KEY (className, packageID) -); - -DROP TABLE IF EXISTS wcf1_cleanup_log; -CREATE TABLE wcf1_cleanup_log ( - packageID INT(10) NOT NULL DEFAULT 0, - objectType VARCHAR(255) NOT NULL DEFAULT '', - objectID INT(10) NOT NULL DEFAULT 0, - deleteTime INT(10) NOT NULL DEFAULT 0, - KEY objectType (objectType) -); - -DROP TABLE IF EXISTS wcf1_core_object; -CREATE TABLE wcf1_core_object ( - objectID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - objectName VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY object (packageID, objectName) -); - -DROP TABLE IF EXISTS wcf1_cronjob; -CREATE TABLE wcf1_cronjob ( - cronjobID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - className varchar(255) NOT NULL DEFAULT '', - packageID INT(10) NOT NULL, - description varchar(255) NOT NULL DEFAULT '', - startMinute varchar(255) NOT NULL DEFAULT '*', - startHour varchar(255) NOT NULL DEFAULT '*', - startDom varchar(255) NOT NULL DEFAULT '*', - startMonth varchar(255) NOT NULL DEFAULT '*', - startDow varchar(255) NOT NULL DEFAULT '*', - lastExec INT(10) NOT NULL DEFAULT 0, - nextExec INT(10) NOT NULL DEFAULT 0, - afterNextExec INT(10) NOT NULL DEFAULT 0, - active TINYINT NOT NULL DEFAULT 1, - canBeEdited TINYINT NOT NULL DEFAULT 1, - canBeDisabled TINYINT NOT NULL DEFAULT 1, - state TINYINT(1) NOT NULL DEFAULT 1, - failCount TINYINT(1) NOT NULL DEFAULT 0 -); - -DROP TABLE IF EXISTS wcf1_cronjob_log; -CREATE TABLE wcf1_cronjob_log ( - cronjobLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - cronjobID INT(10) NOT NULL, - execTime INT(10) NOT NULL DEFAULT 0, - success TINYINT NOT NULL DEFAULT 0, - error TEXT -); - -DROP TABLE IF EXISTS wcf1_event_listener; -CREATE TABLE wcf1_event_listener ( - listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - eventClassName VARCHAR(80) NOT NULL DEFAULT '', - eventName VARCHAR(50) NOT NULL DEFAULT '', - listenerClassName VARCHAR(200) NOT NULL DEFAULT '', - inherit TINYINT(1) NOT NULL DEFAULT 0, - niceValue TINYINT(3) NOT NULL DEFAULT 0, - UNIQUE KEY packageID (packageID, eventClassName, eventName, listenerClassName) -); - -DROP TABLE IF EXISTS wcf1_language; -CREATE TABLE wcf1_language ( - languageID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - languageCode VARCHAR(20) NOT NULL DEFAULT '', - isDefault TINYINT(1) NOT NULL DEFAULT 0, - hasContent TINYINT(1) NOT NULL DEFAULT 0, - UNIQUE KEY languageCode (languageCode) -); - -DROP TABLE IF EXISTS wcf1_language_category; -CREATE TABLE wcf1_language_category ( - languageCategoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - languageCategory VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY languageCategory (languageCategory) -); - -DROP TABLE IF EXISTS wcf1_language_item; -CREATE TABLE wcf1_language_item ( - languageItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - languageID INT(10) NOT NULL, - languageItem VARCHAR(255) NOT NULL DEFAULT '', - languageItemValue MEDIUMTEXT NOT NULL, - languageCustomItemValue MEDIUMTEXT, - languageUseCustomValue TINYINT(1) NOT NULL DEFAULT 0, - languageItemOriginIsSystem TINYINT(1) NOT NULL DEFAULT 1, - languageCategoryID INT(10) NOT NULL, - packageID INT(10), - UNIQUE KEY languageItem (languageItem, packageID, languageID), - KEY languageItemOriginIsSystem (languageItemOriginIsSystem) -); - -DROP TABLE IF EXISTS wcf1_language_server; -CREATE TABLE wcf1_language_server ( - languageServerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - serverURL VARCHAR(255) NOT NULL DEFAULT '', - disabled TINYINT(1) NOT NULL DEFAULT 0 -); - -DROP TABLE IF EXISTS wcf1_language_to_package; -CREATE TABLE wcf1_language_to_package ( - languageID INT(10) NOT NULL, - packageID INT(10), - UNIQUE KEY languageID (languageID, packageID) -); - -DROP TABLE IF EXISTS wcf1_option; -CREATE TABLE wcf1_option ( - optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - optionName VARCHAR(255) NOT NULL DEFAULT '', - categoryName VARCHAR(255) NOT NULL DEFAULT '', - optionType VARCHAR(255) NOT NULL DEFAULT '', - optionValue MEDIUMTEXT, - validationPattern TEXT, - selectOptions MEDIUMTEXT, - enableOptions MEDIUMTEXT, - showOrder INT(10) NOT NULL DEFAULT 0, - hidden TINYINT(1) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - additionalData MEDIUMTEXT, - UNIQUE KEY optionName (optionName, packageID) -); - -DROP TABLE IF EXISTS wcf1_option_category; -CREATE TABLE wcf1_option_category ( - categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - categoryName VARCHAR(255) NOT NULL DEFAULT '', - parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - UNIQUE KEY categoryName (categoryName, packageID) -); - -DROP TABLE IF EXISTS wcf1_package; -CREATE TABLE wcf1_package ( - packageID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - package VARCHAR(255) NOT NULL DEFAULT '', - packageDir VARCHAR(255) NOT NULL DEFAULT '', - packageName VARCHAR(255) NOT NULL DEFAULT '', - instanceName VARCHAR(255) NOT NULL DEFAULT '', - instanceNo INT(10) NOT NULL DEFAULT 1, - packageDescription VARCHAR(255) NOT NULL DEFAULT '', - packageVersion VARCHAR(255) NOT NULL DEFAULT '', - packageDate INT(10) NOT NULL DEFAULT 0, - installDate INT(10) NOT NULL DEFAULT 0, - updateDate INT(10) NOT NULL DEFAULT 0, - packageURL VARCHAR(255) NOT NULL DEFAULT '', - parentPackageID INT(10) NOT NULL DEFAULT 0, - isUnique TINYINT(1) NOT NULL DEFAULT 0, - standalone TINYINT(1) NOT NULL DEFAULT 0, - author VARCHAR(255) NOT NULL DEFAULT '', - authorURL VARCHAR(255) NOT NULL DEFAULT '', - KEY package (package) -); - -DROP TABLE IF EXISTS wcf1_package_dependency; -CREATE TABLE wcf1_package_dependency ( - packageID INT(10) NOT NULL, - dependency INT(10) NOT NULL, - priority INT(10) NOT NULL DEFAULT 0, - UNIQUE KEY packageID (packageID, dependency) -); - -DROP TABLE IF EXISTS wcf1_package_exclusion; -CREATE TABLE wcf1_package_exclusion ( - packageID INT(10) NOT NULL, - excludedPackage VARCHAR(255) NOT NULL DEFAULT '', - excludedPackageVersion VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY packageID (packageID, excludedPackage) -); - -DROP TABLE IF EXISTS wcf1_package_installation_file_log; -CREATE TABLE wcf1_package_installation_file_log ( - packageID INT(10), - filename VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY packageID (packageID, filename) -); - -DROP TABLE IF EXISTS wcf1_package_installation_form; -CREATE TABLE wcf1_package_installation_form ( - queueID INT(10) NOT NULL, - formName VARCHAR(80) NOT NULL DEFAULT '', - document TEXT NOT NULL, - UNIQUE KEY formDocument (queueID, formName) -); - -DROP TABLE IF EXISTS wcf1_package_installation_node; -CREATE TABLE wcf1_package_installation_node ( - queueID INT(10) NOT NULL, - processNo INT(10) NOT NULL DEFAULT 0, - sequenceNo SMALLINT(4) NOT NULL DEFAULT 0, - node CHAR(8) NOT NULL DEFAULT '', - parentNode CHAR(8) NOT NULL DEFAULT '', - nodeType ENUM('package', 'pip') NOT NULL DEFAULT 'package', - nodeData TEXT NOT NULL, - done TINYINT(1) NOT NULL DEFAULT 0 -); - -DROP TABLE IF EXISTS wcf1_package_installation_plugin; -CREATE TABLE wcf1_package_installation_plugin ( - pluginName VARCHAR(255) NOT NULL PRIMARY KEY, - packageID INT(10), - priority TINYINT(1) NOT NULL DEFAULT 0, - className VARCHAR(255) NOT NULL -); - -DROP TABLE IF EXISTS wcf1_package_installation_queue; -CREATE TABLE wcf1_package_installation_queue ( - queueID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - parentQueueID INT(10) NOT NULL DEFAULT 0, - processNo INT(10) NOT NULL DEFAULT 0, - userID INT(10) NOT NULL, - package VARCHAR(255) NOT NULL DEFAULT '', - packageName VARCHAR(255) NOT NULL DEFAULT '', - packageID INT(10), - archive VARCHAR(255) NOT NULL DEFAULT '', - action ENUM('install', 'update', 'uninstall', 'rollback') NOT NULL DEFAULT 'install', - cancelable TINYINT(1) NOT NULL DEFAULT 1, - done TINYINT(1) NOT NULL DEFAULT 0, - confirmInstallation TINYINT(1) NOT NULL DEFAULT 0, - packageType ENUM('default', 'requirement', 'optional') NOT NULL DEFAULT 'default' -); - -DROP TABLE IF EXISTS wcf1_package_installation_sql_log; -CREATE TABLE wcf1_package_installation_sql_log ( - packageID INT(10), - sqlTable VARCHAR(100) NOT NULL DEFAULT '', - sqlColumn VARCHAR(100) NOT NULL DEFAULT '', - sqlIndex VARCHAR(100) NOT NULL DEFAULT '', - UNIQUE KEY packageID (packageID, sqlTable, sqlColumn, sqlIndex) -); - -DROP TABLE IF EXISTS wcf1_package_requirement; -CREATE TABLE wcf1_package_requirement ( - packageID INT(10) NOT NULL, - requirement INT(10) NOT NULL, - UNIQUE KEY packageID (packageID, requirement) -); - -DROP TABLE IF EXISTS wcf1_package_requirement_map; -CREATE TABLE wcf1_package_requirement_map ( - packageID INT(10) NOT NULL, - requirement INT(10) NOT NULL, - level INT(10) NOT NULL DEFAULT 0, - UNIQUE KEY packageID (packageID, requirement) -); - -DROP TABLE IF EXISTS wcf1_package_update; -CREATE TABLE wcf1_package_update ( - packageUpdateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageUpdateServerID INT(10) NOT NULL, - package VARCHAR(255) NOT NULL DEFAULT '', - packageName VARCHAR(255) NOT NULL DEFAULT '', - packageDescription VARCHAR(255) NOT NULL DEFAULT '', - author VARCHAR(255) NOT NULL DEFAULT '', - authorURL VARCHAR(255) NOT NULL DEFAULT '', - standalone TINYINT(1) NOT NULL DEFAULT 0, - plugin VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY packageUpdateServerID (packageUpdateServerID, package) -); - -DROP TABLE IF EXISTS wcf1_package_update_exclusion; -CREATE TABLE wcf1_package_update_exclusion ( - packageUpdateVersionID INT(10) NOT NULL, - excludedPackage VARCHAR(255) NOT NULL DEFAULT '', - excludedPackageVersion VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, excludedPackage) -); - -DROP TABLE IF EXISTS wcf1_package_update_fromversion; -CREATE TABLE wcf1_package_update_fromversion ( - packageUpdateVersionID INT(10) NOT NULL DEFAULT 0, - fromversion VARCHAR(50) NOT NULL DEFAULT '', - UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, fromversion) -); - -DROP TABLE IF EXISTS wcf1_package_update_requirement; -CREATE TABLE wcf1_package_update_requirement ( - packageUpdateVersionID INT(10) NOT NULL, - package VARCHAR(255) NOT NULL DEFAULT '', - minversion VARCHAR(50) NOT NULL DEFAULT '', - UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, package) -); - -DROP TABLE IF EXISTS wcf1_package_update_server; -CREATE TABLE wcf1_package_update_server ( - packageUpdateServerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - serverURL VARCHAR(255) NOT NULL DEFAULT '', - loginUsername VARCHAR(255) NOT NULL DEFAULT '', - loginPassword VARCHAR(255) NOT NULL DEFAULT '', - disabled TINYINT(1) NOT NULL DEFAULT 0, - lastUpdateTime INT(10) NOT NULL DEFAULT 0, - status ENUM('online', 'offline') NOT NULL DEFAULT 'online', - errorMessage TEXT -); - -DROP TABLE IF EXISTS wcf1_package_update_version; -CREATE TABLE wcf1_package_update_version ( - packageUpdateVersionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageUpdateID INT(10) NOT NULL, - packageVersion VARCHAR(50) NOT NULL DEFAULT '', - updateType VARCHAR(10) NOT NULL DEFAULT '', - packageDate INT(10) NOT NULL DEFAULT 0, - filename VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY packageUpdateID (packageUpdateID, packageVersion) -); - -DROP TABLE IF EXISTS wcf1_page_location; -CREATE TABLE wcf1_page_location ( - locationID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - locationPattern VARCHAR(255) NOT NULL DEFAULT '', - locationName VARCHAR(255) NOT NULL DEFAULT '', - packageID INT(10) NOT NULL, - className varchar(255) NOT NULL DEFAULT '', - UNIQUE KEY (packageID, locationName) -); - -DROP TABLE IF EXISTS wcf1_page_menu_item; -CREATE TABLE wcf1_page_menu_item ( - menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - menuItem VARCHAR(255) NOT NULL DEFAULT '', - parentMenuItem VARCHAR(255) NOT NULL DEFAULT '', - menuItemLink VARCHAR(255) NOT NULL DEFAULT '', - menuPosition ENUM('header', 'footer') NOT NULL DEFAULT 'header', - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT NULL, - options TEXT NULL, - isDisabled TINYINT(1) NOT NULL DEFAULT 0, - className VARCHAR(255) NOT NULL DEFAULT '', - UNIQUE KEY (packageID, menuItem) -); - -DROP TABLE IF EXISTS wcf1_search; -CREATE TABLE wcf1_search ( - searchID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - userID INT(10), - searchData MEDIUMTEXT NOT NULL, - searchTime INT(10) NOT NULL DEFAULT 0, - searchType VARCHAR(255) NOT NULL DEFAULT '', - searchHash CHAR(40) NOT NULL DEFAULT '', - KEY searchHash (searchHash) -); - -DROP TABLE IF EXISTS wcf1_session; -CREATE TABLE wcf1_session ( - sessionID CHAR(40) NOT NULL PRIMARY KEY, - packageID INT(10) NOT NULL, - userID INT(10), - ipAddress VARCHAR(39) NOT NULL DEFAULT '', - userAgent VARCHAR(255) NOT NULL DEFAULT '', - lastActivityTime INT(10) NOT NULL DEFAULT 0, - requestURI VARCHAR(255) NOT NULL DEFAULT '', - requestMethod VARCHAR(4) NOT NULL DEFAULT '', - username VARCHAR(255) NOT NULL DEFAULT '', - spiderID INT(10) NOT NULL DEFAULT 0, - KEY packageID (packageID, lastActivityTime, spiderID) -); - -DROP TABLE IF EXISTS wcf1_session_data; -CREATE TABLE wcf1_session_data ( - sessionID CHAR(40) NOT NULL PRIMARY KEY, - sessionVariables MEDIUMTEXT -); - -DROP TABLE IF EXISTS wcf1_spider; -CREATE TABLE wcf1_spider ( - spiderID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - spiderIdentifier VARCHAR(255) DEFAULT '', - spiderName VARCHAR(255) DEFAULT '', - spiderURL VARCHAR(255) DEFAULT '', - UNIQUE KEY spiderIdentifier (spiderIdentifier) -); - -DROP TABLE IF EXISTS wcf1_style; -CREATE TABLE wcf1_style ( - styleID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - styleName VARCHAR(255) NOT NULL DEFAULT '', - templateGroupID INT(10) NOT NULL DEFAULT 0, - isDefault TINYINT(1) NOT NULL DEFAULT 0, - disabled TINYINT(1) NOT NULL DEFAULT 0, - styleDescription TEXT, - styleVersion VARCHAR(255) NOT NULL DEFAULT '', - styleDate CHAR(10) NOT NULL DEFAULT '0000-00-00', - image VARCHAR(255) NOT NULL DEFAULT '', - copyright VARCHAR(255) NOT NULL DEFAULT '', - license VARCHAR(255) NOT NULL DEFAULT '', - authorName VARCHAR(255) NOT NULL DEFAULT '', - authorURL VARCHAR(255) NOT NULL DEFAULT '' -); - -DROP TABLE IF EXISTS wcf1_style_to_package; -CREATE TABLE wcf1_style_to_package ( - styleID INT(10) NOT NULL, - packageID INT(10) NOT NULL, - isDefault TINYINT(1) NOT NULL DEFAULT 0, - disabled TINYINT(1) NOT NULL DEFAULT 0, - UNIQUE KEY (styleID, packageID) -); - -DROP TABLE IF EXISTS wcf1_style_variable; -CREATE TABLE wcf1_style_variable ( - styleID INT(10) NOT NULL, - variableName VARCHAR(50) NOT NULL DEFAULT '', - variableValue MEDIUMTEXT, - UNIQUE KEY (styleID, variableName) -); - -DROP TABLE IF EXISTS wcf1_style_variable_to_attribute; -CREATE TABLE wcf1_style_variable_to_attribute ( - packageID INT(10) NOT NULL, - cssSelector VARCHAR(200) NOT NULL DEFAULT '', - attributeName VARCHAR(50) NOT NULL DEFAULT '', - variableName VARCHAR(50) NOT NULL DEFAULT '', - UNIQUE KEY (packageID, cssSelector, attributeName, variableName) -); - -DROP TABLE IF EXISTS wcf1_template; -CREATE TABLE wcf1_template ( - templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - templateName VARCHAR(255) NOT NULL DEFAULT '', - templateGroupID INT(10), - obsolete TINYINT(1) NOT NULL DEFAULT 0, - KEY packageID (packageID, templateName), - KEY templateGroupID (packageID, templateGroupID, templateName) -); - -DROP TABLE IF EXISTS wcf1_template_group; -CREATE TABLE wcf1_template_group ( - templateGroupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - parentTemplateGroupID INT(10) NOT NULL DEFAULT 0, - templateGroupName VARCHAR(255) NOT NULL DEFAULT '', - templateGroupFolderName VARCHAR(255) NOT NULL DEFAULT '' -); - -DROP TABLE IF EXISTS wcf1_user; -CREATE TABLE wcf1_user ( - userID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - username VARCHAR(255) NOT NULL DEFAULT '', - email VARCHAR(255) NOT NULL DEFAULT '', - password VARCHAR(40) NOT NULL DEFAULT '', - salt VARCHAR(40) NOT NULL DEFAULT '', - languageID INT(10) NOT NULL DEFAULT 0, - registrationDate INT(10) NOT NULL DEFAULT 0, - styleID INT(10) NOT NULL DEFAULT 0, - - KEY username (username), - KEY registrationDate (registrationDate), - KEY styleID (styleID) -); - -DROP TABLE IF EXISTS wcf1_user_group; -CREATE TABLE wcf1_user_group ( - groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - groupName VARCHAR(255) NOT NULL DEFAULT '', - groupType TINYINT(1) NOT NULL DEFAULT 0 -); - -DROP TABLE IF EXISTS wcf1_user_group_option; -CREATE TABLE wcf1_user_group_option ( - optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10), - optionName VARCHAR(255) NOT NULL DEFAULT '', - categoryName VARCHAR(255) NOT NULL DEFAULT '', - optionType VARCHAR(255) NOT NULL DEFAULT '', - defaultValue MEDIUMTEXT, - adminDefaultValue MEDIUMTEXT, - validationPattern TEXT, - enableOptions MEDIUMTEXT, - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - additionalData MEDIUMTEXT, - UNIQUE KEY optionName (optionName, packageID) -); - -DROP TABLE IF EXISTS wcf1_user_group_option_category; -CREATE TABLE wcf1_user_group_option_category ( - categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - categoryName VARCHAR(255) NOT NULL DEFAULT '', - parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - UNIQUE KEY categoryName (categoryName, packageID) -); - -DROP TABLE IF EXISTS wcf1_user_group_option_value; -CREATE TABLE wcf1_user_group_option_value ( - groupID INT(10) NOT NULL, - optionID INT(10) NOT NULL, - optionValue MEDIUMTEXT NOT NULL, - UNIQUE KEY groupID (groupID, optionID) -); - -DROP TABLE IF EXISTS wcf1_user_option; -CREATE TABLE wcf1_user_option ( - optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - optionName VARCHAR(255) NOT NULL DEFAULT '', - categoryName VARCHAR(255) NOT NULL DEFAULT '', - optionType VARCHAR(255) NOT NULL DEFAULT '', - defaultValue MEDIUMTEXT, - validationPattern TEXT, - selectOptions MEDIUMTEXT, - enableOptions MEDIUMTEXT, - required TINYINT(1) NOT NULL DEFAULT 0, - askDuringRegistration TINYINT(1) NOT NULL DEFAULT 0, - editable TINYINT(1) NOT NULL DEFAULT 0, - visible TINYINT(1) NOT NULL DEFAULT 0, - outputClass VARCHAR(255) NOT NULL DEFAULT '', - searchable TINYINT(1) NOT NULL DEFAULT 0, - showOrder INT(10) NOT NULL DEFAULT 0, - disabled TINYINT(1) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - additionalData MEDIUMTEXT, - UNIQUE KEY optionName (optionName, packageID), - KEY categoryName (categoryName) -); - -DROP TABLE IF EXISTS wcf1_user_option_category; -CREATE TABLE wcf1_user_option_category ( - categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - categoryName VARCHAR(255) NOT NULL DEFAULT '', - categoryIconS VARCHAR(255) NOT NULL DEFAULT '', - categoryIconM VARCHAR(255) NOT NULL DEFAULT '', - parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', - showOrder INT(10) NOT NULL DEFAULT 0, - permissions TEXT, - options TEXT, - UNIQUE KEY categoryName (categoryName, packageID) -); - -DROP TABLE IF EXISTS wcf1_user_option_value; -CREATE TABLE wcf1_user_option_value ( - userID INT(10) NOT NULL PRIMARY KEY -); - -DROP TABLE IF EXISTS wcf1_user_to_group; -CREATE TABLE wcf1_user_to_group ( - userID INT(10) NOT NULL, - groupID INT(10) NOT NULL, - UNIQUE KEY userID (userID, groupID) -); - -DROP TABLE IF EXISTS wcf1_user_to_language; -CREATE TABLE wcf1_user_to_language ( - userID INT(10) NOT NULL, - languageID INT(10) NOT NULL, - UNIQUE KEY userID (userID, languageID) -); - -DROP TABLE IF EXISTS wcf1_template_listener; -CREATE TABLE wcf1_template_listener ( - listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, - packageID INT(10) NOT NULL, - name VARCHAR(80) NOT NULL DEFAULT '', - environment ENUM('user','admin') NOT NULL DEFAULT 'user', - templateName VARCHAR(80) NOT NULL DEFAULT '', - eventName VARCHAR(50) NOT NULL DEFAULT '', - templateCode TEXT NOT NULL, - KEY templateName (environment, templateName) -); - -DROP TABLE IF EXISTS wcf1_storage; -CREATE TABLE wcf1_storage ( - userID INT(10) NOT NULL, - field VARCHAR(80) NOT NULL DEFAULT '', - fieldValue TEXT, - packageID INT(10), - UNIQUE KEY storageData (userID, field, packageID) -); - -/**** foreign keys ****/ -ALTER TABLE wcf1_acp_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; -ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (sessionLogID) REFERENCES wcf1_acp_session_log (sessionLogID) ON DELETE CASCADE; -ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE SET NULL; - -ALTER TABLE wcf1_acp_session_data ADD FOREIGN KEY (sessionID) REFERENCES wcf1_acp_session (sessionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_acp_session_log ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL; - -ALTER TABLE wcf1_acp_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_application ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_application ADD FOREIGN KEY (groupID) REFERENCES wcf1_application_group (groupID) ON DELETE SET NULL; - -ALTER TABLE wcf1_cleanup_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_cleanup_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_core_object ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_cronjob ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_cronjob_log ADD FOREIGN KEY (cronjobID) REFERENCES wcf1_cronjob (cronjobID) ON DELETE CASCADE; - -ALTER TABLE wcf1_event_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; -ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageCategoryID) REFERENCES wcf1_language_category (languageCategoryID) ON DELETE CASCADE; -ALTER TABLE wcf1_language_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; -ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (dependency) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_exclusion ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_installation_file_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_installation_form ADD FOREIGN KEY (queueID) REFERENCES wcf1_package_installation_queue (queueID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_installation_node ADD FOREIGN KEY (queueID) REFERENCES wcf1_package_installation_queue (queueID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_installation_plugin ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_installation_queue ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; -ALTER TABLE wcf1_package_installation_queue ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE SET NULL; - -ALTER TABLE wcf1_package_installation_sql_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_update ADD FOREIGN KEY (packageUpdateServerID) REFERENCES wcf1_package_update_server (packageUpdateServerID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_update_exclusion ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_update_fromversion ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_update_requirement ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_package_update_version ADD FOREIGN KEY (packageUpdateID) REFERENCES wcf1_package_update (packageUpdateID) ON DELETE CASCADE; - -ALTER TABLE wcf1_page_location ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_page_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_search ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; - -ALTER TABLE wcf1_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; - -ALTER TABLE wcf1_session_data ADD FOREIGN KEY (sessionID) REFERENCES wcf1_session (sessionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_storage ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; -ALTER TABLE wcf1_storage ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_style ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE; -ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_style_variable ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE; - -ALTER TABLE wcf1_style_variable_to_attribute ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; -ALTER TABLE wcf1_template ADD FOREIGN KEY (templateGroupID) REFERENCES wcf1_template_group (templateGroupID) ON DELETE CASCADE; - -ALTER TABLE wcf1_template_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_group_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_group_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_group_option_value ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE CASCADE; -ALTER TABLE wcf1_user_group_option_value ADD FOREIGN KEY (optionID) REFERENCES wcf1_user_group_option (optionID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_option_value ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; -ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE CASCADE; - -ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; -ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; - -/**** default inserts ****/ --- default user groups -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Everyone', 1); -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Guests', 2); -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Users', 3); -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Administrators', 4); -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Moderators', 4); -INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Super Moderators', 4); - --- default user group options -INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.general.canUseAcp', 'admin.general', 'boolean', '0', '1', 1); -INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.system.package.canInstallPackage', 'admin.system.package', 'boolean', '0', '1', 1); -INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.user.canEditGroup', 'admin.user.group', 'boolean', '0', '1', 1); - --- default user group option values -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 1, '0'); -- Everyone -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 2, '0'); -- Everyone -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 3, '0'); -- Everyone -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 1, '1'); -- Administrators -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 2, '1'); -- Administrators -INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 3, '1'); -- Administrators - --- default update servers -INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/tempest/', 'online', 0, NULL, 0, '', ''); -INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', ''); -INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/tempest/', 'online', 0, NULL, 0, '', ''); -INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', ''); +/**** tables ****/ +DROP TABLE IF EXISTS wcf1_acp_menu_item; +CREATE TABLE wcf1_acp_menu_item ( + menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + menuItem VARCHAR(255) NOT NULL DEFAULT '', + parentMenuItem VARCHAR(255) NOT NULL DEFAULT '', + menuItemLink VARCHAR(255) NOT NULL DEFAULT '', + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + UNIQUE KEY menuItem (menuItem, packageID) +); + +DROP TABLE IF EXISTS wcf1_acp_session; +CREATE TABLE wcf1_acp_session ( + sessionID CHAR(40) NOT NULL PRIMARY KEY, + packageID INT(10), + userID INT(10), + ipAddress VARCHAR(39) NOT NULL DEFAULT '', + userAgent VARCHAR(255) NOT NULL DEFAULT '', + lastActivityTime INT(10) NOT NULL DEFAULT 0, + requestURI VARCHAR(255) NOT NULL DEFAULT '', + requestMethod VARCHAR(4) NOT NULL DEFAULT '', + username VARCHAR(255) NOT NULL DEFAULT '', + KEY sessionID (sessionID, packageID) +); + +DROP TABLE IF EXISTS wcf1_acp_session_data; +CREATE TABLE wcf1_acp_session_data ( + sessionID CHAR(40) NOT NULL PRIMARY KEY, + sessionVariables MEDIUMTEXT +); + +DROP TABLE IF EXISTS wcf1_acp_session_access_log; +CREATE TABLE wcf1_acp_session_access_log ( + sessionAccessLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + sessionLogID INT(10) NOT NULL, + packageID INT(10), + ipAddress VARCHAR(39) NOT NULL DEFAULT '', + time INT(10) NOT NULL DEFAULT 0, + requestURI VARCHAR(255) NOT NULL DEFAULT '', + requestMethod VARCHAR(4) NOT NULL DEFAULT '', + className VARCHAR(255) NOT NULL DEFAULT '', + KEY sessionLogID (sessionLogID) +); + +DROP TABLE IF EXISTS wcf1_acp_session_log; +CREATE TABLE wcf1_acp_session_log ( + sessionLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + sessionID CHAR(40) NOT NULL DEFAULT '', + userID INT(10), + ipAddress VARCHAR(39) NOT NULL DEFAULT '', + hostname VARCHAR(255) NOT NULL DEFAULT '', + userAgent VARCHAR(255) NOT NULL DEFAULT '', + time INT(10) NOT NULL DEFAULT 0, + lastActivityTime INT(10) NOT NULL DEFAULT 0, + KEY sessionID (sessionID) +); + +DROP TABLE IF EXISTS wcf1_acp_template; +CREATE TABLE wcf1_acp_template ( + templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10), + templateName VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY (packageID, templateName) +); + +DROP TABLE IF EXISTS wcf1_application; +CREATE TABLE wcf1_application ( + packageID INT(10) NOT NULL PRIMARY KEY, + domainName VARCHAR(255) NOT NULL, + domainPath VARCHAR(255) NOT NULL DEFAULT '/', + groupID INT(10), + isPrimary TINYINT(1) NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS wcf1_application_group; +CREATE TABLE wcf1_application_group ( + groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + groupName VARCHAR(255) NOT NULL +); + +DROP TABLE IF EXISTS wcf1_cache_resource; +CREATE TABLE wcf1_cache_resource ( + cacheResource VARCHAR(255) NOT NULL PRIMARY KEY +); + +DROP TABLE IF EXISTS wcf1_cleanup_listener; +CREATE TABLE wcf1_cleanup_listener ( + listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + className VARCHAR(255) NOT NULL DEFAULT '', + objectType VARCHAR(255) NOT NULL DEFAULT '', + lastUpdateTime INT(10) NOT NULL DEFAULT 0, + UNIQUE KEY (className, packageID) +); + +DROP TABLE IF EXISTS wcf1_cleanup_log; +CREATE TABLE wcf1_cleanup_log ( + packageID INT(10) NOT NULL DEFAULT 0, + objectType VARCHAR(255) NOT NULL DEFAULT '', + objectID INT(10) NOT NULL DEFAULT 0, + deleteTime INT(10) NOT NULL DEFAULT 0, + KEY objectType (objectType) +); + +DROP TABLE IF EXISTS wcf1_core_object; +CREATE TABLE wcf1_core_object ( + objectID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + objectName VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY object (packageID, objectName) +); + +DROP TABLE IF EXISTS wcf1_cronjob; +CREATE TABLE wcf1_cronjob ( + cronjobID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + className varchar(255) NOT NULL DEFAULT '', + packageID INT(10) NOT NULL, + description varchar(255) NOT NULL DEFAULT '', + startMinute varchar(255) NOT NULL DEFAULT '*', + startHour varchar(255) NOT NULL DEFAULT '*', + startDom varchar(255) NOT NULL DEFAULT '*', + startMonth varchar(255) NOT NULL DEFAULT '*', + startDow varchar(255) NOT NULL DEFAULT '*', + lastExec INT(10) NOT NULL DEFAULT 0, + nextExec INT(10) NOT NULL DEFAULT 0, + afterNextExec INT(10) NOT NULL DEFAULT 0, + active TINYINT NOT NULL DEFAULT 1, + canBeEdited TINYINT NOT NULL DEFAULT 1, + canBeDisabled TINYINT NOT NULL DEFAULT 1, + state TINYINT(1) NOT NULL DEFAULT 1, + failCount TINYINT(1) NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS wcf1_cronjob_log; +CREATE TABLE wcf1_cronjob_log ( + cronjobLogID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + cronjobID INT(10) NOT NULL, + execTime INT(10) NOT NULL DEFAULT 0, + success TINYINT NOT NULL DEFAULT 0, + error TEXT +); + +DROP TABLE IF EXISTS wcf1_event_listener; +CREATE TABLE wcf1_event_listener ( + listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + eventClassName VARCHAR(80) NOT NULL DEFAULT '', + eventName VARCHAR(50) NOT NULL DEFAULT '', + listenerClassName VARCHAR(200) NOT NULL DEFAULT '', + inherit TINYINT(1) NOT NULL DEFAULT 0, + niceValue TINYINT(3) NOT NULL DEFAULT 0, + UNIQUE KEY packageID (packageID, eventClassName, eventName, listenerClassName) +); + +DROP TABLE IF EXISTS wcf1_language; +CREATE TABLE wcf1_language ( + languageID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + languageCode VARCHAR(20) NOT NULL DEFAULT '', + isDefault TINYINT(1) NOT NULL DEFAULT 0, + hasContent TINYINT(1) NOT NULL DEFAULT 0, + UNIQUE KEY languageCode (languageCode) +); + +DROP TABLE IF EXISTS wcf1_language_category; +CREATE TABLE wcf1_language_category ( + languageCategoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + languageCategory VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY languageCategory (languageCategory) +); + +DROP TABLE IF EXISTS wcf1_language_item; +CREATE TABLE wcf1_language_item ( + languageItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + languageID INT(10) NOT NULL, + languageItem VARCHAR(255) NOT NULL DEFAULT '', + languageItemValue MEDIUMTEXT NOT NULL, + languageCustomItemValue MEDIUMTEXT, + languageUseCustomValue TINYINT(1) NOT NULL DEFAULT 0, + languageItemOriginIsSystem TINYINT(1) NOT NULL DEFAULT 1, + languageCategoryID INT(10) NOT NULL, + packageID INT(10), + UNIQUE KEY languageItem (languageItem, packageID, languageID), + KEY languageItemOriginIsSystem (languageItemOriginIsSystem) +); + +DROP TABLE IF EXISTS wcf1_language_server; +CREATE TABLE wcf1_language_server ( + languageServerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + serverURL VARCHAR(255) NOT NULL DEFAULT '', + disabled TINYINT(1) NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS wcf1_language_to_package; +CREATE TABLE wcf1_language_to_package ( + languageID INT(10) NOT NULL, + packageID INT(10), + UNIQUE KEY languageID (languageID, packageID) +); + +DROP TABLE IF EXISTS wcf1_option; +CREATE TABLE wcf1_option ( + optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + optionName VARCHAR(255) NOT NULL DEFAULT '', + categoryName VARCHAR(255) NOT NULL DEFAULT '', + optionType VARCHAR(255) NOT NULL DEFAULT '', + optionValue MEDIUMTEXT, + validationPattern TEXT, + selectOptions MEDIUMTEXT, + enableOptions MEDIUMTEXT, + showOrder INT(10) NOT NULL DEFAULT 0, + hidden TINYINT(1) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + additionalData MEDIUMTEXT, + UNIQUE KEY optionName (optionName, packageID) +); + +DROP TABLE IF EXISTS wcf1_option_category; +CREATE TABLE wcf1_option_category ( + categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + categoryName VARCHAR(255) NOT NULL DEFAULT '', + parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + UNIQUE KEY categoryName (categoryName, packageID) +); + +DROP TABLE IF EXISTS wcf1_package; +CREATE TABLE wcf1_package ( + packageID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + package VARCHAR(255) NOT NULL DEFAULT '', + packageDir VARCHAR(255) NOT NULL DEFAULT '', + packageName VARCHAR(255) NOT NULL DEFAULT '', + instanceName VARCHAR(255) NOT NULL DEFAULT '', + instanceNo INT(10) NOT NULL DEFAULT 1, + packageDescription VARCHAR(255) NOT NULL DEFAULT '', + packageVersion VARCHAR(255) NOT NULL DEFAULT '', + packageDate INT(10) NOT NULL DEFAULT 0, + installDate INT(10) NOT NULL DEFAULT 0, + updateDate INT(10) NOT NULL DEFAULT 0, + packageURL VARCHAR(255) NOT NULL DEFAULT '', + parentPackageID INT(10) NOT NULL DEFAULT 0, + isUnique TINYINT(1) NOT NULL DEFAULT 0, + standalone TINYINT(1) NOT NULL DEFAULT 0, + author VARCHAR(255) NOT NULL DEFAULT '', + authorURL VARCHAR(255) NOT NULL DEFAULT '', + KEY package (package) +); + +DROP TABLE IF EXISTS wcf1_package_dependency; +CREATE TABLE wcf1_package_dependency ( + packageID INT(10) NOT NULL, + dependency INT(10) NOT NULL, + priority INT(10) NOT NULL DEFAULT 0, + UNIQUE KEY packageID (packageID, dependency) +); + +DROP TABLE IF EXISTS wcf1_package_exclusion; +CREATE TABLE wcf1_package_exclusion ( + packageID INT(10) NOT NULL, + excludedPackage VARCHAR(255) NOT NULL DEFAULT '', + excludedPackageVersion VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY packageID (packageID, excludedPackage) +); + +DROP TABLE IF EXISTS wcf1_package_installation_file_log; +CREATE TABLE wcf1_package_installation_file_log ( + packageID INT(10), + filename VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY packageID (packageID, filename) +); + +DROP TABLE IF EXISTS wcf1_package_installation_form; +CREATE TABLE wcf1_package_installation_form ( + queueID INT(10) NOT NULL, + formName VARCHAR(80) NOT NULL DEFAULT '', + document TEXT NOT NULL, + UNIQUE KEY formDocument (queueID, formName) +); + +DROP TABLE IF EXISTS wcf1_package_installation_node; +CREATE TABLE wcf1_package_installation_node ( + queueID INT(10) NOT NULL, + processNo INT(10) NOT NULL DEFAULT 0, + sequenceNo SMALLINT(4) NOT NULL DEFAULT 0, + node CHAR(8) NOT NULL DEFAULT '', + parentNode CHAR(8) NOT NULL DEFAULT '', + nodeType ENUM('package', 'pip') NOT NULL DEFAULT 'package', + nodeData TEXT NOT NULL, + done TINYINT(1) NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS wcf1_package_installation_plugin; +CREATE TABLE wcf1_package_installation_plugin ( + pluginName VARCHAR(255) NOT NULL PRIMARY KEY, + packageID INT(10), + priority TINYINT(1) NOT NULL DEFAULT 0, + className VARCHAR(255) NOT NULL +); + +DROP TABLE IF EXISTS wcf1_package_installation_queue; +CREATE TABLE wcf1_package_installation_queue ( + queueID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + parentQueueID INT(10) NOT NULL DEFAULT 0, + processNo INT(10) NOT NULL DEFAULT 0, + userID INT(10) NOT NULL, + package VARCHAR(255) NOT NULL DEFAULT '', + packageName VARCHAR(255) NOT NULL DEFAULT '', + packageID INT(10), + archive VARCHAR(255) NOT NULL DEFAULT '', + action ENUM('install', 'update', 'uninstall', 'rollback') NOT NULL DEFAULT 'install', + cancelable TINYINT(1) NOT NULL DEFAULT 1, + done TINYINT(1) NOT NULL DEFAULT 0, + confirmInstallation TINYINT(1) NOT NULL DEFAULT 0, + packageType ENUM('default', 'requirement', 'optional') NOT NULL DEFAULT 'default' +); + +DROP TABLE IF EXISTS wcf1_package_installation_sql_log; +CREATE TABLE wcf1_package_installation_sql_log ( + packageID INT(10), + sqlTable VARCHAR(100) NOT NULL DEFAULT '', + sqlColumn VARCHAR(100) NOT NULL DEFAULT '', + sqlIndex VARCHAR(100) NOT NULL DEFAULT '', + UNIQUE KEY packageID (packageID, sqlTable, sqlColumn, sqlIndex) +); + +DROP TABLE IF EXISTS wcf1_package_requirement; +CREATE TABLE wcf1_package_requirement ( + packageID INT(10) NOT NULL, + requirement INT(10) NOT NULL, + UNIQUE KEY packageID (packageID, requirement) +); + +DROP TABLE IF EXISTS wcf1_package_requirement_map; +CREATE TABLE wcf1_package_requirement_map ( + packageID INT(10) NOT NULL, + requirement INT(10) NOT NULL, + level INT(10) NOT NULL DEFAULT 0, + UNIQUE KEY packageID (packageID, requirement) +); + +DROP TABLE IF EXISTS wcf1_package_update; +CREATE TABLE wcf1_package_update ( + packageUpdateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageUpdateServerID INT(10) NOT NULL, + package VARCHAR(255) NOT NULL DEFAULT '', + packageName VARCHAR(255) NOT NULL DEFAULT '', + packageDescription VARCHAR(255) NOT NULL DEFAULT '', + author VARCHAR(255) NOT NULL DEFAULT '', + authorURL VARCHAR(255) NOT NULL DEFAULT '', + standalone TINYINT(1) NOT NULL DEFAULT 0, + plugin VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY packageUpdateServerID (packageUpdateServerID, package) +); + +DROP TABLE IF EXISTS wcf1_package_update_exclusion; +CREATE TABLE wcf1_package_update_exclusion ( + packageUpdateVersionID INT(10) NOT NULL, + excludedPackage VARCHAR(255) NOT NULL DEFAULT '', + excludedPackageVersion VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, excludedPackage) +); + +DROP TABLE IF EXISTS wcf1_package_update_fromversion; +CREATE TABLE wcf1_package_update_fromversion ( + packageUpdateVersionID INT(10) NOT NULL DEFAULT 0, + fromversion VARCHAR(50) NOT NULL DEFAULT '', + UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, fromversion) +); + +DROP TABLE IF EXISTS wcf1_package_update_requirement; +CREATE TABLE wcf1_package_update_requirement ( + packageUpdateVersionID INT(10) NOT NULL, + package VARCHAR(255) NOT NULL DEFAULT '', + minversion VARCHAR(50) NOT NULL DEFAULT '', + UNIQUE KEY packageUpdateVersionID (packageUpdateVersionID, package) +); + +DROP TABLE IF EXISTS wcf1_package_update_server; +CREATE TABLE wcf1_package_update_server ( + packageUpdateServerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + serverURL VARCHAR(255) NOT NULL DEFAULT '', + loginUsername VARCHAR(255) NOT NULL DEFAULT '', + loginPassword VARCHAR(255) NOT NULL DEFAULT '', + disabled TINYINT(1) NOT NULL DEFAULT 0, + lastUpdateTime INT(10) NOT NULL DEFAULT 0, + status ENUM('online', 'offline') NOT NULL DEFAULT 'online', + errorMessage TEXT +); + +DROP TABLE IF EXISTS wcf1_package_update_version; +CREATE TABLE wcf1_package_update_version ( + packageUpdateVersionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageUpdateID INT(10) NOT NULL, + packageVersion VARCHAR(50) NOT NULL DEFAULT '', + updateType VARCHAR(10) NOT NULL DEFAULT '', + packageDate INT(10) NOT NULL DEFAULT 0, + filename VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY packageUpdateID (packageUpdateID, packageVersion) +); + +DROP TABLE IF EXISTS wcf1_page_location; +CREATE TABLE wcf1_page_location ( + locationID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + locationPattern VARCHAR(255) NOT NULL DEFAULT '', + locationName VARCHAR(255) NOT NULL DEFAULT '', + packageID INT(10) NOT NULL, + className varchar(255) NOT NULL DEFAULT '', + UNIQUE KEY (packageID, locationName) +); + +DROP TABLE IF EXISTS wcf1_page_menu_item; +CREATE TABLE wcf1_page_menu_item ( + menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + menuItem VARCHAR(255) NOT NULL DEFAULT '', + parentMenuItem VARCHAR(255) NOT NULL DEFAULT '', + menuItemLink VARCHAR(255) NOT NULL DEFAULT '', + menuPosition ENUM('header', 'footer') NOT NULL DEFAULT 'header', + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT NULL, + options TEXT NULL, + isDisabled TINYINT(1) NOT NULL DEFAULT 0, + className VARCHAR(255) NOT NULL DEFAULT '', + UNIQUE KEY (packageID, menuItem) +); + +DROP TABLE IF EXISTS wcf1_search; +CREATE TABLE wcf1_search ( + searchID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + userID INT(10), + searchData MEDIUMTEXT NOT NULL, + searchTime INT(10) NOT NULL DEFAULT 0, + searchType VARCHAR(255) NOT NULL DEFAULT '', + searchHash CHAR(40) NOT NULL DEFAULT '', + KEY searchHash (searchHash) +); + +DROP TABLE IF EXISTS wcf1_session; +CREATE TABLE wcf1_session ( + sessionID CHAR(40) NOT NULL PRIMARY KEY, + packageID INT(10) NOT NULL, + userID INT(10), + ipAddress VARCHAR(39) NOT NULL DEFAULT '', + userAgent VARCHAR(255) NOT NULL DEFAULT '', + lastActivityTime INT(10) NOT NULL DEFAULT 0, + requestURI VARCHAR(255) NOT NULL DEFAULT '', + requestMethod VARCHAR(4) NOT NULL DEFAULT '', + username VARCHAR(255) NOT NULL DEFAULT '', + spiderID INT(10) NOT NULL DEFAULT 0, + KEY packageID (packageID, lastActivityTime, spiderID) +); + +DROP TABLE IF EXISTS wcf1_session_data; +CREATE TABLE wcf1_session_data ( + sessionID CHAR(40) NOT NULL PRIMARY KEY, + sessionVariables MEDIUMTEXT +); + +DROP TABLE IF EXISTS wcf1_spider; +CREATE TABLE wcf1_spider ( + spiderID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + spiderIdentifier VARCHAR(255) DEFAULT '', + spiderName VARCHAR(255) DEFAULT '', + spiderURL VARCHAR(255) DEFAULT '', + UNIQUE KEY spiderIdentifier (spiderIdentifier) +); + +DROP TABLE IF EXISTS wcf1_style; +CREATE TABLE wcf1_style ( + styleID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + styleName VARCHAR(255) NOT NULL DEFAULT '', + templateGroupID INT(10) NOT NULL DEFAULT 0, + isDefault TINYINT(1) NOT NULL DEFAULT 0, + disabled TINYINT(1) NOT NULL DEFAULT 0, + styleDescription TEXT, + styleVersion VARCHAR(255) NOT NULL DEFAULT '', + styleDate CHAR(10) NOT NULL DEFAULT '0000-00-00', + image VARCHAR(255) NOT NULL DEFAULT '', + copyright VARCHAR(255) NOT NULL DEFAULT '', + license VARCHAR(255) NOT NULL DEFAULT '', + authorName VARCHAR(255) NOT NULL DEFAULT '', + authorURL VARCHAR(255) NOT NULL DEFAULT '' +); + +DROP TABLE IF EXISTS wcf1_style_to_package; +CREATE TABLE wcf1_style_to_package ( + styleID INT(10) NOT NULL, + packageID INT(10) NOT NULL, + isDefault TINYINT(1) NOT NULL DEFAULT 0, + disabled TINYINT(1) NOT NULL DEFAULT 0, + UNIQUE KEY (styleID, packageID) +); + +DROP TABLE IF EXISTS wcf1_style_variable; +CREATE TABLE wcf1_style_variable ( + styleID INT(10) NOT NULL, + variableName VARCHAR(50) NOT NULL DEFAULT '', + variableValue MEDIUMTEXT, + UNIQUE KEY (styleID, variableName) +); + +DROP TABLE IF EXISTS wcf1_style_variable_to_attribute; +CREATE TABLE wcf1_style_variable_to_attribute ( + packageID INT(10) NOT NULL, + cssSelector VARCHAR(200) NOT NULL DEFAULT '', + attributeName VARCHAR(50) NOT NULL DEFAULT '', + variableName VARCHAR(50) NOT NULL DEFAULT '', + UNIQUE KEY (packageID, cssSelector, attributeName, variableName) +); + +DROP TABLE IF EXISTS wcf1_template; +CREATE TABLE wcf1_template ( + templateID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + templateName VARCHAR(255) NOT NULL DEFAULT '', + templateGroupID INT(10), + obsolete TINYINT(1) NOT NULL DEFAULT 0, + KEY packageID (packageID, templateName), + KEY templateGroupID (packageID, templateGroupID, templateName) +); + +DROP TABLE IF EXISTS wcf1_template_group; +CREATE TABLE wcf1_template_group ( + templateGroupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + parentTemplateGroupID INT(10) NOT NULL DEFAULT 0, + templateGroupName VARCHAR(255) NOT NULL DEFAULT '', + templateGroupFolderName VARCHAR(255) NOT NULL DEFAULT '' +); + +DROP TABLE IF EXISTS wcf1_user; +CREATE TABLE wcf1_user ( + userID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + username VARCHAR(255) NOT NULL DEFAULT '', + email VARCHAR(255) NOT NULL DEFAULT '', + password VARCHAR(40) NOT NULL DEFAULT '', + salt VARCHAR(40) NOT NULL DEFAULT '', + languageID INT(10) NOT NULL DEFAULT 0, + registrationDate INT(10) NOT NULL DEFAULT 0, + styleID INT(10) NOT NULL DEFAULT 0, + + KEY username (username), + KEY registrationDate (registrationDate), + KEY styleID (styleID) +); + +DROP TABLE IF EXISTS wcf1_user_group; +CREATE TABLE wcf1_user_group ( + groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + groupName VARCHAR(255) NOT NULL DEFAULT '', + groupType TINYINT(1) NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS wcf1_user_group_option; +CREATE TABLE wcf1_user_group_option ( + optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10), + optionName VARCHAR(255) NOT NULL DEFAULT '', + categoryName VARCHAR(255) NOT NULL DEFAULT '', + optionType VARCHAR(255) NOT NULL DEFAULT '', + defaultValue MEDIUMTEXT, + adminDefaultValue MEDIUMTEXT, + validationPattern TEXT, + enableOptions MEDIUMTEXT, + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + additionalData MEDIUMTEXT, + UNIQUE KEY optionName (optionName, packageID) +); + +DROP TABLE IF EXISTS wcf1_user_group_option_category; +CREATE TABLE wcf1_user_group_option_category ( + categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + categoryName VARCHAR(255) NOT NULL DEFAULT '', + parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + UNIQUE KEY categoryName (categoryName, packageID) +); + +DROP TABLE IF EXISTS wcf1_user_group_option_value; +CREATE TABLE wcf1_user_group_option_value ( + groupID INT(10) NOT NULL, + optionID INT(10) NOT NULL, + optionValue MEDIUMTEXT NOT NULL, + UNIQUE KEY groupID (groupID, optionID) +); + +DROP TABLE IF EXISTS wcf1_user_option; +CREATE TABLE wcf1_user_option ( + optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + optionName VARCHAR(255) NOT NULL DEFAULT '', + categoryName VARCHAR(255) NOT NULL DEFAULT '', + optionType VARCHAR(255) NOT NULL DEFAULT '', + defaultValue MEDIUMTEXT, + validationPattern TEXT, + selectOptions MEDIUMTEXT, + enableOptions MEDIUMTEXT, + required TINYINT(1) NOT NULL DEFAULT 0, + askDuringRegistration TINYINT(1) NOT NULL DEFAULT 0, + editable TINYINT(1) NOT NULL DEFAULT 0, + visible TINYINT(1) NOT NULL DEFAULT 0, + outputClass VARCHAR(255) NOT NULL DEFAULT '', + searchable TINYINT(1) NOT NULL DEFAULT 0, + showOrder INT(10) NOT NULL DEFAULT 0, + disabled TINYINT(1) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + additionalData MEDIUMTEXT, + UNIQUE KEY optionName (optionName, packageID), + KEY categoryName (categoryName) +); + +DROP TABLE IF EXISTS wcf1_user_option_category; +CREATE TABLE wcf1_user_option_category ( + categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + categoryName VARCHAR(255) NOT NULL DEFAULT '', + categoryIconS VARCHAR(255) NOT NULL DEFAULT '', + categoryIconM VARCHAR(255) NOT NULL DEFAULT '', + parentCategoryName VARCHAR(255) NOT NULL DEFAULT '', + showOrder INT(10) NOT NULL DEFAULT 0, + permissions TEXT, + options TEXT, + UNIQUE KEY categoryName (categoryName, packageID) +); + +DROP TABLE IF EXISTS wcf1_user_option_value; +CREATE TABLE wcf1_user_option_value ( + userID INT(10) NOT NULL PRIMARY KEY +); + +DROP TABLE IF EXISTS wcf1_user_to_group; +CREATE TABLE wcf1_user_to_group ( + userID INT(10) NOT NULL, + groupID INT(10) NOT NULL, + UNIQUE KEY userID (userID, groupID) +); + +DROP TABLE IF EXISTS wcf1_user_to_language; +CREATE TABLE wcf1_user_to_language ( + userID INT(10) NOT NULL, + languageID INT(10) NOT NULL, + UNIQUE KEY userID (userID, languageID) +); + +DROP TABLE IF EXISTS wcf1_template_listener; +CREATE TABLE wcf1_template_listener ( + listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, + packageID INT(10) NOT NULL, + name VARCHAR(80) NOT NULL DEFAULT '', + environment ENUM('user','admin') NOT NULL DEFAULT 'user', + templateName VARCHAR(80) NOT NULL DEFAULT '', + eventName VARCHAR(50) NOT NULL DEFAULT '', + templateCode TEXT NOT NULL, + KEY templateName (environment, templateName) +); + +DROP TABLE IF EXISTS wcf1_storage; +CREATE TABLE wcf1_storage ( + userID INT(10) NOT NULL, + field VARCHAR(80) NOT NULL DEFAULT '', + fieldValue TEXT, + packageID INT(10), + UNIQUE KEY storageData (userID, field, packageID) +); + +/**** foreign keys ****/ +ALTER TABLE wcf1_acp_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; +ALTER TABLE wcf1_acp_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (sessionLogID) REFERENCES wcf1_acp_session_log (sessionLogID) ON DELETE CASCADE; +ALTER TABLE wcf1_acp_session_access_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE SET NULL; + +ALTER TABLE wcf1_acp_session_data ADD FOREIGN KEY (sessionID) REFERENCES wcf1_acp_session (sessionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_acp_session_log ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL; + +ALTER TABLE wcf1_acp_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_application ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_application ADD FOREIGN KEY (groupID) REFERENCES wcf1_application_group (groupID) ON DELETE SET NULL; + +ALTER TABLE wcf1_cleanup_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_cleanup_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_core_object ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_cronjob ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_cronjob_log ADD FOREIGN KEY (cronjobID) REFERENCES wcf1_cronjob (cronjobID) ON DELETE CASCADE; + +ALTER TABLE wcf1_event_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; +ALTER TABLE wcf1_language_item ADD FOREIGN KEY (languageCategoryID) REFERENCES wcf1_language_category (languageCategoryID) ON DELETE CASCADE; +ALTER TABLE wcf1_language_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; +ALTER TABLE wcf1_language_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_package_dependency ADD FOREIGN KEY (dependency) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_exclusion ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_installation_file_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_installation_form ADD FOREIGN KEY (queueID) REFERENCES wcf1_package_installation_queue (queueID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_installation_node ADD FOREIGN KEY (queueID) REFERENCES wcf1_package_installation_queue (queueID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_installation_plugin ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_installation_queue ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; +ALTER TABLE wcf1_package_installation_queue ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE SET NULL; + +ALTER TABLE wcf1_package_installation_sql_log ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_package_requirement ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_package_requirement_map ADD FOREIGN KEY (requirement) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_update ADD FOREIGN KEY (packageUpdateServerID) REFERENCES wcf1_package_update_server (packageUpdateServerID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_update_exclusion ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_update_fromversion ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_update_requirement ADD FOREIGN KEY (packageUpdateVersionID) REFERENCES wcf1_package_update_version (packageUpdateVersionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_package_update_version ADD FOREIGN KEY (packageUpdateID) REFERENCES wcf1_package_update (packageUpdateID) ON DELETE CASCADE; + +ALTER TABLE wcf1_page_location ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_page_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_search ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; + +ALTER TABLE wcf1_session ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_session ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; + +ALTER TABLE wcf1_session_data ADD FOREIGN KEY (sessionID) REFERENCES wcf1_session (sessionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_storage ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; +ALTER TABLE wcf1_storage ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_style ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE; +ALTER TABLE wcf1_style_to_package ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_style_variable ADD FOREIGN KEY (styleID) REFERENCES wcf1_style (styleID) ON DELETE CASCADE; + +ALTER TABLE wcf1_style_variable_to_attribute ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; +ALTER TABLE wcf1_template ADD FOREIGN KEY (templateGroupID) REFERENCES wcf1_template_group (templateGroupID) ON DELETE CASCADE; + +ALTER TABLE wcf1_template_listener ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_group_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_group_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_group_option_value ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE CASCADE; +ALTER TABLE wcf1_user_group_option_value ADD FOREIGN KEY (optionID) REFERENCES wcf1_user_group_option (optionID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_option ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_option_category ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_option_value ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; +ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE CASCADE; + +ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE; +ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE; + +/**** default inserts ****/ +-- default user groups +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Everyone', 1); +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Guests', 2); +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Users', 3); +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Administrators', 4); +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Moderators', 4); +INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('Super Moderators', 4); + +-- default user group options +INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.general.canUseAcp', 'admin.general', 'boolean', '0', '1', 1); +INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.system.package.canInstallPackage', 'admin.system.package', 'boolean', '0', '1', 1); +INSERT INTO wcf1_user_group_option (optionName, categoryName, optionType, defaultValue, adminDefaultValue, showOrder) VALUES ('admin.user.canEditGroup', 'admin.user.group', 'boolean', '0', '1', 1); + +-- default user group option values +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 1, '0'); -- Everyone +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 2, '0'); -- Everyone +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (1, 3, '0'); -- Everyone +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 1, '1'); -- Administrators +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 2, '1'); -- Administrators +INSERT INTO wcf1_user_group_option_value (groupID, optionID, optionValue) VALUES (4, 3, '1'); -- Administrators + +-- default update servers +INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/tempest/', 'online', 0, NULL, 0, '', ''); +INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://update.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', ''); +INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/tempest/', 'online', 0, NULL, 0, '', ''); +INSERT INTO wcf1_package_update_server (serverURL, status, disabled, errorMessage, lastUpdateTime, loginUsername, loginPassword) VALUES ('http://store.woltlab.com/maelstrom/', 'online', 0, NULL, 0, '', ''); diff --git a/wcfsetup/setup/lang/setup_de.xml b/wcfsetup/setup/lang/setup_de.xml index 11684dbbfa..0443d4c29f 100644 --- a/wcfsetup/setup/lang/setup_de.xml +++ b/wcfsetup/setup/lang/setup_de.xml @@ -1,164 +1,164 @@ - - - - - {$setupPackageName}
              Installation]]>
              - - - - - - - - - - - - - Heute, %H:%M]]> - - - WoltLab Community Framework{if $setupPackageName != 'WoltLab Community Framework'} und von {$setupPackageName}{/if}.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WoltLab Community Framework entpackt.]]> - WoltLab Community Framework im Ordner "{$foundDirectory}".
              Bitte überprüfen Sie diese Angabe bzw. definieren Sie ein anderes Installationsverzeichnis, wenn Sie eine neue Kopie von WoltLab Community Framework installieren möchten.]]>
              - - WoltLab Community Framework an.]]> - WoltLab Community Framework über folgende Adresse (URL) erreichbar:]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {$exception->getMessage()}{if $exception|get_class == 'DatabaseException'}
              {$exception->getErrorDesc()}{/if}
              -
              Weitere Informationen zu diesem Problem erhalten Sie im Nachschlagewerk von WoltLab: -
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              - 1}n{/if} existier{if $conflictedTables|count > 1}en{else}t{/if} schon in der Datenbank »{$dbName}«:
              {implode from=$conflictedTables item="table"}{$table}{/implode}.

              Um dieses Problem zu beheben, können Sie:
              1. diese Tabelle{if $conflictedTables|count > 1}n{/if} überschreiben, indem Sie die »Ãœberschreiben« Option aktivieren und die »Weiter« Schaltfläche betätigen, oder
              2. Sie geben die Daten einer anderen Datenbank ein und betätigen die »Weiter« Schaltfläche, oder
              3. Sie geben eine von »{$dbNumber}« unterschiedliche Installationsnummer an und betätigen die »Weiter« Schaltfläche.]]>
              - 1}n{/if} überschreiben]]> - - - - - - - - - - - - - - - - - - - {$exception->getMessage()}
              - Bitte kontrollieren Sie, ob das Zielverzeichnis existiert und beschreibbar ist. -

              Weitere Informationen zu diesem Problem erhalten Sie im Nachschlagewerk von WoltLab:
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              -
              -
              + + + + + {$setupPackageName}
              Installation]]>
              + + + + + + + + + + + + + Heute, %H:%M]]> + + + WoltLab Community Framework{if $setupPackageName != 'WoltLab Community Framework'} und von {$setupPackageName}{/if}.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WoltLab Community Framework entpackt.]]> + WoltLab Community Framework im Ordner "{$foundDirectory}".
              Bitte überprüfen Sie diese Angabe bzw. definieren Sie ein anderes Installationsverzeichnis, wenn Sie eine neue Kopie von WoltLab Community Framework installieren möchten.]]>
              + + WoltLab Community Framework an.]]> + WoltLab Community Framework über folgende Adresse (URL) erreichbar:]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {$exception->getMessage()}{if $exception|get_class == 'DatabaseException'}
              {$exception->getErrorDesc()}{/if}
              +
              Weitere Informationen zu diesem Problem erhalten Sie im Nachschlagewerk von WoltLab: +
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              + 1}n{/if} existier{if $conflictedTables|count > 1}en{else}t{/if} schon in der Datenbank »{$dbName}«:
              {implode from=$conflictedTables item="table"}{$table}{/implode}.

              Um dieses Problem zu beheben, können Sie:
              1. diese Tabelle{if $conflictedTables|count > 1}n{/if} überschreiben, indem Sie die »Ãœberschreiben« Option aktivieren und die »Weiter« Schaltfläche betätigen, oder
              2. Sie geben die Daten einer anderen Datenbank ein und betätigen die »Weiter« Schaltfläche, oder
              3. Sie geben eine von »{$dbNumber}« unterschiedliche Installationsnummer an und betätigen die »Weiter« Schaltfläche.]]>
              + 1}n{/if} überschreiben]]> + + + + + + + + + + + + + + + + + + + {$exception->getMessage()}
              + Bitte kontrollieren Sie, ob das Zielverzeichnis existiert und beschreibbar ist. +

              Weitere Informationen zu diesem Problem erhalten Sie im Nachschlagewerk von WoltLab:
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              +
              +
              diff --git a/wcfsetup/setup/lang/setup_en.xml b/wcfsetup/setup/lang/setup_en.xml index f8fb33fd31..01ad5ddcca 100644 --- a/wcfsetup/setup/lang/setup_en.xml +++ b/wcfsetup/setup/lang/setup_en.xml @@ -1,161 +1,161 @@ - - - - - {$setupPackageName}
              Installation]]>
              - - - - - - - - - - - \T\o\d\a\y, g:ia]]> - - - WoltLab Community Framework{if $setupPackageName != 'WoltLab Community Framework'} and {$setupPackageName}{/if}.]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WoltLab Community Framework will be extracted into the installation folder.]]> - WoltLab Community Framework in the "{$foundDirectory}" folder.
              If you would like to install a new copy of the WoltLab Community Framework, then please enter an alternative installation folder.]]>
              - - WoltLab Community Framework.]]> - WoltLab Community Framework through the following URL:]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {$exception->getMessage()}{if $exception|get_class == 'DatabaseException'}
              {$exception->getErrorDesc()}{/if}
              -
              Additional information can be found in the WoltLab Error Reference: -
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              - 1}s{/if} already exist{if $conflictedTables|count == 1}s{/if} within your "{$dbName}" Database:
              {implode from=$conflictedTables item="table"}{$table}{/implode}.

              To solve this problem, please do one of the following:
              1. Enable the "Overwrite" option below to overwrite {if $conflictedTables|count > 1}these tables{else}this table{/if} and continue the installation with the "Next" Button or
              2. You re-enter the Database access information, but to a different Database and continue the installation with the "Next" Button or
              3. You enter a new Installations number, not forgetting to continue the installation with the "Next" Button.]]>
              - 1}s{/if}?]]> - - - - - - - - - - - - - - - - - - - {$exception->getMessage()}
              - Please make sure that the destination folder exists and can be written to. -

              Additional information can be found in the WoltLab Error Reference:
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              -
              -
              + + + + + {$setupPackageName}
              Installation]]>
              + + + + + + + + + + + \T\o\d\a\y, g:ia]]> + + + WoltLab Community Framework{if $setupPackageName != 'WoltLab Community Framework'} and {$setupPackageName}{/if}.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WoltLab Community Framework will be extracted into the installation folder.]]> + WoltLab Community Framework in the "{$foundDirectory}" folder.
              If you would like to install a new copy of the WoltLab Community Framework, then please enter an alternative installation folder.]]>
              + + WoltLab Community Framework.]]> + WoltLab Community Framework through the following URL:]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {$exception->getMessage()}{if $exception|get_class == 'DatabaseException'}
              {$exception->getErrorDesc()}{/if}
              +
              Additional information can be found in the WoltLab Error Reference: +
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              + 1}s{/if} already exist{if $conflictedTables|count == 1}s{/if} within your "{$dbName}" Database:
              {implode from=$conflictedTables item="table"}{$table}{/implode}.

              To solve this problem, please do one of the following:
              1. Enable the "Overwrite" option below to overwrite {if $conflictedTables|count > 1}these tables{else}this table{/if} and continue the installation with the "Next" Button or
              2. You re-enter the Database access information, but to a different Database and continue the installation with the "Next" Button or
              3. You enter a new Installations number, not forgetting to continue the installation with the "Next" Button.]]>
              + 1}s{/if}?]]> + + + + + + + + + + + + + + + + + + + {$exception->getMessage()}
              + Please make sure that the destination folder exists and can be written to. +

              Additional information can be found in the WoltLab Error Reference:
              http://www.woltlab.com/help/?code={@$exception->getCode()}]]>
              +
              +
              diff --git a/wcfsetup/setup/license/license_en.txt b/wcfsetup/setup/license/license_en.txt index b87303c39a..fc8a5de7ed 100644 --- a/wcfsetup/setup/license/license_en.txt +++ b/wcfsetup/setup/license/license_en.txt @@ -1,165 +1,165 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/wcfsetup/setup/template/footer.tpl b/wcfsetup/setup/template/footer.tpl index a857e156f5..c73018d9d3 100644 --- a/wcfsetup/setup/template/footer.tpl +++ b/wcfsetup/setup/template/footer.tpl @@ -1,6 +1,6 @@ - - - + + + \ No newline at end of file diff --git a/wcfsetup/setup/template/stepConfigureDB.tpl b/wcfsetup/setup/template/stepConfigureDB.tpl index 7b386b5213..04d2e40e7d 100644 --- a/wcfsetup/setup/template/stepConfigureDB.tpl +++ b/wcfsetup/setup/template/stepConfigureDB.tpl @@ -1,78 +1,78 @@ -{include file='header'} - -

              {lang}wcf.global.configureDB{/lang}

              - -

              {lang}wcf.global.configureDB.description{/lang}

              - -{if $exception|isset} -

              {lang}wcf.global.configureDB.error{/lang}

              -{/if} - -{if $conflictedTables|isset} -

              - {lang}wcf.global.configureDB.conflictedTables{/lang} -

              -{/if} - -
              -
              - {lang}wcf.global.configureDB.accessData{/lang} - -
              -
              - - -
              - -
              - - -
              - -
              - - -
              - -
              - - -
              - -
              - - -
              - -
              - - -
              - - {if $conflictedTables|isset} -
              - -
              - {/if} -
              -
              - -
              - - - - - - - - {foreach from=$selectedLanguages item=language} - - {/foreach} -
              -
              - +{include file='header'} + +

              {lang}wcf.global.configureDB{/lang}

              + +

              {lang}wcf.global.configureDB.description{/lang}

              + +{if $exception|isset} +

              {lang}wcf.global.configureDB.error{/lang}

              +{/if} + +{if $conflictedTables|isset} +

              + {lang}wcf.global.configureDB.conflictedTables{/lang} +

              +{/if} + +
              +
              + {lang}wcf.global.configureDB.accessData{/lang} + +
              +
              + + +
              + +
              + + +
              + +
              + + +
              + +
              + + +
              + +
              + + +
              + +
              + + +
              + + {if $conflictedTables|isset} +
              + +
              + {/if} +
              +
              + +
              + + + + + + + + {foreach from=$selectedLanguages item=language} + + {/foreach} +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepCreateUser.tpl b/wcfsetup/setup/template/stepCreateUser.tpl index 068757a0ac..e17fb263f3 100644 --- a/wcfsetup/setup/template/stepCreateUser.tpl +++ b/wcfsetup/setup/template/stepCreateUser.tpl @@ -1,82 +1,82 @@ -{include file='header'} - -

              {lang}wcf.global.createUser{/lang}

              - -

              {lang}wcf.global.createUser.description{/lang}

              - -{if $errorField} -

              {lang}wcf.global.createUser.error{/lang}

              -{/if} - -
              -
              - {lang}wcf.global.createUser.data{/lang} - -
              - - - - {if $errorField == 'username'} -

              - {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} - {if $errorType == 'notValid'}{lang}wcf.global.createUser.error.username.notValid{/lang}{/if} -

              - {/if} -
              - - - - - {if $errorField == 'email'} -

              - {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} - {if $errorType == 'notValid'}{lang}wcf.global.createUser.error.email.notValid{/lang}{/if} -

              - {/if} - - - - - - {if $errorField == 'confirmEmail'} -

              - {if $errorType == 'notEqual'}{lang}wcf.global.createUser.error.confirmEmail.notEqual{/lang}{/if} -

              - {/if} - - - - - - {if $errorField == 'password'} -

              - {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} -

              - {/if} - - - - - - {if $errorField == 'confirmPassword'} -

              - {if $errorType == 'notEqual'}{lang}wcf.global.createUser.error.confirmPassword.notEqual{/lang}{/if} -

              - {/if} - - - -
              - -
              - - - - - - - -
              -
              - +{include file='header'} + +

              {lang}wcf.global.createUser{/lang}

              + +

              {lang}wcf.global.createUser.description{/lang}

              + +{if $errorField} +

              {lang}wcf.global.createUser.error{/lang}

              +{/if} + +
              +
              + {lang}wcf.global.createUser.data{/lang} + +
              + + + + {if $errorField == 'username'} +

              + {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} + {if $errorType == 'notValid'}{lang}wcf.global.createUser.error.username.notValid{/lang}{/if} +

              + {/if} +
              + + + + + {if $errorField == 'email'} +

              + {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} + {if $errorType == 'notValid'}{lang}wcf.global.createUser.error.email.notValid{/lang}{/if} +

              + {/if} + + + + + + {if $errorField == 'confirmEmail'} +

              + {if $errorType == 'notEqual'}{lang}wcf.global.createUser.error.confirmEmail.notEqual{/lang}{/if} +

              + {/if} + + + + + + {if $errorField == 'password'} +

              + {if $errorType == 'empty'}{lang}wcf.global.createUser.error.empty{/lang}{/if} +

              + {/if} + + + + + + {if $errorField == 'confirmPassword'} +

              + {if $errorType == 'notEqual'}{lang}wcf.global.createUser.error.confirmPassword.notEqual{/lang}{/if} +

              + {/if} + + + +
              + +
              + + + + + + + +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepInstallPackages.tpl b/wcfsetup/setup/template/stepInstallPackages.tpl index 2efe45e804..d23279c0f0 100644 --- a/wcfsetup/setup/template/stepInstallPackages.tpl +++ b/wcfsetup/setup/template/stepInstallPackages.tpl @@ -1,25 +1,25 @@ -{include file='header'} - -

              {lang}wcf.global.next{/lang}

              - -

              {lang}wcf.global.next.description{/lang}

              - -
              - -
              -
              - - {@SID_INPUT_TAG} -
              -
              - - - +{include file='header'} + +

              {lang}wcf.global.next{/lang}

              + +

              {lang}wcf.global.next.description{/lang}

              + +
              + +
              +
              + + {@SID_INPUT_TAG} +
              +
              + + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepNext.tpl b/wcfsetup/setup/template/stepNext.tpl index 5d3b88ac9b..e3c5372a63 100644 --- a/wcfsetup/setup/template/stepNext.tpl +++ b/wcfsetup/setup/template/stepNext.tpl @@ -1,32 +1,32 @@ -{include file='header'} - -

              {lang}wcf.global.next{/lang}

              - -

              {lang}wcf.global.next.description{/lang}

              - -
              - -
              -
              - - - - - - {foreach from=$selectedLanguages item=language} - - {/foreach} -
              -
              - - - - +{include file='header'} + +

              {lang}wcf.global.next{/lang}

              + +

              {lang}wcf.global.next.description{/lang}

              + +
              + +
              +
              + + + + + + {foreach from=$selectedLanguages item=language} + + {/foreach} +
              +
              + + + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepSearchWcfDir.tpl b/wcfsetup/setup/template/stepSearchWcfDir.tpl index ce2a3ab726..099d905a98 100644 --- a/wcfsetup/setup/template/stepSearchWcfDir.tpl +++ b/wcfsetup/setup/template/stepSearchWcfDir.tpl @@ -1,117 +1,117 @@ -{include file='header'} - -

              {lang}wcf.global.wcfDir{/lang}

              - -

              {lang}wcf.global.wcfDir.description{/lang}

              - -{if $foundDirectory} -

              {lang}wcf.global.wcfDir.foundDirectory{/lang}

              -{/if} - -{if $exception|isset} -

              - {lang}wcf.global.wcfDir.error{/lang} -

              -{/if} - -
              -
              - {lang}wcf.global.wcfDir.dir{/lang} - -
              -
              - - -
              -
              - - -
              -
              -
              - -
              - - - - - -
              -
              - - - +{include file='header'} + +

              {lang}wcf.global.wcfDir{/lang}

              + +

              {lang}wcf.global.wcfDir.description{/lang}

              + +{if $foundDirectory} +

              {lang}wcf.global.wcfDir.foundDirectory{/lang}

              +{/if} + +{if $exception|isset} +

              + {lang}wcf.global.wcfDir.error{/lang} +

              +{/if} + +
              +
              + {lang}wcf.global.wcfDir.dir{/lang} + +
              +
              + + +
              +
              + + +
              +
              +
              + +
              + + + + + +
              +
              + + + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepSelectLanguages.tpl b/wcfsetup/setup/template/stepSelectLanguages.tpl index 5b0542367f..c3cad3ad54 100644 --- a/wcfsetup/setup/template/stepSelectLanguages.tpl +++ b/wcfsetup/setup/template/stepSelectLanguages.tpl @@ -1,36 +1,36 @@ -{include file='header'} - -

              {lang}wcf.global.languages{/lang}

              - -

              {lang}wcf.global.languages.description{/lang}

              - -{if $errorField} -

              {if $errorType == 'empty'}{lang}wcf.global.languages.error.empty{/lang}{/if}

              -{/if} - -
              -
              - {lang}wcf.global.languages.languages{/lang} - -
              -
                - {foreach from=$languages key=language item=languageName} -
              • - {/foreach} -
              -
              -
              -
              - -
              - - - - - - - -
              -
              - +{include file='header'} + +

              {lang}wcf.global.languages{/lang}

              + +

              {lang}wcf.global.languages.description{/lang}

              + +{if $errorField} +

              {if $errorType == 'empty'}{lang}wcf.global.languages.error.empty{/lang}{/if}

              +{/if} + +
              +
              + {lang}wcf.global.languages.languages{/lang} + +
              +
                + {foreach from=$languages key=language item=languageName} +
              • + {/foreach} +
              +
              +
              +
              + +
              + + + + + + + +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepSelectSetupLanguage.tpl b/wcfsetup/setup/template/stepSelectSetupLanguage.tpl index 0d96890862..4e383fc35f 100644 --- a/wcfsetup/setup/template/stepSelectSetupLanguage.tpl +++ b/wcfsetup/setup/template/stepSelectSetupLanguage.tpl @@ -1,36 +1,36 @@ -{include file='header'} - -

              {lang}wcf.global.welcome{/lang}

              - -

              {lang}wcf.global.welcome.description{/lang}

              - -
              -
              - {lang}wcf.global.welcome.language{/lang} - -
              -
              - - {htmlOptions name="languageCode" id="languageCode" options=$availableLanguages selected=$languageCode disableEncoding=true} - - - - -
              - -
              - -
              -
              - -
              -
              - - - - - -
              -
              - +{include file='header'} + +

              {lang}wcf.global.welcome{/lang}

              + +

              {lang}wcf.global.welcome.description{/lang}

              + +
              +
              + {lang}wcf.global.welcome.language{/lang} + +
              +
              + + {htmlOptions name="languageCode" id="languageCode" options=$availableLanguages selected=$languageCode disableEncoding=true} + + + + +
              + +
              + +
              +
              + +
              +
              + + + + + +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepShowLicense.tpl b/wcfsetup/setup/template/stepShowLicense.tpl index 974bc4179d..6afce3c065 100644 --- a/wcfsetup/setup/template/stepShowLicense.tpl +++ b/wcfsetup/setup/template/stepShowLicense.tpl @@ -1,29 +1,29 @@ -{include file='header'} - -

              {lang}wcf.global.license{/lang}

              - -

              {lang}wcf.global.license.description{/lang}

              - -{if $missingAcception|isset} -

              - {lang}wcf.global.license.missingAcception{/lang} -

              -{/if} - -
              -
              - -

              {lang}wcf.global.license.accept.description{/lang}

              -
              -
              -
              - - - - - - -
              -
              - +{include file='header'} + +

              {lang}wcf.global.license{/lang}

              + +

              {lang}wcf.global.license.description{/lang}

              + +{if $missingAcception|isset} +

              + {lang}wcf.global.license.missingAcception{/lang} +

              +{/if} + +
              +
              + +

              {lang}wcf.global.license.accept.description{/lang}

              +
              +
              +
              + + + + + + +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/setup/template/stepShowSystemRequirements.tpl b/wcfsetup/setup/template/stepShowSystemRequirements.tpl index 7503acdd12..90a371ab16 100644 --- a/wcfsetup/setup/template/stepShowSystemRequirements.tpl +++ b/wcfsetup/setup/template/stepShowSystemRequirements.tpl @@ -1,80 +1,80 @@ -{include file='header'} - -

              {lang}wcf.global.systemRequirements{/lang}

              - -

              {lang}wcf.global.systemRequirements.description{/lang}

              - -
              - {lang}wcf.global.systemRequirements.required{/lang} -
              - -
              -

              {lang}wcf.global.systemRequirements.php{/lang}

              - {lang}wcf.global.systemRequirements.element.required{/lang} 5.3.0 - {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.phpVersion.value} - {if !$system.phpVersion.result}
              {lang}wcf.global.systemRequirements.php.description{/lang}
              {/if} -
              -
              - -
              -

              {lang}wcf.global.systemRequirements.sql{/lang}

              - {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.active{/lang} - {lang}wcf.global.systemRequirements.element.yours{/lang} - {if !$system.sql.result}{lang}wcf.global.systemRequirements.sql.notFound{/lang}{else} - {implode from=$system.sql.value item=$sqlType glue=', '}{lang}wcf.global.configureDB.class.{@$sqlType}{/lang}{/implode} - {/if} - {if !$system.sql.result}
              {lang}wcf.global.systemRequirements.sql.description{/lang}
              {/if} -
              -
              - -
              -

              {lang}wcf.global.systemRequirements.mbString{/lang}

              - {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.active{/lang} - {lang}wcf.global.systemRequirements.element.yours{/lang} {if !$system.mbString.result}{lang}wcf.global.systemRequirements.notActive{/lang}{else}{lang}wcf.global.systemRequirements.active{/lang}{/if} - {if !$system.mbString.result}
              {lang}wcf.global.systemRequirements.mbString.description{/lang}
              {/if} -
              -
              - -
              -

              {lang}wcf.global.systemRequirements.safeMode{/lang}

              - {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.notActive{/lang} - {lang}wcf.global.systemRequirements.element.yours{/lang} {if !$system.safeMode.result}{lang}wcf.global.systemRequirements.active{/lang}{else}{lang}wcf.global.systemRequirements.notActive{/lang}{/if} - {if !$system.safeMode.result}
              {lang}wcf.global.systemRequirements.safeMode.description{/lang}
              {/if} -
              - -
              -
              - -
              - {lang}wcf.global.systemRequirements.recommended{/lang} -
              - -
              -

              {lang}wcf.global.systemRequirements.uploadMaxFilesize{/lang}

              - {lang}wcf.global.systemRequirements.element.recommended{/lang} > 0 - {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.uploadMaxFilesize.value} - {if !$system.uploadMaxFilesize.result}
              {lang}wcf.global.systemRequirements.uploadMaxFilesize.description{/lang}
              {/if} -
              -
              - -
              -

              {lang}wcf.global.systemRequirements.gdLib{/lang}

              - {lang}wcf.global.systemRequirements.element.recommended{/lang} 2.0.0 - {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.gdLib.value} - {if !$system.gdLib.result}
              {lang}wcf.global.systemRequirements.gdLib.description{/lang}
              {/if} -
              - -
              -
              - -
              -
              - - - - - -
              -
              - +{include file='header'} + +

              {lang}wcf.global.systemRequirements{/lang}

              + +

              {lang}wcf.global.systemRequirements.description{/lang}

              + +
              + {lang}wcf.global.systemRequirements.required{/lang} +
              + +
              +

              {lang}wcf.global.systemRequirements.php{/lang}

              + {lang}wcf.global.systemRequirements.element.required{/lang} 5.3.0 + {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.phpVersion.value} + {if !$system.phpVersion.result}
              {lang}wcf.global.systemRequirements.php.description{/lang}
              {/if} +
              +
              + +
              +

              {lang}wcf.global.systemRequirements.sql{/lang}

              + {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.active{/lang} + {lang}wcf.global.systemRequirements.element.yours{/lang} + {if !$system.sql.result}{lang}wcf.global.systemRequirements.sql.notFound{/lang}{else} + {implode from=$system.sql.value item=$sqlType glue=', '}{lang}wcf.global.configureDB.class.{@$sqlType}{/lang}{/implode} + {/if} + {if !$system.sql.result}
              {lang}wcf.global.systemRequirements.sql.description{/lang}
              {/if} +
              +
              + +
              +

              {lang}wcf.global.systemRequirements.mbString{/lang}

              + {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.active{/lang} + {lang}wcf.global.systemRequirements.element.yours{/lang} {if !$system.mbString.result}{lang}wcf.global.systemRequirements.notActive{/lang}{else}{lang}wcf.global.systemRequirements.active{/lang}{/if} + {if !$system.mbString.result}
              {lang}wcf.global.systemRequirements.mbString.description{/lang}
              {/if} +
              +
              + +
              +

              {lang}wcf.global.systemRequirements.safeMode{/lang}

              + {lang}wcf.global.systemRequirements.element.required{/lang} {lang}wcf.global.systemRequirements.notActive{/lang} + {lang}wcf.global.systemRequirements.element.yours{/lang} {if !$system.safeMode.result}{lang}wcf.global.systemRequirements.active{/lang}{else}{lang}wcf.global.systemRequirements.notActive{/lang}{/if} + {if !$system.safeMode.result}
              {lang}wcf.global.systemRequirements.safeMode.description{/lang}
              {/if} +
              + +
              +
              + +
              + {lang}wcf.global.systemRequirements.recommended{/lang} +
              + +
              +

              {lang}wcf.global.systemRequirements.uploadMaxFilesize{/lang}

              + {lang}wcf.global.systemRequirements.element.recommended{/lang} > 0 + {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.uploadMaxFilesize.value} + {if !$system.uploadMaxFilesize.result}
              {lang}wcf.global.systemRequirements.uploadMaxFilesize.description{/lang}
              {/if} +
              +
              + +
              +

              {lang}wcf.global.systemRequirements.gdLib{/lang}

              + {lang}wcf.global.systemRequirements.element.recommended{/lang} 2.0.0 + {lang}wcf.global.systemRequirements.element.yours{/lang} {$system.gdLib.value} + {if !$system.gdLib.result}
              {lang}wcf.global.systemRequirements.gdLib.description{/lang}
              {/if} +
              + +
              +
              + +
              +
              + + + + + +
              +
              + {include file='footer'} \ No newline at end of file diff --git a/wcfsetup/test.php b/wcfsetup/test.php index c95dded222..e2386d7248 100644 --- a/wcfsetup/test.php +++ b/wcfsetup/test.php @@ -1,60 +1,60 @@ - - - - PHP5 Check - - -

              Support for PHP is missing.
              PHP Unterstützung nicht gefunden